Uix RowKey

I am within my event handler method. I have a row key. Where can I find information on how to translate this key into its 'Row' object.
Tks
Booker Northington II

Sorry, here it is without the range:
Uix RowKey to Oracle Table rowid mapping

Similar Messages

  • Uix RowKey to Oracle Table rowid mapping

    Dose uix provide a mapping between its RowKey and Oracle Table rowid? Something like a HashMap where the uix 'RowKey' would be the key and the oracle table 'rowid' woudl be the value? I find myself in situations where this would be useful.
    Tks
    Booker Northington II

    No, we don't provide a direct mapping (this would be the responsibility of BC4J, not UIX). However, you can always have your ViewObject return the rowid as part of its result set. There are also two BC4J APIs that may help you map back and forth, take a look at ViewObject.findRowByKey()
    This is the one I have been working with. I have created my Key 2 different ways. I donot get any results when the key is passed to findByKey(...). I have tried it using both Constructors:Key myKey=new Key(anObjectArray);
    Where anObjectArray is RowKey passed in. I placed it into an Object array.
    The other way:
    Key myKey=new Key(theRowKey, ServletBindingUtils.getAttributeDef(bajaContext));
    I know the RowKey is valid. When I pass myKeyinto findByKey, it dose not return anything. I have tried it using both Constructors.
    Row[] row=someViewObject.findByKey(myKey,1);
    Question: Isn't the RowKey a map to one row in the database? If so, why is an array of rows returned?
    Tks
    Booker Northington II

  • Binding Editors not present in ADF UIX

    Hi
    I have been having some trouble with accessing both the Boolean Binding Editor and the LOV Editor from the structure window, when in design mode of an ADF UIX page.
    My bindings are present, but when I 'Edit' the binding, the only option available to me is to select the Iterator and the attribute.
    The documentation keeps telling me to select different tabs, but there aren't any!
    Anyone had this problem????
    I'm on;
    Oracle IDE     9.0.5.16.27
    Business Components Version     9.0.5.16.0
    UML Modelers Version     9.0.5.14.78
    Versioning Support     9.0.5.14.78
    WebDAV Support Version     9.0.5.14.78
    Struts Modeler Version     9.0.5.4.22
    Designer Generators Framework     9.0.5.5.71
    ADF UIX     2.2.8
    java.version     1.4.2
    java.home     C:\j2sdk1.4.2_04\jre
    java.vm.name     Java HotSpot(TM) Client VM
    java.vm.vendor     Sun Microsystems Inc.
    java.vm.version     1.4.2-b28
    user.language     en
    user.region     <no value assigned>
    user.name     chris.bell
    user.home     C:\Documents and Settings\chris.bell
    user.dir     C:\Software\Oracle\jdev9052\jdev\bin
    os.name     Windows XP
    os.version     5.1
    os.arch     x86
    http.proxyHost     <no value assigned>
    http.proxyPort     <no value assigned>
    http.nonProxyHosts     <no value assigned>
    ide.patches     
    Thanks in advance
    Chris

    the primaryclient action should pass the rowkey of the current row (${uix.current.rowKeyStr}) as a parameter. This way the server can find the corresponding row on the server in an event handler.
    see
    http://www.oracle.com/technology/products/jdev/tips/jacobi/edittable/tip_adfuixtable_edit.html

  • UIX lists

    I'm developing a UIX BC Application using J Developer. I want to create a choice list providing the attribute values (attrValue) for a specified attribute name (attrName). I want to create the following type of list in my UIX page:
    <bc4j:rootAppModuleScope name="SUBJECT" >
    <contents>
    <bc4j:viewObjectScope name="SomeViewName" >
    <contents>
    <bc4j:list name="subj" attrName="SUBJECT">
    <contents>
    <option text="John" value="12314"/>
    <option text="Gabe" value="45746"/>
    <option text="Nadia" value="36722"/>
    </contents>
    </bc4j:list>
    </contents>
    </bc4j:viewObjectScope>
    </contents>
    </bc4j:rootAppModuleScope>
    When I try to add this to the code below, the attribute values are recognised as attribute names. I want to add this list to the UIX page below so instead of providing a text input for the attribute values, the user has to select a value for a specific attribute name. How can I add the type of list specified above to the UIX page described below? Thanks.
    The code for my UIX page is:
    <?xml version="1.0" encoding="windows-1252" ?>
    <page xmlns="http://xmlns.oracle.com/uix/controller"
    xmlns:ctrl="http://xmlns.oracle.com/uix/controller"
    xmlns:ui="http://xmlns.oracle.com/uix/ui"
    xmlns:bc4j="http://xmlns.oracle.com/uix/bc4j" >
    <bc4j:registryDef>
    <bc4j:rootAppModuleDef name="SIM_Reports_View1AppModule"
    definition="SIM.SIM_REPORTS_MODULE"
    releaseMode="stateful" >
    <bc4j:viewObjectDef name="SIM_Reports_View1"
    rangeSize="3" />
    </bc4j:rootAppModuleDef>
    </bc4j:registryDef>
    <content>
    <try xmlns="http://xmlns.oracle.com/uix/ui"
    xmlns:data="http://xmlns.oracle.com/uix/ui" >
    <catch>
    <displayException />
    </catch>
    <contents>
    <pageLayout xmlns="http://xmlns.oracle.com/uix/ui"
    xmlns:data="http://xmlns.oracle.com/uix/ui"
    title="SIM_Reports_View1 View" >
    <productBranding>
    <image source="SIMNETL.JPG" shortDesc="JDeveloper Product Logo"/>
    </productBranding>
    <globalButtons>
    <globalButtonBar>
    <contents>
    <globalButton source="www_home.gif"
    text="Home"
    destination="Main.uix" />
    <globalButton source="www_contact.gif"
    text="Contact Us"
    destination="http://www.oracle.com" />
    <globalButton source="www_help.gif"
    text="Help"
    destination="http://otn.oracle.com/products/jdev/content.html" />
    </contents>
    </globalButtonBar>
    </globalButtons>
    <copyright>Copyright 2002 Oracle Corporation. All Rights Reserved.</copyright>
    <privacy>
    <link text="Privacy Statement" destination="http://www.oracle.com"/>
    </privacy>
    <!-- End of common pageLayout section -->
    <contents>
    submission -->
    <messageBox automatic="true" />
    <bc4j:rootAppModuleScope name="SIM_Reports_View1AppModule" >
    <contents>
    <header text="Search" >
    <contents>
    <form name="search" method="POST" >
    <contents>
    <inlineMessage prompt="Search" vAlign="middle" >
    <contents>
    <flowLayout>
    <contents>
    <choice name="attrName"
    data:selectedValue="attrName@ctrl:page"
    shortDesc="Search Column">
    <contents>
    <option text="SUBJECT" value="SUBJECT" />
    <option text="DATE" value="DATE" />
    <option text="CONTENTS" value="CONTENTS" />
    <option text="COUNTRY" value="COUNTRY" />
    <option text="REFERENCE" value="REFERENCE" />
    </contents>
    </choice>
    <textInput name="attrValue" columns="20"
    data:text="attrValue@ctrl:page"
    shortDesc="Search"/>
    </contents>
    </flowLayout>
    </contents>
    <end>
    <submitButton text="Go" ctrl:event="search" />
    </end>
    </inlineMessage>
    </contents>
    </form>
    </contents>
    </header>
    <header text="Results" >
    <contents>
    <form name="viewForm" method="POST" >
    <contents>
    <tableLayout>
    <contents>
    <bc4j:viewObjectScope name="SIM_Reports_View1" >
    <contents>
    <bc4j:table name="viewTable" width="80%"
    alternateText="No rows found">
    <tableSelection>
    <!-- single selection for each row in the table -->
    <singleSelection selectedIndex="0" shortDesc="Select Row">
    <contents>
    <!-- the update button causes the currently selected
    row to be sent to the update page -->
    <submitButton text="Update"
    ctrl:event="update" />
    <submitButton text="Delete"
    ctrl:event="delete" />
    </contents>
    </singleSelection>
    </tableSelection>
    <bc4j:keyStamp>
    <bc4j:rowKey name="key" />
    </bc4j:keyStamp>
    <contents>
    in the ViewObject. -->
    <bc4j:column attrName="SUBJECT">
    <columnHeader>
    <bc4j:sortableHeader/>
    </columnHeader>
    <contents>
    <bc4j:input readOnly="true"/>
    </contents>
    </bc4j:column>
    <bc4j:column attrName="DATE">
    <columnHeader>
    <bc4j:sortableHeader/>
    </columnHeader>
    <contents>
    <bc4j:input readOnly="true"/>
    </contents>
    </bc4j:column>
    <bc4j:column attrName="CONTENTS">
    <columnHeader>
    <bc4j:sortableHeader/>
    </columnHeader>
    <contents>
    <bc4j:input readOnly="true"/>
    </contents>
    </bc4j:column>
    <bc4j:column attrName="COUNTRY">
    <columnHeader>
    <bc4j:sortableHeader/>
    </columnHeader>
    <contents>
    <bc4j:input readOnly="true"/>
    </contents>
    </bc4j:column>
    <bc4j:column attrName="REFERENCE">
    <columnHeader>
    <bc4j:sortableHeader/>
    </columnHeader>
    <contents>
    <bc4j:input readOnly="true"/>
    </contents>
    </bc4j:column>
    </contents>
    </bc4j:table>
    </contents>
    </bc4j:viewObjectScope>
    </contents>
    </tableLayout>
    </contents>
    </form>
    </contents>
    </header>
    </contents>
    </bc4j:rootAppModuleScope>
    </contents>
    <contentFooter>
    <button text="Create" ctrl:event="create" />
    </contentFooter>
    </pageLayout>
    </contents>
    </try>
    </content>
    <handlers>
    <event name="search" >
    <bc4j:findRootAppModule name="SIM_Reports_View1AppModule" >
    <!-- establish the ViewObject scope -->
    <bc4j:findViewObject name="SIM_Reports_View1" >
    <!-- search for the view criteria -->
    <bc4j:findByExample>
    <bc4j:exampleRow ignoreCase="true" >
    <bc4j:exampleAttribute>
    <bc4j:nameBinding><bc4j:parameter name="attrName" /></bc4j:nameBinding>
    <bc4j:valueBinding><bc4j:parameter name="attrValue" /></bc4j:valueBinding>
    </bc4j:exampleAttribute>
    </bc4j:exampleRow>
    </bc4j:findByExample>
    <bc4j:executeQuery/>
    <!-- store the current search criteria as page properties -->
    <bc4j:setPageProperty name="attrName" >
    <bc4j:parameter name="attrName" />
    </bc4j:setPageProperty>
    <bc4j:setPageProperty name="attrValue" >
    <bc4j:parameter name="attrValue" />
    </bc4j:setPageProperty>
    </bc4j:findViewObject>
    </bc4j:findRootAppModule>
    </event>
    <event name="sort" source="viewTable" >
    <bc4j:findRootAppModule name="SIM_Reports_View1AppModule" >
    <!-- establish the ViewObject scope -->
    <bc4j:findViewObject name="SIM_Reports_View1" >
    <!-- sort by the submitted attribute name -->
    <bc4j:sort/>
    </bc4j:findViewObject>
    </bc4j:findRootAppModule>
    </event>
    <event name="goto" source="viewTable" >
    <bc4j:findRootAppModule name="SIM_Reports_View1AppModule" >
    <!-- establish the ViewObject scope -->
    <bc4j:findViewObject name="SIM_Reports_View1" >
    <!-- navigate to the submitted range -->
    <bc4j:goto/>
    </bc4j:findViewObject>
    </bc4j:findRootAppModule>
    </event>
    <event name="create" >
    <!-- forward to the create page -->
    <ctrl:go name="SIM_Reports_View1_Create" redirect="true" />
    </event>
    <event name="update" >
    <ctrl:go name="SIM_Reports_View1_Update" redirect="true" >
    <ctrl:property name="key" >
    <ctrl:selection name="viewTable" key="key" />
    </ctrl:property>
    </ctrl:go>
    </event>
    <bc4j:findRootAppModule name="SIM_Reports_View1AppModule" >
    <!-- establish the ViewObject scope -->
    <bc4j:findViewObject name="SIM_Reports_View1" >
    <!-- find the selected Row -->
    <bc4j:findRowByKey>
    <bc4j:keyBinding>
    <bc4j:selectionKey name="viewTable" key="key" />
    </bc4j:keyBinding>
    <bc4j:handlers>
    <!-- remove the selected ViewObject row -->
    <bc4j:removeRow />
    <bc4j:executeQuery/>
    </bc4j:handlers>
    </bc4j:findRowByKey>
    </bc4j:findViewObject>
    <bc4j:commit/>
    </bc4j:findRootAppModule>
    </event>
    </handlers>
    </page>

    Yes that's exactly what I'd like to do. I'm using J Dev 9.03.
    If that can't be done for any reason, then I'd like to have three AttrName lists with corresponding AttrValues for each list. But I'd prefer to use the method you've described. Thanks, J

  • UIX-XML BC4J - Unexpected errors using paths and DeltaTree on a particular UIX page

    We are using a PageDescription to dynamically change a UIX tree using the DeltaTree technique described in the Dynamic Structure for For UIX Pages chapter of the UIX Developers Guide.
    We search for a particular node using PathUtils.FindPathWithNodeID(RenderingContext context, UINode from, java.lang.String nodeID), but this fails when the page contains nested ViewObjectScopes.
    The method throws a NullPointerException, and the render fails:
    29/08/02 9.08 Valutazioni: java.lang.NullPointerException
         oracle.cabo.ui.data.DataObjectList oracle.cabo.ui.collection.DataObjectListNodeList.getDataObjectList(oracle.cabo.ui.RenderingContext)
         int oracle.cabo.ui.collection.DataObjectListNodeList.size(oracle.cabo.ui.RenderingContext)
         int oracle.cabo.ui.BaseUINode.getIndexedChildCount(oracle.cabo.ui.RenderingContext)
         boolean oracle.cabo.ui.path.PathUtils._findPath(oracle.cabo.ui.RenderingContext, oracle.cabo.ui.path.PathImpl, oracle.cabo.ui.UINode, oracle.cabo.ui.path.PathUtils$Finder)
         boolean oracle.cabo.ui.path.PathUtils._findPath(oracle.cabo.ui.RenderingContext, oracle.cabo.ui.path.PathImpl, oracle.cabo.ui.UINode, oracle.cabo.ui.path.PathUtils$Finder)
         boolean oracle.cabo.ui.path.PathUtils._findPath(oracle.cabo.ui.RenderingContext, oracle.cabo.ui.path.PathImpl, oracle.cabo.ui.UINode, oracle.cabo.ui.path.PathUtils$Finder)
         boolean oracle.cabo.ui.path.PathUtils._findPath(oracle.cabo.ui.RenderingContext, oracle.cabo.ui.path.PathImpl, oracle.cabo.ui.UINode, oracle.cabo.ui.path.PathUtils$Finder)
         boolean oracle.cabo.ui.path.PathUtils._findPath(oracle.cabo.ui.RenderingContext, oracle.cabo.ui.path.PathImpl, oracle.cabo.ui.UINode, oracle.cabo.ui.path.PathUtils$Finder)
         boolean oracle.cabo.ui.path.PathUtils._findPath(oracle.cabo.ui.RenderingContext, oracle.cabo.ui.path.PathImpl, oracle.cabo.ui.UINode, oracle.cabo.ui.path.PathUtils$Finder)
         boolean oracle.cabo.ui.path.PathUtils._findPath(oracle.cabo.ui.RenderingContext, oracle.cabo.ui.path.PathImpl, oracle.cabo.ui.UINode, oracle.cabo.ui.path.PathUtils$Finder)
         boolean oracle.cabo.ui.path.PathUtils._findPath(oracle.cabo.ui.RenderingContext, oracle.cabo.ui.path.PathImpl, oracle.cabo.ui.UINode, oracle.cabo.ui.path.PathUtils$Finder)
         boolean oracle.cabo.ui.path.PathUtils._findPath(oracle.cabo.ui.RenderingContext, oracle.cabo.ui.path.PathImpl, oracle.cabo.ui.UINode, oracle.cabo.ui.path.PathUtils$Finder)
         boolean oracle.cabo.ui.path.PathUtils._findPath(oracle.cabo.ui.RenderingContext, oracle.cabo.ui.path.PathImpl, oracle.cabo.ui.UINode, oracle.cabo.ui.path.PathUtils$Finder)
         boolean oracle.cabo.ui.path.PathUtils._findPath(oracle.cabo.ui.RenderingContext, oracle.cabo.ui.path.PathImpl, oracle.cabo.ui.UINode, oracle.cabo.ui.path.PathUtils$Finder)
         boolean oracle.cabo.ui.path.PathUtils._findPath(oracle.cabo.ui.RenderingContext, oracle.cabo.ui.path.PathImpl, oracle.cabo.ui.UINode, oracle.cabo.ui.path.PathUtils$Finder)
         oracle.cabo.ui.path.Path oracle.cabo.ui.path.PathUtils._findPath(oracle.cabo.ui.RenderingContext, oracle.cabo.ui.UINode, oracle.cabo.ui.path.PathUtils$Finder)
         oracle.cabo.ui.path.Path oracle.cabo.ui.path.PathUtils.findPathWithNodeID(oracle.cabo.ui.RenderingContext, oracle.cabo.ui.UINode, java.lang.String)
         oracle.cabo.ui.UINode com.websiteitalia.wsdk.uix.pageflow.PageFlowManager.getRootUINode()
         oracle.cabo.ui.UINode oracle.cabo.servlet.ui.UINodePageDescriptionProxy.getRootUINode()
         oracle.cabo.ui.UINode oracle.cabo.servlet.ui.UINodePageRenderer.getRootUINode(oracle.cabo.servlet.BajaContext, oracle.cabo.ui.RenderingContext, oracle.cabo.servlet.Page)
         oracle.cabo.ui.UINode oracle.cabo.servlet.ui.HTMLUINodePageRenderer.getRootUINode(oracle.cabo.servlet.BajaContext, oracle.cabo.ui.RenderingContext, oracle.cabo.servlet.Page)
         void oracle.cabo.servlet.ui.UINodePageRenderer.renderPage(oracle.cabo.servlet.BajaContext, oracle.cabo.servlet.Page)
         void oracle.cabo.servlet.AbstractPageBroker.renderPage(oracle.cabo.servlet.BajaContext, oracle.cabo.servlet.Page)
         oracle.cabo.servlet.Page oracle.cabo.servlet.PageBrokerHandler.handleRequest(oracle.cabo.servlet.BajaContext)
         void oracle.cabo.servlet.BajaServlet.doGet(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
         void javax.servlet.http.HttpServlet.service(com.evermind.server.http.EvermindHttpServletRequest, com.evermind.server.http.EvermindHttpServletResponse)
         void javax.servlet.http.HttpServlet.service(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
         void javax.servlet.http.HttpServlet.service(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
         void com.evermind.server.http.ServletRequestDispatcher.invoke(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
         void com.evermind.server.http.ServletRequestDispatcher.forwardInternal(javax.servlet.ServletRequest, javax.servlet.http.HttpServletResponse)
         boolean com.evermind.server.http.HttpRequestHandler.processRequest(com.evermind.server.ApplicationServerThread, com.evermind.server.http.EvermindHttpServletRequest, com.evermind.server.http.EvermindHttpServletResponse, java.io.InputStream, java.io.OutputStream, boolean)
         void com.evermind.server.http.HttpRequestHandler.run(java.lang.Thread)
         void com.evermind.util.ThreadPoolThread.run()
    We found the element of the UIX page that causes the problem:
    <bc4j:viewObjectScope name="ElementsView" >
    <contents>
         <bc4j:rowScope name="NewElement" >
         <contents>     
              <bc4j:region automatic="false" >
                   <bc4j:key>
                        <bc4j:rowKey name="keyElement"/>
                   </bc4j:key>
                   <contents>
                        <bc4j:attrScope name="FlgState">
                        <contents>
                             <messageChoice name="FlgState" prompt="State" >
                                  <boundAttribute name="selectedValue">
                                       <concat>
                                            <bc4j:attrProperty name="value"/>
                                            <fixed text=""/>
                                       </concat>
                                  </boundAttribute>
                                  <contents>
                                       <!-- This is the nested vo scope causing the error -->
                                       <bc4j:viewObjectScope name="DecodeStateView" >
                                       <contents data:childData="list@DecodeState">
                                            <option data:value="StateCode"
                                                 data:text="StateDescription"/>
                                       </contents>
                                       </bc4j:viewObjectScope>
                                  </contents>
                             </messageChoice>
                        </contents>
                        </bc4j:attrScope>
                   </contents>
              </bc4j:region>
         </contents>
         </bc4j:rowScope>
    </contents>
    </bc4j:viewObjectScope>
    This usage of nested view object scopes has been explained in reply of a previous post, How to databind the children of a UIX XML choice, and before ours attempts to modify the tree it worked fine. Removing the nested view object scope the page makes the page render correctly, but we need it to retrieve the description of its state.
    We get the same behaviour (and a much similar stack trace, with the same oracle.cabo.ui.data.DataObjectList oracle.cabo.ui.collection.DataObjectListNodeList.getDataObjectList (oracle.cabo.ui.RenderingContext) throwing a NullPointerException) if we use NodeUtils.createPreorderDescendentAttributeEnumeration method instead of PathUtils.

    It's a bug in the DataObjectListNodeList class that's up at the top of
    the stack. It's been fixed for 9.0.3. The bit of XML that's triggering
    it isn't the <viewObjectScope>s, but the "data:childData".
    I believe you can workaround this bug by not passing a null RenderingContext to
    findPathWithNodeID(). Now, you don't have a real RenderingContext, and we
    don't especially need one - "null" is legit here, but I think if
    you just pass "new oracle.cabo.ui.RootRenderingContext()" then you'll
    get around this bug.

  • Help converting UIX JSP functionality to UIX

    I have an older UIX JSP page that I am trying to convert to UIX. That page contained a table with a singleSelection node and a Print button. When the Print button is pressed, a value is taken from the selected row in the table and sent as a parameter to Oracle Reports. The code that did this in UIX JSP is:
    <jbo:OnEvent name="Print">
    <% if(sSelected != null)
    errmsg = null;
    errtype = null;
    %>
    <jbo:Row id="MPORow1"
    datasource="MPOOrders"
    action="Find"
    rowkey="<%= sKey %>" />
    <%
    Row MPOCurRow1 = MPOOrders.getRowSet().getCurrentRow();
    if (MPOCurRow1 != null)
    String ordnum = (String) MPOCurRow1.getAttribute("Ordnum").toString();
    String mailer = (String)((Integer) session.getAttribute("loginCustomer")).toString();
    String printURL = "https://<myserver>/reports/rwservlet?destype=cache+desformat=PDF+userid=webuser/webpwd@pas+report=mlrjobstatus.rdf+p_mailer=" + mailer + "+p_jobnum=" + ordnum;
    response.sendRedirect(response.encodeRedirectURL(printURL));
    else
    errtype = "error";
    errmsg = "You must select a row prior to clicking on the 'Print Lists' button";
    %>
    </jbo:OnEvent>
    How can I do this same thing in UIX/Struts? Can it be done as a UIX handler or do I need a custom DataAction?

    Hi Eric,
    Please take a look at the UIX Table chapter. It talks about single-selection in UIX and how you can add buttons which when clicked will submit events to the server. It also talks about how you can handle those events.
    Here is a code snippet from the documentation regarding the event handler:
    public static EventResult doSelectionEvent(BajaContext bc, Page page,
                                               PageEvent event)
      DataObject tableRows = new PageEventFlattenedDataSet(event, "table1");
      int index = SelectionUtils.getSelectedIndex(tableRows);
      String name = "Nothing Selected";
      // make sure that something was selected:
      if (index>=0)
        DataObject row = _TABLE_DATA.getItem(index);
        name = row.selectValue(null, "name").toString();
      EventResult result = new EventResult(page);
      result.setProperty("action", event.getName());
      result.setProperty("name", name);
      return result;
    }Thanks,
    Jeanne

  • Set where Clause parameter using UIX

    I am using uiXML to generate a table which is associated to a ViewObject. The query of the ViewObject has bind variable for date. I would like to display a report (i.e table) with the values from ViewObject corresponding to dates (from & to) set using the bind variable. In other words, I would like to set the value for the bind variable from UIX just before displaying the table. My code is as follows:
    <bc4j:rootAppModuleScope name="QnAMainRepView1AppModule">
    <contents>
    <form name="QnAFrm">
    <contents>
    <bc4j:viewObjectScope name="QnAMainRepView1">
    <contents>
    <bc4j:table name="QnATbl" width="100%">
    <bc4j:keyStamp>
    <bc4j:rowKey name="key"/>
    </bc4j:keyStamp>
    <contents>
    <bc4j:column attrName="HostName">
    <columnHeader>
    <bc4j:sortableHeader text="Host"/>
    </columnHeader>
    <contents>
    <bc4j:input readOnly="true"/>
    </contents>
    </bc4j:column>
    <bc4j:column attrName="ModuleName">
    <columnHeader>
    <bc4j:sortableHeader text="Module"/>
    </columnHeader>
    <contents>
    <bc4j:input readOnly="true"/>
    </contents>
    </bc4j:column>
    <bc4j:column attrName="Description">
    <columnHeader>
    <bc4j:sortableHeader/>
    </columnHeader>
    <contents>
    <bc4j:input readOnly="true"/>
    </contents>
    </bc4j:column>
    <bc4j:column attrName="Count1">
    <columnHeader>
    <bc4j:sortableHeader text="Count"/>
    </columnHeader>
    <contents>
    <bc4j:input readOnly="true"/>
    </contents>
    </bc4j:column>
    <bc4j:column attrName="Gmt">
    <columnHeader>
    <bc4j:sortableHeader text="GMT"/>
    </columnHeader>
    <contents>
    <bc4j:dateField readOnly="true">
    <onSubmitValidater>
    <date dateStyle="long"
    pattern="MM-dd-yyyy 'at' hh:mm:ss"/>
    </onSubmitValidater>
    </bc4j:dateField>
    </contents>
    </bc4j:column>
    <column>
    <columnHeader>
    <sortableHeader text="Local Time"/>
    </columnHeader>
    <contents>
    <dateField readOnly="true" value="2003-01-25">
    <onSubmitValidater>
    <date dateStyle="long"
    pattern="MM-dd-yyyy 'at' hh:mm:ss"/>
    </onSubmitValidater>
    </dateField>
    </contents>
    </column>
    </contents>
    </bc4j:table>
    </contents>
    </bc4j:viewObjectScope>
    </contents>
    </form>
    </contents>
    </bc4j:rootAppModuleScope>
    In the above, QnAMainRepView1 is the ViewObject which has bind variables. How do I set the value for the bind variable before the table is drawn?
    Thank you very much for your help.
    Jayasree

    I'm try implement this feature, but my Page return the follow error:
    oracle.jbo.SQLStmtException: JBO-27122: Error during preparation for instruction. Instruction: SELECT A.COD_CLIENTE, A.SEQ_ESCOLA, A.SEQ_CAMPUS, (select b.nom_escola from ed_escola b where a.cod_cliente = b.cod_cliente and a.seq_escola = b.seq_escola) AS DspNomEscola, A.STA_PRINCIPAL, A.COD_PESSOA, A.NOM_CAMPUS, A.STA_CNPJ, A.NUM_CNPJ, A.STA_FUNCIONAMENTO, A.TIP_DEPENDENCIA, A.TIP_ZONA, A.COD_GEOPROCESSAMENTO, A.QTD_M2_CONSTRUIDA, A.QTD_M2_TOTAL, A.NUM_DEPENDENCIA_OUES, A.NUM_CADASTRO_IMOB, A.COD_PESSOA_PRO, A.TIP_ESGOTO_SANITARIO, A.TIP_OCUPACAO_IMOVEL, A.TIP_ESFERA_PESSOA_PRO, A.SEQ_ESCOLA_DEP, A.SEQ_TIPO_LOCAL_CAMPUS, A.COD_CLASSE_LOCAL_CAMPUS, A.SEQ_TIPO_DESTINO_LIXO, A.COD_CLASSE_DESTINO_LIXO FROM ED_ESCOLA_CAMPUS A WHERE cod_cliente = ?
    at oracle.jbo.server.QueryCollection.executeQuery(QueryCollection.java:608)
    at oracle.jbo.server.ViewObjectImpl.executeQueryForCollection(ViewObjectImpl.java:2600)
    at oracle.jbo.server.ViewRowSetImpl.execute(ViewRowSetImpl.java:521)
    at oracle.jbo.server.ViewRowSetIteratorImpl.ensureRefreshed(ViewRowSetIteratorImpl.java:2197)
    at oracle.jbo.server.ViewRowSetIteratorImpl.first(ViewRowSetIteratorImpl.java:1141)
    at oracle.jbo.server.ViewRowSetImpl.first(ViewRowSetImpl.java:2240)
    at oracle.jbo.server.ViewObjectImpl.first(ViewObjectImpl.java:4345)
    at oracle.cabo.data.jbo.ui.data.RowSetDataProvider.init(Unknown Source)
    at oracle.cabo.ui.data.provider.TableDataProvider.init(Unknown Source)
    at oracle.cabo.ui.data.provider.CachingDataProvider.init(Unknown Source)
    at oracle.cabo.ui.data.provider.DataProviderStack.addDataProvider(Unknown Source)
    at oracle.cabo.ui.LogicalNodeRenderingContext.addDataProvider(Unknown Source)
    at oracle.cabo.ui.composite.CompositeRenderingContext.addDataProvider(Unknown Source)
    at oracle.cabo.ui.laf.base.DataScopeRenderer.prerender(Unknown Source)
    at oracle.cabo.ui.BaseRenderer.render(Unknown Source)
    at oracle.cabo.ui.BaseUINode.render(Unknown Source)
    at oracle.cabo.ui.BaseUINode.render(Unknown Source)
    at oracle.cabo.ui.composite.UINodeRenderer.renderWithNode(Unknown Source)
    at oracle.cabo.ui.composite.UINodeRenderer.render(Unknown Source)
    My ViewObject have the SQL Statment:
    select a.cod_cliente,
    a.seq_escola,
    a.seq_campus,
    from ed_escola_campus a
    where cod_cliente = ?
    package br.com.siadem.siaed.ed00010;
    import javax.servlet.ServletConfig;
    import oracle.jbo.ViewObject;
    import oracle.cabo.ui.RenderingContext;
    import oracle.cabo.servlet.BajaContext;
    import oracle.cabo.servlet.Page;
    import oracle.cabo.servlet.event.PageEvent;
    import oracle.cabo.servlet.event.EventResult;
    import oracle.cabo.servlet.ui.BajaRenderingContext;
    import oracle.cabo.data.jbo.servlet.bind.ServletBindingUtils;
    My Event Handler:
    public class FunPreQuery
    public EventResult handleEvent(BajaContext context, Page page, PageEvent event) throws Throwable
    ViewObject view = ServletBindingUtils.getViewObject(context);
    view.setWhereClauseParam(0, "1");
    view.executeQuery();
    return new EventResult(page);
    My Page UIX:
    <?xml version="1.0" encoding="windows-1252" ?>
    <page xmlns="http://xmlns.oracle.com/uix/controller"
    xmlns:ctrl="http://xmlns.oracle.com/uix/controller"
    xmlns:ui="http://xmlns.oracle.com/uix/ui"
    xmlns:bc4j="http://xmlns.oracle.com/uix/bc4j" >
    <bc4j:registryDef>
    <bc4j:rootAppModuleDef name="EdEscolaCampusView1AppModule"
    definition="siaed.Ed00010Module"
    releaseMode="stateful" >
    <bc4j:viewObjectDef name="EdEscolaCampusView1"
    rangeSize="10" >
    <bc4j:rowDef name="UpdateEdEscolaCampusView1" autoCreate="false" >
    <bc4j:propertyKey name="key" />
    </bc4j:rowDef>
    </bc4j:viewObjectDef>
    </bc4j:rootAppModuleDef>
    </bc4j:registryDef>
    <content>
    <try xmlns="http://xmlns.oracle.com/uix/ui"
    xmlns:data="http://xmlns.oracle.com/uix/ui" >
    <catch>
    <displayException />
    </catch>
    <contents>
    <!--
    <switcher childName="default">
    <boundAttribute name="childName">
    <if>
    <comparison type="equals">
    <dataObject select="key" source="ctrl:page"/>
    <dataObject source="ui:null"/>
    </comparison>
    <fixed text="error"/>
    </if>
    </boundAttribute>
    <case name="error">
    <header text="Required page property 'key' missing. Cannot display page."/>
    </case>
    <case name="default">
    -->
    <pageLayout xmlns="http://xmlns.oracle.com/uix/ui"
    xmlns:data="http://xmlns.oracle.com/uix/ui"
    title="Campus - Pesquisar" >
    <contents>
    <!-- this will contain any validation errors after form
    submission -->
    <messageBox automatic="true" />
    <bc4j:rootAppModuleScope name="EdEscolaCampusView1AppModule" >
    <contents>
    <header text="Pesquisar" >
    <contents>
    <form name="search" method="POST" >
    <contents>
    <inlineMessage prompt="Condição" vAlign="middle" >
    <contents>
    <flowLayout>
    <contents>
    <choice name="attrName"
    data:selectedValue="attrName@ctrl:page"
    shortDesc="Search Column">
    <contents>
    <option text="Escola" value="SeqEscola" />
    <option text="Código Campus" value="SeqCampus" />
    <option text="Nome" value="NomCampus" />
    </contents>
    </choice>
    <textInput name="attrValue" columns="20"
    data:text="attrValue@ctrl:page"
    shortDesc="Search"/>
    </contents>
    </flowLayout>
    </contents>
    <end>
    <submitButton text="Pesquisar" ctrl:event="search" />
    </end>
    </inlineMessage>
    </contents>
    </form>
    </contents>
    </header>
    <header text="Resultados" >
    <contents>
    <form name="viewForm" method="POST" >
    <contents>
    <tableLayout>
    <contents>
    <bc4j:viewObjectScope name="EdEscolaCampusView1" >
    <contents>
    <bc4j:table name="viewTable" width="80%"
    alternateText="Nenhum registro encontrado">
    <tableSelection>
    <!-- single selection for each row in the table -->
    <singleSelection selectedIndex="0" shortDesc="Select Row">
    <contents>
    <!-- the update button causes the currently selected
    row to be sent to the update page -->
    <submitButton text="alterar"
    ctrl:event="update" />
    <!-- the delete button causes the currently selected
    row to be removed -->
    <submitButton text="excluir"
    ctrl:event="delete" />
    </contents>
    </singleSelection>
    </tableSelection>
    <!-- the key identifying the current row in the table -->
    <bc4j:keyStamp>
    <bc4j:rowKey name="key" />
    </bc4j:keyStamp>
    <contents>
    <!-- A bc4j:column element is added for each attribute
    in the ViewObject. -->
    <bc4j:column attrName="SeqEscola">
    <columnHeader>
    <bc4j:sortableHeader text="Escola"/>
    </columnHeader>
    <contents>
    <bc4j:input readOnly="true"/>
    </contents>
    </bc4j:column>
    <bc4j:column attrName="SeqCampus">
    <columnHeader>
    <bc4j:sortableHeader text="Campus"/>
    </columnHeader>
    <contents>
    <bc4j:input readOnly="true"/>
    </contents>
    </bc4j:column>
    </contents>
    </bc4j:table>
    </contents>
    </bc4j:viewObjectScope>
    </contents>
    </tableLayout>
    </contents>
    </form>
    </contents>
    </header>
    </contents>
    </bc4j:rootAppModuleScope>
    </contents>
    <contentFooter>
    <!-- the create button redirects to the create page -->
    <button text="Inserir" ctrl:event="inserir" />
    </contentFooter>
    </pageLayout>
    </contents>
    </try>
    </content>
    <handlers>
    <event name="*">
    <method name="br.com.siadem.siaed.ed00010.FunPreQuery"
    method="handleEvent"/>
    </event>
    <event name="search" >
    <!-- using the ApplicationModule causes it to be checked out from the
    ApplicationPool. It is released using stateful mode. -->
    <bc4j:findRootAppModule name="EdEscolaCampusView1AppModule" >
    <!-- establish the ViewObject scope -->
    <bc4j:findViewObject name="EdEscolaCampusView1" >
    <!-- search for the view criteria -->
    <bc4j:findByExample>
    <bc4j:exampleRow ignoreCase="true" >
    <bc4j:exampleAttribute>
    <bc4j:nameBinding><bc4j:parameter name="attrName" /></bc4j:nameBinding>
    <bc4j:valueBinding><bc4j:parameter name="attrValue" /></bc4j:valueBinding>
    </bc4j:exampleAttribute>
    </bc4j:exampleRow>
    </bc4j:findByExample>
    <bc4j:executeQuery/>
    <!-- store the current search criteria as page properties -->
    <bc4j:setPageProperty name="attrName" >
    <bc4j:parameter name="attrName" />
    </bc4j:setPageProperty>
    <bc4j:setPageProperty name="attrValue" >
    <bc4j:parameter name="attrValue" />
    </bc4j:setPageProperty>
    </bc4j:findViewObject>
    </bc4j:findRootAppModule>
    </event>
    <event name="sort" source="viewTable" >
    <!-- using the ApplicationModule causes it to be checked out from the
    ApplicationPool. It is released using stateful mode. -->
    <bc4j:findRootAppModule name="EdEscolaCampusView1AppModule" >
    <!-- establish the ViewObject scope -->
    <bc4j:findViewObject name="EdEscolaCampusView1" >
    <!-- sort by the submitted attribute name -->
    <bc4j:sort/>
    </bc4j:findViewObject>
    </bc4j:findRootAppModule>
    </event>
    <event name="goto" source="viewTable" >
    <!-- using the ApplicationModule causes it to be checked out from the
    ApplicationPool. It is released using stateful mode. -->
    <bc4j:findRootAppModule name="EdEscolaCampusView1AppModule" >
    <!-- establish the ViewObject scope -->
    <bc4j:findViewObject name="EdEscolaCampusView1" >
    <!-- navigate to the submitted range -->
    <bc4j:goto/>
    </bc4j:findViewObject>
    </bc4j:findRootAppModule>
    </event>
    <event name="create" >
    <!-- forward to the create page -->
    <ctrl:go name="ed00010create" redirect="true" />
    </event>
    <event name="update" >
    <!-- forward to the update page, passing the selected key
    as a page property -->
    <ctrl:go name="ed00010update" redirect="true" >
    <ctrl:property name="key" >
    <ctrl:selection name="viewTable" key="key" />
    </ctrl:property>
    </ctrl:go>
    </event>
    <event name="delete" >
    <!-- using the ApplicationModule causes it to be checked out from the
    ApplicationPool. It is released using stateful mode. -->
    <bc4j:findRootAppModule name="EdEscolaCampusView1AppModule" >
    <!-- establish the ViewObject scope -->
    <bc4j:findViewObject name="EdEscolaCampusView1" >
    <!-- find the selected Row -->
    <bc4j:findRowByKey>
    <bc4j:keyBinding>
    <bc4j:selectionKey name="viewTable" key="key" />
    </bc4j:keyBinding>
    <bc4j:handlers>
    <!-- remove the selected ViewObject row -->
    <bc4j:removeRow />
    <!-- execute the query to eliminate dead row access -->
    <bc4j:executeQuery/>
    </bc4j:handlers>
    </bc4j:findRowByKey>
    </bc4j:findViewObject>
    <!-- commit the transaction, forwards to self automatically -->
    <bc4j:commit/>
    </bc4j:findRootAppModule>
    </event>
    </handlers>
    </page>
    Any body have a any idea for solution this problem ???
    thanks,
    Danilo

  • UIX/BC4J:  Page properties/Events/Methods

    The following is code for a UIX page event handler and a method that attempts to locate the data that is selected from a bc4j:table, use it, and then handle redirection to the next page.
    I had to comment out the setPageProperty block due to an error, oracle.jbo.Key, that keeps the method from running. This also means my page property is not available for use by the method.
    When the method runs I expected to be able to see the row that was selected in the table by virtue of the findRowByKey ... keyBinding ... selectionKey. Instead, the return value for the line: Row row = vo.getCurrentRow(); is always the last record in the view object.
    This led me to the alternative plan to create a page property for the selectedKey and use vo.getRow(key) to get the record. This won't work for me because I can't get the page property to work.
    Can you help me with my understanding/syntax please?
    **** UIX Event Handler ****
    <event name="getemployee">
    <bc4j:findRootAppModule name="AppModule">
    <bc4j:findViewObject name="VO">
    <bc4j:findRowByKey>
    <bc4j:keyBinding>
    <bc4j:selectionKey name="viewTable" key="key"/>
    </bc4j:keyBinding>
    <bc4j:handlers>
    <!-- Gives page error: oracle.jbo.Key -->
    <!--
    <bc4j:setPageProperty name="selectedKey">
    <bc4j:selectionKey name="viewTable" key="key"/>
    </bc4j:setPageProperty>
    -->
    <method class="PageController" method="getInfo" />
    </bc4j:handlers>
    </bc4j:findRowByKey>
    </bc4j:findViewObject>
    </bc4j:findRootAppModule>
    </event>
    **** Method that should use page property to display record from view object. ****
    public static synchronized EventResult getEmployeeInfo(BajaContext context,
    Page page,
    PageEvent event) {
    ViewObject vo = ServletBindingUtils.getViewObject(context);
    String selectedKey = page.getProperty("selectedKey");
    System.out.println("selectedKey: " + selectedKey); //null
    // I am hoping to get the property here.
    //Row row = vo.getRow(selectedKey);
    Row row = vo.getCurrentRow();
    System.out.println("Current Info- Item1:" + row.getAttribute("Item1") +
    ", Item2: " + row.getAttribute("Item2"));
    }

    Hello Vincent,
    I'm not sure why it does not work. Perhaps you haven't set the keystamp in your table?
    <bc4j:keyStamp>
    <bc4j:rowKey name="key"/>
    </bc4j:keyStamp>
    Besides your code tries to get the row in two times. Once in your event handler and ones in your method. That's not necessary, just do it once, either in your UIX page or in your Java method.
    If you do it in your UIX page, you can get the row directly in your method. Here is an example:
    UIX
    <bc4j:findRootAppModule name="appModule">
    <bc4j:findViewObject name="viewObject">
    <bc4j:findRowByKey>
    <bc4j:keyBinding>
    <bc4j:selectionKey name="viewTable" key="key"/>
    </bc4j:keyBinding>
    <bc4j:handlers>
    <method class="..." method="doSomething" />
    </bc4j:handlers>
    </bc4j:findRowByKey>
    <bc4j:executeQuery/>
    </bc4j:findViewObject>
    </bc4j:findRootAppModule>
    Then you can access row in your method
    Row row = (Row)bajaContext.getProperty("http://xmlns.oracle.com/uix/bc4j", "row");
    Regards,
    Christian

  • UIX validation (JDev 9.0.2)

    Hi.
    Has anyone managed to make a decimal or regular expression validation work with UIX JSP?
    I have tried to run a jsp with the following code:
    <uix:textInput id="textInput_CnrAmount" name="CnrAmount" text="10.01" />
    <uix:onSubmitValidater> <uix:decimal/> </uix:onSubmitValidater>
    </uix:textInput>
    No validation is done on the client side if the field value changed and submitted.
    Thank you.

    I have
    a uix:form name="form1" method="POST"/
    Inside a cascade of uix:tableLayout_s.
    And then a uix:submitButton.
    Besides I'd notice that the uix:onBlurValidater doesn't work eigther.
    The only suspicious is that the page is nested inside another one with the jsp:include. Although all other java scripts work fine (e.g. date field).
    For any purpose the entire code is below:
    <%@ page errorPage="errorpage.jsp" contentType="text/html;charset=windows-1251"%>
    <%@ taglib uri="/webapp/DataTags.tld" prefix="jbo" %>
    <%@ taglib uri="http://xmlns.oracle.com/uix/ui/bc4j" prefix="bc4juix" %>
    <%@ taglib uri="http://xmlns.oracle.com/uix/ui" prefix="uix" %>
    <%@ page import="oracle.cabo.ui.validate.RegExpValidater" %>
    <%@ page import="org.apache.regexp.*" %>
    <%-- Define Application Module and DataSource--%>
    <jbo:ApplicationModule configname="servo.TechSupportBC.TechSupportBCModule.TechSupportBCModuleLocal" id="app1" />
    <jbo:DataSource id="ds_CurrentView" appid="app1" viewobject="ContractsMainView" rangesize="1" />
    <jbo:DataSource id="ds_CompaniesView" appid="app1" viewobject="CompaniesView" />
    <jbo:DataSource id="ds_ClientsTableView" appid="app1" viewobject="ClientsTableView" />
    <jbo:DataSource id="ds_CurrenciesView" appid="app1" viewobject="CurrenciesView" />
    <jbo:DataSource id="ds_ContractTypesView" appid="app1" viewobject="ContractTypesView" />
    <jbo:DataSource id="ds_PICView" appid="app1" viewobject="ProdInContracts4ContractMainView" rangesize="5"/>
    <jbo:DataSource id="ds_PcUsersVView" appid="app1" viewobject="PcUsersVView" />
    <%-- find the row to be edited--%>
    <jbo:Row id="EditRow" datasource="ds_CurrentView" action="Current">
    </jbo:Row>
    <%
    String s;
    oracle.jbo.domain.Number n;
    %>
    <script src="servo_ubn.js" language="javascript"></script>
    <uix:styleSheet/>
    <link rel="stylesheet" charset="UTF-8" type="text/css" href="styles/servo.css">
    <uix:header text="Nay` hmtnpl`vh" />
    <uix:form name="form1" method="POST" >
    <uix:tableLayout cellPadding='5' cellSpacing='0' width="100%">
    <uix:rowLayout>
    <uix:styledText styleClass="ColorBlock" >
    <uix:tableLayout cellPadding='1' cellSpacing='0' width="100%">
    <uix:rowLayout>
    <uix:tableLayout cellSpacing='4'>
    <uix:rowLayout hAlign="left" vAlign="middle" >
    <jbo:AttributeIterate id="dsAttributes" datasource="ds_CurrentView" displayattributes="CnrContrCode,CnrInternContrCode" >
    <uix:cellFormat hAlign="right" >
    <bc4juix:LabelStyledText datasource="ds_CurrentView" dataitem="<%=dsAttributes.getName()%>" styleClass="OraPromptText" />
    </uix:cellFormat>
    <bc4juix:InputRender datasource="ds_CurrentView" dataitem="<%=dsAttributes.getName()%>" />
    </jbo:AttributeIterate>
    </uix:rowLayout>
    <uix:rowLayout hAlign="left" vAlign="middle" >
    <uix:cellFormat hAlign="right" >
    <bc4juix:LabelStyledText datasource="ds_CurrentView" dataitem="CnrCrtCode" styleClass="OraPromptText" />
    </uix:cellFormat>
    <uix:cellFormat hAlign="left" columnSpan="3" >
    <uix:choice id="CnrCrtCodeChoice" name="CnrCrtCode" required="yes" selectedValue='<%=( ((s = (String)ds_CurrentView.getRowSet().getCurrentRow().getAttribute("CnrCrtCode"))!=null)?s:"" )%>'>
    <uix:option text="< B{aephre >" value="" />
    <jbo:RowsetIterate datasource="ds_ContractTypesView" >
    <uix:option text='<%=ds_ContractTypesView.getRowSet().getCurrentRow().getAttribute("CrtName")%>' value='<%=ds_ContractTypesView.getRowSet().getCurrentRow().getAttribute("CrtCode")%>' />
    </jbo:RowsetIterate >
    </uix:choice>
    </uix:cellFormat>
    </uix:rowLayout>
    <uix:rowLayout hAlign="left" vAlign="middle" >
    <uix:cellFormat hAlign="right" >
    <bc4juix:LabelStyledText datasource="ds_CurrentView" dataitem="CnrCmpId" styleClass="OraPromptText" />
    </uix:cellFormat>
    <uix:choice id="CnrCmpIdChoice" name="CnrCmpId" selectedValue='<%=( ((n = (oracle.jbo.domain.Number)ds_CurrentView.getRowSet().getCurrentRow().getAttribute("CnrCmpId"))!=null)?n.toString():"" )%>'>
    <uix:option text="" value="" />
    <jbo:RowsetIterate datasource="ds_CompaniesView" >
    <uix:option text='<%=ds_CompaniesView.getRowSet().getCurrentRow().getAttribute("CmpName")%>' value='<%=ds_CompaniesView.getRowSet().getCurrentRow().getAttribute("CmpId")%>' />
    </jbo:RowsetIterate >
    </uix:choice>
    <uix:cellFormat hAlign="right" >
    <bc4juix:LabelStyledText datasource="ds_CurrentView" dataitem="CnrClId" styleClass="OraPromptText" />
    </uix:cellFormat>
    <uix:lovField onFocus="javascript:this.blur()" id="CnrClIdLovField" name="CnrClIdLovField" required="yes" text='<%=( ((s = (String)ds_CurrentView.getRowSet().getCurrentRow().getAttribute("ClientFullName"))!=null)?s:"" )%>'
    destination="javascript:launchTextAndValueLov('ClientsTextAndValueLov.jsp', 'form1', 'CnrClIdLovField', 'CnrClId', 'servo.TechSupportBC.TechSupportBCModule.TechSupportBCModuleLocal', 'ClientsTableView', 'ClId', 'FullName', 'ClId,FullName')">
    </uix:lovField>
    </uix:rowLayout>
    </uix:tableLayout>
    </uix:rowLayout>
    </uix:tableLayout>
    </uix:styledText>
    </uix:rowLayout>
    <uix:rowLayout>
    <uix:styledText styleClass="ColorBlock" >
    <uix:tableLayout cellPadding='1' cellSpacing='0' width="100%">
    <uix:rowLayout>
    <uix:tableLayout cellSpacing='4'>
    <uix:rowLayout hAlign="left" vAlign="middle" >
    <uix:cellFormat hAlign="right" rowSpan="3">
    <bc4juix:LabelStyledText datasource="ds_CurrentView" dataitem="CnrAmount" styleClass="OraPromptText" />
    </uix:cellFormat>
    <uix:textInput id="textInput_CnrAmount" name="CnrAmount" text='<%=((n = (oracle.jbo.domain.Number)ds_CurrentView.getRowSet().getCurrentRow().getAttribute("CnrAmount"))!=null)?n.toString():""%>' />
    <uix:onSubmitValidater> <uix:decimal/> </uix:onSubmitValidater>
    </uix:textInput>
    <uix:cellFormat hAlign="right" rowSpan="3">
    <bc4juix:LabelStyledText datasource="ds_CurrentView" dataitem="CnrCurId" styleClass="OraPromptText" />
    </uix:cellFormat>
    <uix:choice id="CnrCurIdChoice" name="CnrCurId" selectedValue='<%=( ((n = (oracle.jbo.domain.Number)ds_CurrentView.getRowSet().getCurrentRow().getAttribute("CnrCurId"))!=null)?n.toString():"" )%>'>
    <uix:option text="" value="" />
    <jbo:RowsetIterate datasource="ds_CurrenciesView" >
    <uix:option text='<%=ds_CurrenciesView.getRowSet().getCurrentRow().getAttribute("CurShortName")%>' value='<%=ds_CurrenciesView.getRowSet().getCurrentRow().getAttribute("CurId")%>' />
    </jbo:RowsetIterate >
    </uix:choice>
    </uix:rowLayout>
    </uix:tableLayout>
    </uix:rowLayout>
    </uix:tableLayout>
    </uix:styledText>
    </uix:rowLayout>
    <uix:rowLayout>
    <uix:styledText styleClass="ColorBlock" >
    <uix:tableLayout cellPadding='1' cellSpacing='0' width="100%">
    <uix:rowLayout>
    <uix:tableLayout cellSpacing='4' width="100%">
    <uix:rowLayout hAlign="left" vAlign="middle" >
    <uix:cellFormat hAlign="right" rowSpan="3">
    <bc4juix:LabelStyledText datasource="ds_CurrentView" dataitem="CnrDesc" styleClass="OraPromptText" />
    </uix:cellFormat>
    <uix:cellFormat rowSpan="3">
    <uix:textInput id="textInput_CnrDesc" name="CnrDesc" text='<%=((s = (String)ds_CurrentView.getRowSet().getCurrentRow().getAttribute("CnrDesc"))!=null)?s:""%>' rows="5" columns="50" wrap="Hard" />
    </uix:cellFormat>
    <uix:cellFormat hAlign="right" >
    <bc4juix:LabelStyledText datasource="ds_CurrentView" dataitem="CnrFromDate" styleClass="OraPromptText" />
    </uix:cellFormat>
    <uix:cellFormat >
    <bc4juix:InputRender datasource="ds_CurrentView" dataitem="CnrFromDate" />
    </uix:cellFormat>
    </uix:rowLayout>
    <jbo:AttributeIterate id="dsAttributes1" datasource="ds_CurrentView" displayattributes="CnrToDate,CnrSettlementDate" >
    <uix:rowLayout hAlign="left" vAlign="middle" >
    <uix:cellFormat hAlign="right" >
    <bc4juix:LabelStyledText datasource="ds_CurrentView" dataitem="<%=dsAttributes1.getName()%>" styleClass="OraPromptText"/>
    </uix:cellFormat>
    <bc4juix:InputRender datasource="ds_CurrentView" dataitem="<%=dsAttributes1.getName()%>" />
    </uix:rowLayout>
    </jbo:AttributeIterate>
    </uix:tableLayout>
    </uix:rowLayout>
    </uix:tableLayout>
    </uix:styledText>
    </uix:rowLayout>
    <uix:rowLayout>
    <uix:styledText styleClass="ColorBlock" >
    <uix:tableLayout cellPadding='1' cellSpacing='0' width="100%">
    <uix:rowLayout>
    <uix:tableLayout cellSpacing='4'>
    <uix:rowLayout hAlign="left" vAlign="middle" >
    <uix:cellFormat hAlign="right" rowSpan="3">
    <bc4juix:LabelStyledText datasource="ds_CurrentView" dataitem="CnrUsrName" styleClass="OraPromptText" />
    </uix:cellFormat>
    <uix:choice id="CnrUsrNameChoice" name="CnrUsrName" required="yes" selectedValue='<%=( ((s = (String)ds_CurrentView.getRowSet().getCurrentRow().getAttribute("CnrUsrName"))!=null)?s:"" )%>'>
    <uix:option text="< B{aephre >" value="" />
    <jbo:RowsetIterate datasource="ds_PcUsersVView" >
    <uix:option text='<%=ds_PcUsersVView.getRowSet().getCurrentRow().getAttribute("UsrFullName")%>' value='<%=ds_PcUsersVView.getRowSet().getCurrentRow().getAttribute("UsrName")%>' />
    </jbo:RowsetIterate >
    </uix:choice>
    </uix:rowLayout>
    </uix:tableLayout>
    </uix:rowLayout>
    </uix:tableLayout>
    </uix:styledText>
    </uix:rowLayout>
    </uix:tableLayout>
    <%-- Gdeq| m`whm`erq r`akhv` "Opndsjr{"--%>
    <uix:spacer height="5" />
    <uix:header text="Opndsjr{" />
    <bc4juix:Table width="98%" datasource="ds_PICView" >
    <uix:columnHeaderStamp>
    <uix:styledText textBinding="LABEL"/>
    </uix:columnHeaderStamp>
    <jbo:AttributeIterate id="dsColAttributes" datasource="ds_PICView" hideattributes="PrdClosedFl" >
    <bc4juix:RenderValue datasource="ds_PICView" dataitem="<%=dsColAttributes.getName()%>" />
    </jbo:AttributeIterate>
    <uix:formValue name="ProdInContract_RowKey" valueBinding="RowKey" />
    <% if (!ds_PICView.getRowSet().getViewObject().isReadOnly())
    %>
    <uix:tableSelection>
    <uix:singleSelection>
    <uix:contents>
    <%-- The button name needs to be JboEvent so that it triggers the use of the OnEvent tag --%>
    <uix:submitButton name="jboEvent" text="Ped`jrhpnb`r|" formName="form1" value="ProdInContract_UpdateRecord" unvalidated="true" />
    <uix:submitButton name="jboEvent" text="Sd`khr|" formName="form1" value="ProdInContract_Delete" unvalidated="true" />
    </uix:contents>
    </uix:singleSelection>
    </uix:tableSelection>
    <%
    %>
    </bc4juix:Table>
    <uix:formValue name="RowPressed" value="null" />
    <% if (!ds_PICView.getRowSet().getViewObject().isReadOnly())
    %>
    <uix:submitButton name="jboEvent" text="Dna`bhr|" formName="form1" value="ProdInContract_Create" />
    <%
    %>
    <uix:rawText> <br> <div align="center"> </uix:rawText>
    <uix:labeledFieldLayout columns="2" width="20%">
    <uix:submitButton name="jboEvent" text="Qnup`mhr|" formName="form1" value="Update" />
    <uix:resetButton text="Qapnq" formName="form1" />
    <uix:submitButton name="jboEvent" text="Nrlemhr|" formName="form1" value="Cancel" unvalidated="true" />
    </uix:labeledFieldLayout>
    <uix:rawText> </div> </uix:rawText>
    <uix:formValue name="CnrClId" value='<%=( ((n = (oracle.jbo.domain.Number)ds_CurrentView.getRowSet().getCurrentRow().getAttribute("CnrClId"))!=null)?n.toString():"" )%>' />
    <uix:formValue name="ClClosedFl" value="Y" />
    <uix:formValue name="returnURL" value='<%=request.getParameter("returnURL")%>' />
    <uix:formValue name="tabNum" />
    <uix:formValue name="shouldReturn" value="1" />
    <uix:formValue name="RowKey" value='<%=request.getParameter("RowKey")%>' />
    </uix:form>
    <jbo:ReleasePageResources releasemode="Stateful" />

  • Getting at the data binding for table rows in ADF/UIX

    At the highest level, I'm trying to figure out the best way to get spreadsheet-like behavior in a table where some of the cells are editable. The table cells were created using the "model=${uix.current.<columnName>}" mechanism.
    I've been able to specify event handlers triggered by the <primaryclientaction> for a table cell component which call into static java methods. But I haven't been able to figure out what binding to use to get at the Java instance for that cell's row in order to use <invoke> to get at non-static methods in the row's view object. The ${uix.current} binding is stale at that point.
    Are the table row data bindings just gone after the table is rendered or is there some alternate notation that lets me get at them.
    Thanks in advance.

    the primaryclient action should pass the rowkey of the current row (${uix.current.rowKeyStr}) as a parameter. This way the server can find the corresponding row on the server in an event handler.
    see
    http://www.oracle.com/technology/products/jdev/tips/jacobi/edittable/tip_adfuixtable_edit.html

  • How can I render an active link (yrl) within a UIX/XML page

    How can I render an active link (url) within a UIX/XML page.
    How can I get <jbo:ShowValue> to work in UIX/XML, or is there another way?
    Bill G...

    It may seem strange, but the <contents> of <rawText> aren't actually
    raw - it's only the "text" attribute that's raw. (It seems strange because
    it is. Ah well.) This is different from UIX JSP.
    So, try something like the following:
    <bc4j:attrScope name="Notes">
    <contents>
    <rawText text="&lt;a href=&quot;"/>
    <rawText>
    <boundAttribute name="text">
    <bc4j:attrProperty name="value"/>
    </boundAttribute>
    </rawText text="&quot;&gt;"/>
    Some text in the link.
    <rawText text="&lt;/a&gt;"/>
    </contents>
    <bc4j:attrScope>
    Thankfully, this will be much simpler in 9.0.3, when the following
    will work:
    <link text="Whatever you want">
    <boundAttribute name="destination">
    <bc4j:attrValue name="Notes"/>
    </boundAttribute>
    </link>

  • Unit testing UIX

    Hi Steve
    Can you advice me a tool for unit testing my UIX pages apart from HttpUnit and HtmlUnit frameworks?
    HttpUnit gives javascript errors. HtmlUnit is not practical for the complex HTML produced from a UIX page.
    Thanks

    Cactuz?

  • Why is it not possible to write a UIX (or ADF) portlet for 9iAS?

    Hi,
    I have been trying for months to create a UIX/BC4J portlet for 9iAS but have been unsuccessful. The documentation and examples cover doing this with JSPs (there is a nice Forum application available for download on portalstudio). However all of my attempts to use UIX have hit a brick wall - we want to use UIX, not JSP!
    I have raised a TAR on Metalink and it has been going back and forth for several months. The support analyst has finally closed it in frustration because he cannot even tell me whether it is possible, let alone give me an example! I have investigated the JPDK and all of the UIX documentation I can get hold of, and have also looked at the ADF components in 10g, and the "Java Portlet Wizard" for Jdeveloper, but they are so far all dead ends. Can anyone help me, or explain why it is that a (to me anyway) SIMPLE and LOGICAL integration of two Oracle frameworks is impossible.
    Thanks,
    Steve

    Hi Steve -
    Thanks for the info. I have a few more questions...
    Andy,
    Yes, this is exactly the issue. Currently I am
    invoking the UIX servlet not as a registered portlet
    but as a hard-coded URL link on the portal page.Are you saying that in order to access the UIX application, the user clicks on a link which navigates out of Portal? If so, is this by design, or did you go this route because of problems creating a portlet for your UIX servlet? That is, would you prefer to have your UIX application run inside of Portal as a portlet, or do you explicitly not want this?
    Also, can you provide more background about your deployment environment? In particular, is the UIX application running locally on the same machine as Portal, or remotely on another machine? Is the UIX application running in the same application server/servlet engine as Portal?
    The application runs connected to the database but
    without the context of the SSO Portal user. I want to
    be able to display the Portal username on the uix
    pages, have the VPD context in the database
    connection (we have striped the tables but it only
    works if connected via Portal!!) and potentially have
    access to some of the extended Portal functionality
    in the JPDK (this last one a "nice to have").Unfortunately I have no idea whether this is possible, so I'm not going to be much help on my own. The best I can do is try to track down someone who can actually speak to this issue. However, given the lack of documentation and the fact that you weren't able to get a solution through support, I wouldn't be suprised to find that this type of integration simply isn't supported yet.
    I think you mentioned in the TAR that you had seen support for similar integration with Struts. If you know of documentation which shows how to do this type of thing with Struts, could you point me at it?
    Andy

  • How to open new window in UIX page

    I'm using UIX for view layer. I have text input in the UIX form. When I click on a button, I want to open a new window with the URL built using the value from the input. I want to do it using javascript. Is it possible with UIX?

    Hi Krishnamoorthy,
    Look out the LovXXXX components demo in uix.
    See <script> demo of component guide. This should help you clearly understand the functionalities.
    See documentation of above UIX components
    Like providing handlers to HTML elements, you can attach event handlers to UIX components too. You can attach event handlers on onClick, onMouseOver,... on UIX components just as you would do in HTML.
    http://www.oracle.com/technology/sample_code/products/jdev/index.html
    This link could be of some help to you.
    Thanks,
    Vijay Venkataraman

  • [UIX] How To: Return multiple values from a LOV

    Hi gang
    I've been receiving a number of queries via email on how to return multiple items from a LOV using UIX thanks to earlier posts of mine on OTN. I'm unfortunately aware my previous posts on this are not that clear thanks to the nature of the forums Q&A type approach. So I thought I'd write one clear post, and then direct any queries to it from now on to save me time.
    Following is my solution to this problem. Please note it's just one method of many in skinning a cat. It's my understanding via chatting to Oracle employees that LOVs are to be changed in a future release of JDeveloper to be more like Oracle Forms LOVs, so my skinning skills may be rather bloody & crude very soon (already?).
    I'll base my example on the hr schema supplied with the standard RDBMS install.
    Say we have an UIX input-form screen to modify an employees record. The employees record has a department_id field and a fk to the departments table. Our requirement is to build a LOV for the department_id field such that we can link the employees record to any department_id in the database. In turn we want the department_name shown on the employees input form, so this must be returned via the LOV too.
    To meet this requirement follow these steps:
    1) In your ADF BC model project, create 2 EOs for employees and departments.
    2) Also in your model, create 2 VOs for the same EOs.
    3) Open your employees VO and create a new attribute DepartmentName. Check “selected in query”. In expressions type “(SELECT dept.department_name FROM departments dept WHERE dept.department_id = employees.department_id)”. Check Updateable “always”.
    4) Create a new empty UIX page in your ViewController project called editEmployees.uix.
    5) From the data control palette, drag and drop EmployeesView1 as an input-form. Notice that the new field DepartmentName is also included in the input-form.
    6) As the DepartmentName will be populated either from querying existing employees records, or via the LOV, disable the field as the user should not have the ability to edit it.
    7) Select the DepartmentId field and delete it. In the UI Model window delete the DepartmentId binding.
    8) From the data controls palette, drag and drop the DepartmentId field as a messageLovInput onto your page. Note in your application navigator a new UIX page lovWindow0.uix (or similar) has been created for you.
    9) While the lovWindow0.uix is still in italics (before you save it), rename the file to departmentsLov.uix.
    10) Back in your editEmployees.uix page, your messageLovInput source will look like the following:
    <messageLovInput
        model="${bindings.DepartmentId}"
        id="${bindings.DepartmentId.path}"
        destination="lovWindow0.uix"/>Change it to be:
    <messageLovInput
        model="${bindings.DepartmentId}"
        id="DepartmentId"
        destination="departmentsLov.uix"
        partialRenderMode="multiple"
        partialTargets="_uixState DepartmentName"/>11) Also change your DepartmentName source to look like the following:
    <messageTextInput
        id=”DepartmentName”
        model="${bindings.DepartmentName}"
        columns="10"
        disabled="true"/>12) Open your departmentsLov.uix page.
    13) In the data control palette, drag and drop the DepartmentId field of the DepartmentView1 as a LovTable into the Results area on your page.
    14) Notice in the UI Model window that the 3 binding controls have been created for you, an iterator, a range and a binding for DepartmentId.
    15) Right click on the DepartmentsLovUIModel node in the UI Model window, then create binding, display, and finally attribute. The attribute binding editor will pop up. In the select-an-iterator drop down select the DepartmentsView1Iterator. Now select DepartmentName in the attribute list and then the ok button.
    16) Note in the UI Model you now have a new binding called DCDefaultControl. Select this, and in the property palette change the Id to DepartmentName.
    17) View the LOV page’s source, and change the lovUpdate event as follows:
    <event name="lovSelect">
        <compound>
            <set value="${bindings.DepartmentId.inputValue}" target="${sessionScope}" property="MyAppDepartmentId" />
            <set value="${bindings.DepartmentName.inputValue}" target="${sessionScope}" property="MyAppDepartmentName" />
        </compound>
    </event>18) Return to editEmployees.uix source, and modify the lovUpdate event to look as follows:
    <event name="lovUpdate">
        <compound>
            <set value="${sessionScope.MyAppDepartmentId}" target="${bindings.DepartmentId}" property="inputValue"/>
            <set value="${sessionScope.MyAppDepartmentName}" target="${bindings.DepartmentName}" property="inputValue"/>     
        </compound>
    </event>That’s it. Now when you select a value in your LOV, it will return 2 (multiple!) values.
    A couple things to note:
    1) In the messageLovInput id field we don’t use the “.path” notation. This is mechanism for returning 1 value from the LOV and is useless for us.
    2) Again in the messageLovInput we supply “_uixState” as an entry in the partialTargets.
    3) We are relying on partial-page-refresh functionality to update multiple items on the screen.
    I’m not going to take the time out to explain these 3 points, but it’s worthwhile you learning more about them, especially the last 2, as a separate exercise.
    One other useful thing to do is, in your messageLovInput, include as a last entry in the partialTargets list “MessageBox”. In turn locate the messageBox control on your page (if any), and supply an id=”MessageBox”. This will allow the LOV to place any errors raised in the MessageBox and show them to the user.
    I hope this works for you :)
    Cheers,
    CM.

    Thanks Chris,
    It took me some time to find the information I needed, how to use return multiple values from a LOV popup window, then I found your post and all problems were solved. Its working perfectly, well, almost perfectly.
    Im always fighting with ADF-UIX, it never does the thing that I expect it to do, I guess its because I have a hard time letting go of the total control you have as a developer and let the framework take care of a few things.
    Anyway, I'm using your example to fill 5 fields at once, one of the fields being a messageChoice (a list with countries) with a LOV to a lookup table (id , country).
    I return the countryId from the popup LOV window, that works great, but it doesn't set the correct value in my messageChoice . I think its because its using the CountryId for the listbox index.
    So how can I select the correct value inside my messageChoice? Come to think of it, I dont realy think its LOV related...
    Can someone help me out out here?
    Kind regards
    Ido

Maybe you are looking for