Partial Triggers and column highlighting

I've read a few posts about how to conditionally highlight rows in the table.
Right now I am using this expression to find out if a row in my tree table has not been saved (on the inline style of the column elements).
#{node.row.entities[0].entityState == 0?'background-color:#FACF94;':''}
This turns my row orange if it has not been saved.
However, on this row, I have an input text (it1) that is enabled for user input when the row has not been saved as well.
When the user enters a number in this input field, a value change listener does a calculation and updates another column/node (outputText1). I can see this other column/node being refreshed because a partial trigger.
When the outputText1 is updated, ideally I would like that column to be changed to yet another color.
I've tried a number of things, and I cannot get the color to change again after editing the input text.
For example, I tried creating a dummy transient value on the view to keep track of whether or not the inputText has changed, then trying to trigger off of that value for the column. But that didn't work.
Does anyone have any ideas?
Thanks,
Joel

I've solved my issue by adding this to my valueChangeListener:
AdfFacesContext.getCurrentInstance().addPartialTarget(tableBinding);

Similar Messages

  • ADF 11g Partial Triggers Row Column Update By Column in the Same Row

    Hi.
    I have a situation whereby I have a checkbox in a table row, which has an eventchangelistener, which upon activation, trys to update another column in the same row. I can not get this to work through partial triggers, even though I have set up my ids up correctly. The row though can be updated by a command button outside of the table using the same coding techniques, but I need it updated via the checkbox.
    Is there a limitation in updating a column within a row, from another row column's event change listener.
    Thanks.

    Updating the other rows from the checkbox works fine for me. Here is what I did.
    I DnD Emp table with a new column that says if the emp is new hire. If the checkbox is checked, I set Firstname and Lastname for that row as NewHire. I have partial triggers on Firstname and Lastname columns to update whenever checkbox is checked/unchecked and autosubmit on checkbox to true. Hope this helps.
    Try adding column selection property to single and see if it helps.
    Edited by: asatyana on Jan 16, 2012 12:48 AM
    Edited by: asatyana on Jan 16, 2012 12:49 AM

  • Partial trigger and circilar depedency in J dev 11g R2 ADF BC ADFRC apps.

    We have a master detail forms. Master view objects is ADF forms . Detail is table.
    We tried to prevent refresh full page when a detail record added or deleted.
    We use partial triggers. But some PPR error occurs when we tried to add new record and some PPR in table columsn to implement cascade list is triggered.
    errro log and table details as follows.
    "Target unreacehbe. identifier return null, PPR7 . pleae see server error log ..."
    Server error log is.
    SEVERE: Server Exception during PPR, #1
    java.lang.NullPointerException
    at oracle.adfinternal.view.faces.model.binding.RowDataManager.setRowKey(RowDataManager.java:134)
    at oracle.adfinternal.view.faces.model.binding.FacesCtrlHierBinding$FacesModel.setRowKey(FacesCtrlHierBinding.java:542)
    at org.apache.myfaces.trinidad.component.UIXCollection.setRowKey(UIXCollection.java:423)
    at org.apache.myfaces.trinidad.component.UIXCollection.setClientRowKey(UIXCollection.java:653)
    at org.apache.myfaces.trinidad.component.UIXCollection.setCurrencyString(UIXCollection.java:570)
    at org.apache.myfaces.trinidad.component.UIXCollection.invokeOnComponent(UIXCollection.java:1058)
    at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnChildrenComponents(UIXComponentBase.java:1312)
    at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnNamingContainerComponent(UIXComponentBase.java:1362)
    at org.apache.myfaces.trinidad.component.UIXDecorateCollection.invokeOnComponent(UIXDecorateCollection.java:121)
    at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnComponent(UIXComponentBase.java:1406)
    at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnComponent(UIXComponentBase.java:1406)
    at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnComponent(UIXComponentBase.java:1406)
    at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnComponent(UIXComponentBase.java:1406)
    at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnChildrenComponents(UIXComponentBase.java:1312)
    at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent.invokeOnComponent(ContextSwitchingComponent.java:188)
    at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnComponent(UIXComponentBase.java:1406)
    at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnComponent(UIXComponentBase.java:1406)
    at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnComponent(UIXComponentBase.java:1406)
    at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnChildrenComponents(UIXComponentBase.java:1312)
    at oracle.adf.view.rich.component.fragment.UIXInclude.invokeOnComponent(UIXInclude.java:123)
    at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnComponent(UIXComponentBase.java:1406)
    at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnComponent(UIXComponentBase.java:1406)
    at oracle.adf.view.rich.component.rich.RichDocument.invokeOnComponent(RichDocument.java:159)
    at javax.faces.component.UIComponent.invokeOnComponent(UIComponent.java:731)
    at javax.faces.component.UIComponentBase.invokeOnComponent(UIComponentBase.java:675)
    at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._fixClientIds(LifecycleImpl.java:900)
    at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:366)
    at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:165)
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:265)
    at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
    at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:292)
    at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:27)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57)
    at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:191)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57)
    at oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter.doFilter(RegistrationFilter.java:85)
    at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:421)
    at oracle.adfinternal.view.faces.activedata.AdsFilter.doFilter(AdsFilter.java:54)
    at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:421)
    at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:247)
    at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:157)
    at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57)
    at oracle.security.jps.wls.JpsWlsFilter$1.run(JpsWlsFilter.java:96)
    at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:313)
    at oracle.security.jps.wls.util.JpsWlsUtil.runJaasMode(JpsWlsUtil.java:146)
    at oracle.security.jps.wls.JpsWlsFilter.doFilter(JpsWlsFilter.java:140)
    at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:70)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57)
    at oracle.adf.library.webapp.LibraryFilter.doFilter(LibraryFilter.java:160)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57)
    at oracle.dms.wls.DMSServletFilter.doFilter(DMSServletFilter.java:202)
    at oracle.dms.wls.DMSServletFilter.doFilter(DMSServletFilter.java:202)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57)
    at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3588)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
    at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2200)
    at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2106)
    at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1428)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
    oracle.jbo.TooManyObjectsException: JBO-25013: Too many objects match the primary key oracle.jbo.Key[null null 03090000 ].
    at oracle.jbo.server.EntityCache.throwTooManyObjectsException(EntityCache.java:435)
    at oracle.jbo.server.EntityCache.addForAltKey(EntityCache.java:822)
    at oracle.jbo.server.EntityImpl.setAttributeValueInternal(EntityImpl.java:3668)
    at oracle.jbo.server.EntityImpl.readAttrsFromXML(EntityImpl.java:9319)
    at oracle.jbo.server.Serializer.activateEntity(Serializer.java:661)
    at oracle.jbo.server.Serializer.activateTxn(Serializer.java:555)
    at oracle.jbo.server.Serializer.activate(Serializer.java:275)
    at oracle.jbo.server.FileSerializer.activateRootAM(FileSerializer.java:256)
    at oracle.jbo.server.ApplicationModuleImpl.activateState(ApplicationModuleImpl.java:5895)
    at oracle.jbo.server.ApplicationPoolMessageHandler.doPoolMessage(ApplicationPoolMessageHandler.java:217)
    at oracle.jbo.server.ApplicationModuleImpl.doPoolMessage(ApplicationModuleImpl.java:8470)
    at oracle.jbo.common.ampool.ApplicationPoolImpl.sendPoolMessage(ApplicationPoolImpl.java:4389)
    at oracle.jbo.common.ampool.ApplicationPoolImpl.prepareApplicationModule(ApplicationPoolImpl.java:2385)
    at oracle.jbo.common.ampool.ApplicationPoolImpl.doCheckout(ApplicationPoolImpl.java:2201)
    at oracle.jbo.common.ampool.ApplicationPoolImpl.useApplicationModule(ApplicationPoolImpl.java:3085)
    at oracle.jbo.common.ampool.SessionCookieImpl.useApplicationModule(SessionCookieImpl.java:460)
    at oracle.jbo.http.HttpSessionCookieImpl.useApplicationModule(HttpSessionCookieImpl.java:234)
    at oracle.jbo.common.ampool.SessionCookieImpl.useApplicationModule(SessionCookieImpl.java:431)
    at oracle.jbo.common.ampool.SessionCookieImpl.useApplicationModule(SessionCookieImpl.java:426)
    at oracle.adf.model.bc4j.DCJboDataControl.initializeApplicationModule(DCJboDataControl.java:515)
    at oracle.adf.model.bc4j.DCJboDataControl.getApplicationModule(DCJboDataControl.java:858)
    at oracle.adf.model.binding.DCBindingContainer.findDataControl(DCBindingContainer.java:1537)
    at oracle.adf.model.binding.DCIteratorBinding.initDataControl(DCIteratorBinding.java:2403)
    at oracle.adf.model.binding.DCIteratorBinding.getDataControl(DCIteratorBinding.java:2348)
    at oracle.jbo.uicli.binding.JUCtrlActionBinding.getDataControl(JUCtrlActionBinding.java:581)
    at oracle.adf.model.binding.DCInvokeAction.refresh(DCInvokeAction.java:27)
    at oracle.adf.model.binding.DCBindingContainer.internalRefreshControl(DCBindingContainer.java:3107)
    at oracle.adf.model.binding.DCBindingContainer.refresh(DCBindingContainer.java:2759)
    at oracle.adf.controller.v2.lifecycle.PageLifecycleImpl.prepareModel(PageLifecycleImpl.java:112)
    at oracle.adf.controller.faces.lifecycle.FacesPageLifecycle.prepareModel(FacesPageLifecycle.java:80)
    at oracle.adf.controller.v2.lifecycle.Lifecycle$2.execute(Lifecycle.java:137)
    at oracle.adfinternal.controller.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:192)
    at oracle.adfinternal.controller.faces.lifecycle.ADFPhaseListener.mav$executePhase(ADFPhaseListener.java:21)
    at oracle.adfinternal.controller.faces.lifecycle.ADFPhaseListener$PhaseInvokerImpl.startPageLifecycle(ADFPhaseListener.java:231)
    at oracle.adfinternal.controller.faces.lifecycle.ADFPhaseListener$1.after(ADFPhaseListener.java:267)
    at oracle.adfinternal.controller.faces.lifecycle.ADFPhaseListener.afterPhase(ADFPhaseListener.java:71)
    at oracle.adfinternal.controller.faces.lifecycle.ADFLifecyclePhaseListener.afterPhase(ADFLifecyclePhaseListener.java:53)
    at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:352)
    at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:165)
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:265)
    at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
    at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:292)
    at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:191)
    at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:191)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter.doFilter(RegistrationFilter.java:85)
    at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:420)
    at oracle.adfinternal.view.faces.activedata.AdsFilter.doFilter(AdsFilter.java:54)
    at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:420)
    at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:247)
    at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:157)
    at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at oracle.security.jps.wls.JpsWlsFilter$1.run(JpsWlsFilter.java:96)
    at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:313)
    at oracle.security.jps.wls.util.JpsWlsUtil.runJaasMode(JpsWlsUtil.java:146)
    at oracle.security.jps.wls.JpsWlsFilter.doFilter(JpsWlsFilter.java:140)
    at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:70)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at oracle.adf.library.webapp.LibraryFilter.doFilter(LibraryFilter.java:159)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at oracle.dms.wls.DMSServletFilter.doFilter(DMSServletFilter.java:202)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3588)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
    at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2200)
    at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2106)
    at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1428)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
    <af:table value="#{bindings.ViewMisdt626_1.collectionModel}"
    var="row"
    rows="#{bindings.ViewMisdt626_1.rangeSize}"
    emptyText="#{bindings.ViewMisdt626_1.viewable ? 'No rows yet.' : 'Access Denied.'}"
    fetchSize="#{bindings.ViewMisdt626_1.rangeSize}"
    binding="#{backingBeanScope.backing_app_yeniEvrak.table11}"
    selectedRowKeys="#{bindings.ViewMisdt626_1.collectionModel.selectedRow}"
    selectionListener="#{bindings.ViewMisdt626_1.collectionModel.makeCurrent}"
    id="table11"
    inlineStyle="height:250px; width:100%;"
    width="900"
    rowSelection="single"
    partialTriggers=":::commandButton11 :::commandButton21 :::commandButton8 ::commandButton18 ::commandToolbarButton3 :::table3 :::commandButton10">
    <af:column sortProperty="GidisTuru" sortable="false"
    width="100" id="c1" headerText="Gidiş Türü" minimumWidth="50">
    <af:selectOneChoice value="#{row.bindings.GidisTuru.inputValue}"
    label="#{row.bindings.GidisTuru.label}"
    required="#{bindings.ViewMisdt626_1.hints.GidisTuru.mandatory}"
    shortDesc="#{bindings.ViewMisdt626_1.hints.GidisTuru.tooltip}"
    id="selectGidisTuru"
    autoSubmit="true"
    showRequired="true"
    partialTriggers="selectGittigiYer"
    immediate="true">
    <f:selectItems value="#{row.bindings.GidisTuru.items}"
    id="si1"/>
    </af:selectOneChoice>
    </af:column>
    <af:column sortProperty="GittigiYer" sortable="false"
    width="200" id="c2" headerText="Gittiği Yer">
    <af:selectOneChoice value="#{row.bindings.GittigiYer.inputValue}"
    label="#{row.bindings.GittigiYer.label}"
    required="#{bindings.ViewMisdt626_1.hints.GittigiYer.mandatory}"
    shortDesc="#{bindings.ViewMisdt626_1.hints.GittigiYer.tooltip}"
    immediate="false"
    partialTriggers="selectGidisTuru"
    id="selectGittigiYer" inlineStyle="width:200.0px;">
    <f:selectItems value="#{row.bindings.GittigiYer.items}"
    id="si2"/>
    </af:selectOneChoice>
    </af:column>

    I have some question about PPR .
    In our case
    Our forms main commit button is full_submit = true
    We added create insert button of detail view to the partial trigger of table.
    1. do we need to add froms main commit button to the detail table's partial trigers.
    2. is there any circular dpendecy between PPR . if we add a partial target to the table do we need to add this trigger to the columns.
    in our case the question is
    do we need to add create insert button of detail view to the partial triiger of cascade list items' partail triggers.
    Thanks.

  • Column Highlighting Not Working in Chrome or Firefox but works in IE

    Version  4.1.1.00.23
    Hello,
    I have a classic report that I'm trying to apply dynamic column highlighting on.
    I'm following the discussion from Jari https://forums.oracle.com/thread/2209261
    The columns to be highlighted are being determined from a table that gets set every month and the value are being selected in the report query.
    The javascript that is in the Region Footer is:
    [code]
    <script type="text/javascript">
        $(function()
            $('##REGION_ID# input[name="f01"]').each(function(i)
                if ($x('f01').value == 1)
                    var forcast = "JANFORECAST";
                    var actual  = "JANACTUALS";
                    var mth_var = "JANVAR";
                    var mth_var_pnct = "JANVARPER";
                if ($x('f01').value == 2)
                    var forcast = "FEBFORECAST";
                    var actual  = "FEBACTUALS";
                    var mth_var = "FEBVAR";
                    var mth_var_pnct = "FEBVARPER";
                if ($x('f01').value == 3)
                    var forcast = "MARFORECAST";
                    var actual  = "MARACTUALS";
                    var mth_var = "MARVAR";
                    var mth_var_pnct = "MARVARPER";
                if ($x('f01').value == 4)
                    var forcast = "APRFORECAST";
                    var actual  = "APRACTUALS";
                    var mth_var = "APRVAR";
                    var mth_var_pnct = "APRVARPER";
                if ($x('f01').value == 5)
                    var forcast = "MAYFORECAST";
                    var actual  = "MAYACTUALS";
                    var mth_var = "MAYVAR";
                    var mth_var_pnct = "MAYVARPER";
                if ($x('f01').value == 6)
                    var forcast = "JUNFORECAST";
                    var actual  = "JUNACTUALS";
                    var mth_var = "JUNVAR";
                    var mth_var_pnct = "JUNVARPER";
                if ($x('f01').value == 7)
                    var forcast = "JULFORECAST";
                    var actual  = "JULACTUALS";
                    var mth_var = "JULVAR";
                    var mth_var_pnct = "JULVARPER";
                if ($x('f01').value == 8)
                    var forcast = "AUGFORECAST";
                    var actual  = "AUGACTUALS";
                    var mth_var = "AUGVAR";
                    var mth_var_pnct = "AUGVARPER";
                if ($x('f01').value == 9)
                    var forcast = "SEPFORECAST";
                    var actual  = "SEPACTUALS";
                    var mth_var = "SEPVAR";
                    var mth_var_pnct = "SEPVARPER";
                if ($x('f01').value == 10)
                    var forcast = "OCTFORECAST";
                    var actual  = "OCTACTUALS";
                    var mth_var = "OCTVAR";
                    var mth_var_pnct = "OCTVARPER";
                if ($x('f01').value == 11)
                    var forcast = "NOVFORECAST";
                    var actual  = "NOVACTUALS";
                    var mth_var = "NOVVAR";
                    var mth_var_pnct = "NOVVARPER";
                if ($x('f01').value == 12)
                    var forcast = "DECFORECAST";
                    var actual  = "DECACTUALS";
                    var mth_var = "DECVAR";
                    var mth_var_pnct = "DECVARPER";
                $(this).parents("tr:first").find('[headers="' + forcast + '"]').css({"background-color":"silver"});
                $(this).parents("tr:first").find('[headers="' + actual + '"]').css({"background-color":"silver"});
                $(this).parents("tr:first").find('[headers="' + mth_var + '"]').css({"background-color":"silver"});
                $(this).parents("tr:first").find('[headers="' + mth_var_pnct + '"]').css({"background-color":"silver"});
    </script>
    [/code]
    The highlighting works in Internet Explorer, but the same columns are not being highlighted in Chrome or Firefox and there are no errors being reported in either browser.
    Can someone help me with this?
    Is there additional information I can provide that I haven't.
    Thanks,
    Joe

    Hi Fac,
    This is a classic report. After debugging all 3 browsers I finally found the issue.  First, my javascript isn't very good.
    When I looked at the source of the page, I saw that 'F01' contained the value to determine which month's columns to highlight.
    I then thought that if I evaluated the contents of 'F01', using $x('f01').value, that I could set my variables in my if statements.
    During my debugging of the javascript in each of the browsers I came upon the 'this' object being displayed in the watch window. When I expanded the node to view the contents I saw that it also contained the value of the month to highlight as well.
    I have since changed my 'if' statement to if ($x(this).value == <month number> and the hightlighting is working in all 3 browsers correctly.
    Is this still not the right approach as Jari discusses in his post I referenced above?
    Thanks,
    Joe

  • Get the intersection when u know row and column in 2D array

    I am trying to get the intersection of the row and column and I am not able to do so......
    for example:
    123456789 <<These in array indicate the row
    255555555
    388888888
    499997999
    1234 above first element of each row represent columns........
    I want to get 7 which is the intersection of column 6 and row 4............Please help

    Hi Marlin..
    I am reading this after having done it in a very similar way....... thank you so much
    The problem is that the letters in languages can also be characters so they can be a,b..Language over{a,b}..if characters are not in numbers I am trying convert a,b into int internally however I dont know any data structure in java which will accept character as key and int as value......
    So I am stuck at modifying the part highlighted with ???? below
         public void startRecognizing()
              System.out.println("Begun recognizing language....");
              //Convert the word entered to letter array
              char [] wordEntered = word.toCharArray();
              // initialize variables
              currentState = startState[0]; //In the beginning the current state is start state
              /***************    For each letter entered    ********************************/
                   for (int w =0; w < wordEntered.length ;w++)
                        //Print element entered
                        currentChar = wordEntered[w];
                        System.out.println("Char "+currentChar);
                        //Convert to int
                        int currentIntChar;
                        //System.out.println("Char "+currentIntChar);
                        //Print current state
                   int currentIntState = Character.getNumericValue(currentState);
                        //System.out.println(" State "+currentIntState);
                        System.out.println(" State "+currentState);
                   // if characters are numbers this is fine below
                   if((Character.getNumericValue(currentChar)) != -1)
                                          currentIntChar = Character.getNumericValue(currentChar);
    /*** Get the new state based on element entered with the current state and get a new state***/ // column/char entered & row/state// The intersection is the new state which is made the current state for further process
                        //We add 1 since array starts from 0
                   currentState = transitionTable[currentIntState+1][currentIntChar+1];
                        System.out.println("  NEW current state "+currentState);
                   else
         //if letters in the language are not in numbers and are char ie a,b then convert a,b into int internally
                        java.util.Hashtable h = new java.util.Hashtable();
                        // STUCK HERE !!******************??????????
                        h.put(wordEntered[w], new Integer(w));
                        currentIntChar = ((Integer)h.get(wordEntered[w])).intValue();
              System.out.println("currentIntChar non numbers "+currentIntChar);
                        //We add 1 since array starts from 0
                   currentState = transitionTable[currentIntState+1][currentIntChar+1];
                        System.out.println("  NEW current state "+currentState);
              }//for main          
              finalDecision();
         }//startRecognizingThe assignment is due tomm morning...... I havent slept all night !

  • Help! Inserting a 1-D comment array into a 2-D string array at specified row AND column

    Hello everyone,
    I am writing a 2-D string array to excel and i need a way to add comments to my file like this:  
    SLAM    NAME    G Level    Comments
    1              RALF         26               
    1              RALF         26
    1              RALF         26
    1              RALF         26
    For some reason, i cannot specify a row AND column to write because: 
    When i use replace array subset it only replaces 1 element at my index. 
    When i use replace array subset with a loop, it creates empty spaces until it reaches the end of the array it is replacing.
    When i use Insert into array: i cannot wire 2 inputs for row and column.  
    In my complete VI i will need to write from row 1-1001, a different comment from 2-2002, a different comment from 3-3003, etc until a stop condition is met so i need to figure out how to do this programatically and not have it replace any elements outside of the range or it will override previous commetns. 
    I am at a loss of what to do. Any and all suggestions are greatly appreciated. 
    Thanks!
    Solved!
    Go to Solution.
    Attachments:
    array.vi ‏13 KB

    Hi proph,
    I made a small subtile change to yur VI and now it replaces all values of the 4th column…
    THINK DATAFLOW!
    Use shift registers when you need to propagate values from one loop iteration to the next!
    USE/LEARN DEBUGGING TECHNIQUES!
    There are tools like probes and highlight to understand your VI execution and to find problems…
    Go through all those free online courses offered by NI!
    Best regards,
    GerdW
    CLAD, using 2009SP1 + LV2011SP1 + LV2014SP1 on WinXP+Win7+cRIO
    Kudos are welcome
    Attachments:
    array.vit ‏12 KB

  • Partial trigger and required field

    We developed an ADF JSF application which some of field has partial trigger .
    Then we add some required field.
    when runtime when we change any partial trigger target item all field validated and "required field missing message" occurs.
    How can we prevent this behaviour ?
    why all field controlled against partial triggered items?
    is it normal?
    How can we solve this ?
    Thanks.

    Hi,
    in JDeveloper 11 the implementation has changed and the issue wont be the same in most of the cases. There also is a notion of subform that allows you to only submit the field of interest - not affecting any other field.
    Frank

  • Spry tables: row and column rollover

    I have created some tables with spry and they are very nice.
    I got the nice rollover effect to work on the rows, but the table
    has enough rows and columns that if the the row AND column where
    highlighted that would be even better. Is there a way to get the
    row and column to highlight at the same time (Essentially
    highlighting or intersecting at particular cell or data point)?
    Thanks.

    http://lawrence.ecorp.net/inet/samples/dhtml-rollover-tble-cols-rows.shtml

  • Partial triggers between two different jsff

    hi is it possible to obtain the information from the table in one jsff page in another jsff page thro partial triggers..........
    (i.e) we have the read only table in one jsff page and we need to obtain the information of the row into another jsff page which has a form....
    Both the fsff pages are in the same jspx page with different task flows

    Hi,
    this seems to be a duplicate of displaying content from table in one jsff to form in another jsff page
    Frank

  • Triggering and simultaneous measurements

    Hi everybody 
    I've written a Vi to to acquire data simultaneously from 7 devices. I'll be using cDAQ9178 with NI9203. The vi will acquire current values 4 to 20mA. Could you please check the attached file and let me know if I need to improve it.
    I have some question and I should be grateful if anyone can help me to answer them.
    1. How to open the binary file from write to measurement file by EXCEL?
    2. Is it better to use write to spreadsheet for data logging, if yes how to include the time column??
    3. I'm going to use external signal for triggering through PIF0 port, is it Ok to do that through dag assistance?? I've not tried yet but it seems straightforward?
    4. Finally I have another vi for valve control that should be triggered with the measurement vi, is their any way to do that?? I was thinking about notifiers but I don't know how to use them ?
    Sorry for asking to much  I really in urgent need of all of this. I should finish my data acquisition system by Tuesday 
    Best Regards 
    Solved!
    Go to Solution.
    Attachments:
    triggering and simultaneous measurements.vi ‏97 KB

    1. How to open the binary file from write to measurement file by EXCEL?
    If you select TDMS as the file format in the write to measurement file, you should be able to open it directly from Excel if you install the TDMS Excel Add-In. Be aware that at 1kHz data rate, you will exceed the capability of old versions of Excel to read the entire file in about 65 seconds. Newer versions can read more, but anything over a couple thousand points gets difficult to analyze. That is about my limit. Over this, I go to something else for analysis, such as LabVIEW or Mathematica.
    2. Is it better to use write to spreadsheet for data logging, if yes how to include the time column??
    The write to spreadsheet file is very inefficient for data logging and cannot be recommended. Given your data (an array of waveforms), TDMS is your best bet. The write to measurement file Express VI is the easy way to do this. I, personally, prefer the control I get from using the TDMS API directly. Note that under the hood, the output of the DAQ Assistant is an array of waveforms with individual t0s and dts. The t0s are all different due to the fact that your 9203 is a scanned device, not a simultaneously sampled device. It scans at 200kHz, so the differences are not large, but they are there. I would convert the DDT into an array of waveforms, then use the native TDMS API, but I have a lot of experience. Since you are in a hurry, the Express VI using TDMS is probably your best bet.
    3. I'm going to use external signal for triggering through PIF0 port, is it Ok to do that through dag assistance?? I've not tried yet but it seems straightforward?
    That should work fine. Given your continuous acquisition, the trigger will only start the acquisition, not gate it or trigger it at later times.
    4. Finally I have another vi for valve control that should be triggered with the measurement vi, is their any way to do that?
    We do not have enough information to answer this question. Specifically, how is the valve being triggered (boards being used, hardware interface, software interface). The ideal way would be to run it through the same cDAQ 9178 so that it can be synchronized through hardware. Software synchronization cannot be guaranteed better than about ±50ms. Read up on how to synchronize things through DAQmx and you should be good.
    Good luck!
    This account is no longer active. Contact ShadesOfGray for current posts and information.

  • Partial triggers not Fired on partial submit when invalidate component

    Can somebody tell me why Partial triggers are not Fired on partial submit when invalidate component in the validator. Neither error message next to the component is displayed.
    Does somebody has an idea how can i solve this?
    Thank you very much in advance

    Hi, that is a test case which i have promised you:
    The .jspx page contains two fields , one of which has autosubmit = true; You will see, that when invalidate test field 2 partial triigers on field 1 are not fired neither faces message next
    to the field 2 appears.
    If you add programatically Field 1 and Field 2 partial trigerrs this solve the problem.
    I'm waiting for your response.
    Regards,
    Krasi
    <?xml version='1.0' encoding='windows-1251'?>
    <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:af="http://xmlns.oracle.com/adf/faces"
    xmlns:afh="http://xmlns.oracle.com/adf/faces/html">
    <jsp:output omit-xml-declaration="true" doctype-root-element="HTML"
    doctype-system="http://www.w3.org/TR/html4/loose.dtd"
    doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN"/>
    <jsp:directive.page contentType="text/html;charset=windows-1251"/>
    <f:view>
    <afh:html>
    <afh:head>
    <meta http-equiv="Content-Type"
    content="text/html; charset=windows-1251"/>
    <title>pprTest</title>
    </afh:head>
    <afh:body>
    <af:form>
    <af:panelLabelAndMessage label="Test Field 1">
    <af:outputText binding="#{testBean.testField1Comp}"
    partialTriggers="testField2"/>
    </af:panelLabelAndMessage>
    <af:inputText label="Test Field 2"
    id="testField2"
    autoSubmit="true"
    binding="#{testBean.testField2Comp}"
    partialTriggers="testField2"
    validator="#{testBean.testField2_validator}" />
    </af:form>
    </afh:body>
    </afh:html>
    </f:view>
    </jsp:root>
    import javax.faces.application.FacesMessage;
    import javax.faces.component.UIComponent;
    import javax.faces.context.FacesContext;
    import oracle.adf.view.faces.component.UIXInput;
    import oracle.adf.view.faces.component.core.input.CoreInputText;
    import oracle.adf.view.faces.component.core.output.CoreOutputText;
    import javax.faces.application.FacesMessage.Severity;
    public class TestBean {
    private CoreOutputText testField1Comp;
    private CoreInputText testField2Comp;
    public TestBean() {
    public void testField2_validator(FacesContext facesContext,
    UIComponent uiComponent, Object value) {
    // If input equals "invalidate" set value of the
    // testField1Comp on "Component is invalid"
    // Invalidate input and add an error message
    if (((String)value).equals("invalidate")) {
    testField1Comp.setValue("Component is invalid");
    invalidateInput( (UIXInput)uiComponent,"TestField2","Test Field 2 is invalid!");
    // If input not equals "invalidate" set value of the
    // the testField1Comp on "Component is valid"
    else{
    testField1Comp.setValue("Component is valid");
    //Dynamic adding of the partial targets , solves the problem
    // with losing of partial triggers
    //AdfFacesContext.getCurrentInstance().addPartialTarget(testField1Comp);
    //AdfFacesContext.getCurrentInstance().addPartialTarget(uiComponent);
    public void setTestField1Comp(CoreOutputText testField1Comp) {
    this.testField1Comp = testField1Comp;
    public CoreOutputText getTestField1Comp() {
    return testField1Comp;
    public void setTestField2Comp(CoreInputText testField2Comp) {
    this.testField2Comp = testField2Comp;
    public CoreInputText getTestField2Comp() {
    return testField2Comp;
    public static void invalidateInput(UIComponent uiComp,String compName, String message) {
    showErrorMessage(uiComp , message);
    if (uiComp instanceof UIXInput){
    ((UIXInput) uiComp).setValid(false);
    public static void showErrorMessage(UIComponent component, String message) {
    showMessage(component, message, FacesMessage.SEVERITY_ERROR);
    private static void showMessage(UIComponent component, String message, Severity severity) {
    String compId = component.getId();
    FacesContext ctx = JSFUtils.getFacesContext();
    FacesMessage facesMessage = new FacesMessage(
    severity, component.getId() , message);
    ctx.addMessage(compId,facesMessage );
    }

  • Partial triggers doesnt work with Geo maps

    Hi All,
    Partial triggers are not working with Geo Maps.In dvt:map, PartialTriggers , when i select a table/command button from edit option,Field shows Red Mark, throws "Reference not found".
    What could be the reason ??
    Please help
    Thanks
    Sandeep.G

    Hi Priya ,
    See selectoneradio
    "The rule is that you cannot set at the same level the properties render and partialTriggers."
    Remove the partialTrigger from the inputText field, surround it by a component, f.ex. a panelHorizontal where you put the partialTrigger.
    It should then work.
    Regards,
    Didier.

  • How to create audit triggers and run it dynamically?

    DECLARE
    V_CRT VARCHAR2(4000);
    V_DRP VARCHAR2(200);
    BEGIN
    FOR tab_rec IN (SELECT TABLE_NAME FROM USER_tabLES WHERE TABLE_NAME NOT LIKE '%TMP' AND TABLE_NAME NOT LIKE '%BAK' AND TABLE_NAME NOT LIKE 'MV_%') loop
    v_DRP := 'DROP TABLE AUD_'||tab_rec.tABLE_name ||';' || CHR(13);
    v_crt := ' CREATE TABLE AUD_'||tab_rec.tABLE_name
    ||'( ACTION VARCHAR2(1) ,
    CONSTRAINT AUD_'||SUBSTR(TAB_REC.TABLE_NAME, 1,11)||substr(tab_rec.table_name,length(tab_rec.table_name)-4,5)||'_CHKACTION CHECK (ACTION IN (''I'',''U'',''D'')),
    ISSUE_TIMESTAMP TIMESTAMP DEFAULT SYSDATE,
    ISSUE_USER VARCHAR2(30),
    ISSUE_HOST VARCHAR2(40),
    FOR col_rec IN (SELECT column_name,data_type,data_length,data_precision,data_scale FROM user_tab_cols WHERE table_name = tab_rec.table_name ORDER BY column_id)
    loop
    IF col_rec.data_type = 'VARCHAR2' THEN
    v_crt := v_crt || col_rec.column_name || ' '|| col_rec.data_type||'('||col_rec.data_length||'),'||chr(13)||' ';
    ELSIF col_rec.data_type = 'NUMBER' THEN
    v_crt := v_crt || col_rec.column_name || ' '||col_rec.data_type;
    IF col_rec.data_precision IS NOT NULL THEN
    v_crt:= v_crt||'('||col_rec.data_precision||','||col_rec.data_scale||'),'||chr(13)||' ';
    ELSE
    v_crt:= v_crt||','||chr(13)||' ';
    END IF;
    ELSE
    v_crt := v_crt || col_rec.column_name || ' '||col_rec.data_type||','||chr(13)||' ';
    END IF;
    END loop;
    v_crt := rtrim(v_crt);
    v_crt := substr(v_crt,1,LENGTH(v_crt)-2)||');';
    DBMS_OUTPUT.PUT_LINE(v_crt);
    v_crt:= '';
    END LOOP;
    END;
    The audit tables are named same as the table prefixed with AUD_. The audit table has two columns ACTION and ISSUE_TIMESTAMP more than the main tables.
    This anonymous block creates the triggers in the table which has audit tables dynamically.
    The user data is not maintained here in this code.
    This code runs.
    DECLARE
    v_output1 VARCHAR2(5000);
    v_insert VARCHAR2(4000);
    v_delete VARCHAR2(4000);
    v_update VARCHAR2(4000);
    v_cols VARCHAR2(1000);
    v_columns VARCHAR2(2000)DEFAULT '';
    v_columns_new VARCHAR2(2000) DEFAULT '';
    v_columns_old VARCHAR2(2000) DEFAULT '';
    v_tab1 VARCHAR2(30) DEFAULT ' ';
    v_tab2 VARCHAR2(30) DEFAULT ' ';
    v_tab3 VARCHAR2(30) DEFAULT ' ';
    v_schema varchar2(30) default 'schema'; --
    v_user_id VARCHAR2(30); -- not used in this program
    v_host VARCHAR2(30);
    BEGIN
    /* The audit tables are created with table name prefixed with AUD and columns ACTION AND ISSUE DATE, ISSUE_USER,ISSUE_HOST added.*/
    FOR rec IN
    (SELECT tname FROM tab WHERE tname LIKE 'AUD%'
    LOOP
    v_columns := '';
    v_columns_new := '';
    v_columns_old := '';
    v_output1 := 'CREATE OR REPLACE TRIGGER '
    ||v_schema||'.' ||rec.tname ||'_TRIG ' || chr(13)
    ||' AFTER ' || chr(13)
    ||' INSERT OR '|| chr(13)
    ||' UPDATE OR '|| chr(13)
    ||' DELETE ON '|| chr(13)
    ||v_schema||'.'
    || substr(rec.tname,5)
    || chr(13)
    ||' FOR EACH ROW '
    ||chr(13)
    ||' BEGIN ' || chr(13);
    FOR colrec IN
    (SELECT column_name
    FROM user_tab_cols
    WHERE table_name = rec.tname
    AND column_name NOT IN ('ACTION','ISSUE_TIMESTAMP','ISSUE_USER','ISSUE_HOST')
    LOOP
    v_columns := v_columns||v_tab3||colrec.column_name ||','||chr(13);
    v_columns_new := v_columns_new ||v_tab3||':new.'||colrec.column_name ||','||chr(13) ;
    v_columns_old := v_columns_old ||v_tab3||':old.'||colrec.column_name ||','||chr(13) ;
    END LOOP;
    v_columns := SUBSTR(v_columns ,1,LENGTH(v_columns ) -2);
    v_columns_new := SUBSTR(v_columns_new,1,LENGTH(v_columns_new)-2);
    v_columns_old := SUBSTR(v_columns_old,1,LENGTH(v_columns_old)-2);
    v_insert := v_tab1||'IF INSERTING THEN ' || chr(13)
    ||v_tab2||'INSERT INTO '||v_schema||'.' ||rec.tname|| chr(13)
    || v_tab2||' ( '||chr(13)
    || v_tab3||'ACTION,'||chr(13)
    || v_tab3||'ISSUE_TIMESTAMP,' ||chr(13)
    || v_tab3||'ISSUE_USER,'||chr(13)
    || v_tab3||'ISSUE_HOST,'||chr(13)
    ||v_columns ||chr(13) ||v_tab2||')' || chr(13)
    ||v_tab2||' VALUES ' ||chr(13)
    ||v_tab2||' (' ||chr(13)
    ||v_tab3||'''I'''||','||chr(13)
    ||v_tab3||'SYSTIMESTAMP'||','||chr(13)
    ||v_tab3||'USER'||','||chr(13)
    ||v_tab3||'sys_context('||'''USERENV'''||','||'''HOST'''||'),'||chr(13)
    ||v_columns_new ||v_tab2||');' ||chr(13)
    ||v_tab1||'END IF;'
    || CHR(13);
    v_delete := v_tab1||'IF DELETING THEN ' || chr(13)
    ||v_tab2||'INSERT INTO '||v_schema||'.' ||rec.tname|| chr(13)
    ||v_tab2|| '( '||chr(13)
    || v_tab3||'ACTION,'||chr(13)
    || v_tab3||'ISSUE_TIMESTAMP,' ||chr(13)
    || v_tab3||'ISSUE_USER,'||chr(13)
    || v_tab3||'ISSUE_HOST,'||chr(13)
    ||v_columns ||chr(13)
    ||v_tab2||')' || chr(13)
    ||v_tab2||' VALUES ' ||chr(13)
    ||v_tab2||' (' ||chr(13)
    ||v_tab3||'''D'''||','||chr(13)
    ||v_tab3||'SYSTIMESTAMP'||','||chr(13)
    ||v_tab3||'USER'||','||chr(13)
    ||v_tab3||'sys_context('||'''USERENV'''||','||'''HOST'''||'),'||chr(13)
    ||v_columns_old
    ||v_tab2||');' ||chr(13)
    ||v_tab1
    ||'END IF;' ||CHR(13);
    v_update := v_tab1||'IF UPDATING THEN ' || chr(13)
    ||v_tab2||'INSERT INTO '||v_schema||'.' ||rec.tname|| chr(13)
    ||v_tab2|| '( '||chr(13)
    ||v_tab3|| 'ACTION,'||chr(13)
    ||v_tab3|| 'ISSUE_TIMESTAMP,' ||chr(13)
    ||v_tab3||'ISSUE_USER,'||chr(13)
    ||v_tab3||'ISSUE_HOST,'||chr(13)
    ||v_columns ||chr(13)
    ||v_tab2||')' || chr(13)
    ||v_tab2||' VALUES ' ||chr(13)
    ||v_tab2||' (' ||chr(13)
    ||v_tab3||'''U'''||','||chr(13)
    ||v_tab3||'SYSTIMESTAMP'||','||chr(13)
    ||v_tab3||'USER'||','||chr(13)
    ||v_tab3||'sys_context('||'''USERENV'''||','||'''HOST'''||'),'||chr(13)
    ||v_columns_new
    ||v_tab2||');' ||chr(13)
    ||v_tab1||'END IF;'|| chr(13) ;
    -- v_output1 := v_output1 || v_insert || v_update|| v_delete ||CHR(13)||'END;';
    --EXECUTE IMMEDIATE v_output1;
    -- v_output1 := v_output1 || chr(13)||'/';
    dbms_output.put_line(v_output1); generate script
    dbms_output.put_line(v_output1);
    dbms_output.put_line(v_insert);
    dbms_output.put_line(v_update);
    dbms_output.put_line(v_delete);
    dbms_output.put_line('END;');
    dbms_output.put_line('/');
    END LOOP;
    END;
    show errors;
    Edited by: ranjus on Oct 17, 2012 3:33 PM

    Thank you so much for your suggestions.
    I went through the link you suggested.
    I wondered why DBA requested me to create triggers when such easy option was available to them. And I found the reason why triggers for audit.
    When Triggers Are Necessary
    Avoiding False Positives. Audit trails are generated through autonomous transactions from the original transactions. Hence they are committed even if the original transactions are rolled back.
    Here is a simple example to illustrate the point. Assume that we have set up auditing for UPDATEs on table CLASS. A user issues a statement to update a data value from 20 to 10 and then rolls it back as shown below.
    update class set size = 10 where class_id = 123;
    rollback
    Now the value of the column SIZE will be 20, not 10, as if the user never did anything. However, the audit trail will capture the change, even if it's rolled back. This may be undesirable in some cases, especially if there are lots of rollbacks by users. In such a case, you may have to use the trigger to capture only committed changes. If there were a trigger on the table CLASS to insert records into the user defined audit trail, upon rollback the audit trails would have been rolled back too
    Capturing Before-change Values. Oracle-provided audit trails do not show the values before and after the change. For instance, the above change will create an audit record that shows the statement and the SCN number at the change, but not the value before the change (20). The value can be obtained from the SCN number using flashback query, but it depends on the information being available in the undo segments. If the information is not captured within the limit specified by the undo_retention period, the prior values can never be retrieved. Using a trigger guarantees that the values are captured without dependence on the undo_retention period, and may prove useful at times. Under these two circumstances you may decide to continue using triggers to record the audit trails at a granular detail.

  • Numbers 3.1 How to get row/column highlight on mouseover?

    Hi, hope someone can help with a query.
    I've just updated Numbers to 3.1 on OSX.
    The Release Notes indicated there is an option to have rows/columns highlighted on mouseover.
    I have looked in Preferences to find this option, without success.
    Does anyone know how to access this option please?
    Many thanks.
    Steve

    Hi Ian,
    Nice catch. I too was wondering about that particular feature, and couldn't find it. 
    What purpose that serves, I have no idea.
    Well, I suppose it's supposed to show you where your cursor is in a vast sea of numbers.
    On my machine when I hold down the option key and hover over a cell I see a pleasant blue cross with a white cell in the middle. Pondering the beauty of it all, for a moment I forgot what I was looking for.
    Actually, I'm finding it a nice touch, helpful for working with largish tables.
    SG

  • Programmactic Access DataGrid Rows and Columns

    Hello,
    I am new to ActionScript. Can you tell me how can I access
    the rows and columns of a data grid?
    What I want to do is that when the application load, I will
    populate the datagrid with the Xml returned from the webservice.
    After that, webservice will be called periodically (using timer)
    and the information in the datagrid needs to be updated. The cells
    which are updated need to be highlighted.
    The datagrid actually contains the stock market data (symbol
    name and its other attributes). So once the datagrid has been
    populated on application creation, it contains all the symbols in
    the market. After that, only attributes of the symbols will change,
    like price, volume etc. What I want is that once the datagrid is
    populated, i can access the row by using the value of symbol code
    and then update the appropriate columns of that symbol. (Xml from
    next time will contain only symbols whose values change from last
    time).
    Below is the code that I have written so far.
    <?xml version="1.0" encoding="utf-8"?>
    <mx:Application xmlns:mx="
    http://www.adobe.com/2006/mxml"
    layout="absolute"
    creationComplete="OnAppCreationComplete()" width="100%"
    height="100%">
    <mx:Script>
    <![CDATA[
    import mx.rpc.events.ResultEvent;
    private var count:uint = 0;
    private var messageFramXmlList:XMLList;
    private var marketSnapshotTimer:Timer = new Timer(1000);
    private function OnAppCreationComplete() : void
    this.ajaxServiceInvokerProxy.addEventListener(ResultEvent.RESULT,
    this.OnWebServiceResultArrived);
    this.ajaxServiceInvokerProxy.InvokeService.send();
    this.marketSnapshotTimer.addEventListener(TimerEvent.TIMER,
    this.OnSnapshotTimerTick);
    this.marketSnapshotTimer.start();
    private function
    OnWebServiceResultArrived(event:ResultEvent) : void
    var marketSnapshotXml:XML = new XML(event.result);
    this.messageFramXmlList =
    marketSnapshotXml.child("MarketSnapshot").child("MessageFrameList")[0].child("MessageFram e");
    this.dgTopPosts.dataProvider = this.messageFramXmlList;
    this.btnCounter.label = this.count.toString();
    private function OnSnapshotTimerTick(event:TimerEvent) :
    void
    this.count++;
    this.ajaxServiceInvokerProxy.InvokeService.send();
    ]]>
    </mx:Script>
    <mx:WebService id="ajaxServiceInvokerProxy"
    wsdl="
    http://jehanzeb/ajaxserviceinvoker/ajaxserviceinvoker.asmx?wsdl"
    useProxy="false">
    <mx:operation name="InvokeService">
    <mx:request>
    <serviceWithComonentName>DetailedSnapshotComponent.MarketSnapshot@TADAWUL</serviceWithCom onentName>
    <parametersXml><![CDATA[ <Parameters/>
    ]]></parametersXml>
    </mx:request>
    </mx:operation>
    </mx:WebService>
    <mx:Panel x="10" y="10" width="100%" height="100%"
    layout="absolute" title="Market View">
    <mx:RichTextEditor id="txtMarketViewResult" x="10" y="10"
    width="612" height="194" />
    <mx:DataGrid x="10" y="223" id="dgTopPosts" width="100%"
    height="303">
    <mx:columns>
    <mx:DataGridColumn headerText="Symbol Code"
    dataField="SymbolID" />
    <mx:DataGridColumn headerText="Last Time"
    dataField="LastTime" />
    <mx:DataGridColumn headerText="Net Change"
    dataField="NetChange" width="75"
    />
    <mx:DataGridColumn headerText="Percent Change"
    dataField="PercentChange" width="75" />
    <mx:DataGridColumn headerText="Previous Closed"
    dataField="PreviousClosed" width="75"/>
    <mx:DataGridColumn headerText="Close" dataField="Close"
    width="75"/>
    <mx:DataGridColumn headerText="Direction"
    dataField="Direction" width="75"/>
    <mx:DataGridColumn headerText="BidPrice"
    dataField="BidPrice" width="75"/>
    <mx:DataGridColumn headerText="AskPrice"
    dataField="AskPrice" width="75"/>
    <mx:DataGridColumn headerText="BidVolume"
    dataField="BidVolume" width="75"/>
    <mx:DataGridColumn headerText="AskVolume"
    dataField="AskVolume" width="75"/>
    </mx:columns>
    </mx:DataGrid>
    <mx:LinkButton id="btnCounter" x="10" y="528" width="306"
    textAlign="left" label="" />
    </mx:Panel>
    </mx:Application>

    To achieve what you want, I would have two functions:
    * One populates the DataGrid for the first time, i.e. the
    inital load
    * The other does the 'update' on each interval, since there's
    logic required
    To update the DataGrid with only the rows that have changed,
    you're going to have to compare
    the incoming XML to the existing XML in the dataProvider of
    the DataGrid, then selectively update the dataProvider.
    You can use the
    getItemAt() and
    setItemAt() methods of the data provider to check each row
    against the incoming data. So, some example code:
    // This is the function which handles the result of your
    'updated data only' webservice
    private function handleUpdateInvoke (event:ResultEvent) :
    void {
    var incoming:XML = new XML(event.result);
    var someList:XMLList = incoming.somePattern;
    // For each data provider item, check the key and if it
    matches
    // one of the incoming keys, update it at that index
    var numRows = this.dgTopPosts.dataProvider.length;
    var existingDataRow:*
    for (var i:Number = 0; i < numRows; i++) {
    existingDataRow = this.dgTopPosts.dataProvider.getItemAt(i);
    for each (var newDataRow:* in someList) {
    if (existingDataRow.SymbolID == newDataRow.SymbolID) {
    this.dgTopPosts.dataProvider.setItemAt(newDataRow, i);
    }

Maybe you are looking for