Dinamically sorting child view object

Hi
i have a master-child relationship between 2 view objects displayed in jsff as master form - detail table fashion.
By default, child is ordered by, for eg.,  attr1.
There is a button that opens popup with child records which need to be ordered by another attribute (attr2).
Basically, child view object should be ordered one way when displayed in jsff, and on the other way when displayed in popup.
What is a best practice to deal with this kind of requirement?
JDev 11.1.2.3
Thanks

Hi,
You can generate the VOImpl for the ViewObject and create a method, which would take the order by clause. Expose this as client interface and then you can pass respective column name to order by dynamically and execute the method before opening the popup.
Ex :
    public void setOrderBy(String orderBy){
        this.setOrderByClause(orderBy);
        this.executeQuery();
-Arun

Similar Messages

  • Problem with saving Parent - Child  View Objects in ADF 11g.

    Hi Every one,
    I have a requirment, something like I will be displaying some data on my jsff screen based on one Transient View Object. Whenever user clicks on Save button, I have to do following steps in my AMImpl.
    -> Preapre dynamically Parent View Object Rows based on some logic
    -> Prepare dynamically Child View object Rows and invoke insertRow method on respective child view object.
    When I say commit() First Parent ViewObject data need to be saved and then Child View object data has to be saved. I am having Parent - Child Key relation ship btw these two ViewObjects. Some how I am populating the Parent Primary key in the Child View Object. Please suggest me If there is any other alternative to this.
    Thanks

    I got the solution, Enabling the check box option for Master - Detail Entity association (CompositionAssociation -> Cascade Update Key Attributes) resolved the issue.
    Thanks

  • How to reference the Parent view Object attribute in Child View object

    Hi , I have the requirememt to generate Tree like struture to display Salary from joining date to retirement date in yearly form.I have writtent two Pl/SQL function to return parent node and child nodes(based on selected year).
    1.First function --> Input paramter (employee id, retirement date , joining date) --> return parent node row with start_date and end_date
    2. 2nd function --> input paarmter(employee id, startDate, end_date) --> return child node based on selected parent node i.e. start date and end date
    I have created two ADF view object based on two function return
    Parent Node --> select * from Table( EUPS.FN_GET_CONTR_SAL_BY_YR(employeeId,retirement Date, dateOf joining)) ;
    Child Node --> select * FROM TABLE( EUPS.FN_GET_CONTR_SAL_FOR_YEAR( employeId,startDate, endDate) ) based on selected parent node.
    I am giving binding variable as input for 2nd function (child node) . I don't know how to reference the binding variable value in child view from parent view.
    Like I have to refernce employeId,startDate, endDate values in 2nd function from parent view object. some thing like parentNode.selectedStart_date parentNode.employeeId.
    I know we can achive this writing the code in backing bean.But i want to know how can we refernce parent view object attribute values in child view object using Groovy or otherway?
    I will appreciate your help.
    Thanks

    I have two view com.ContractualSalaryByYearlyView for Parent Node and com.ContractualSalaryByYearlyView for child Node.
    I have created view link(ContractualSalYearlyByYearViewLink) betweem two view by giving common field empId, stDate , endDate.(below is the view link xml file).
    I tried give the binding attribute values using parent object reference like below in com.ContractualSalaryByYearlyView xml file but getting error
    Variable ContractualSalaryByYearlyView not recognized.I think i am using groovy expression.
    Thanks for quick response.
    com.ContractualSalaryByYearlyView xml
    <ViewObject
    <DesignTime>
    <Attr Name="_isExpertMode" Value="true"/>
    </DesignTime>
    <Variable
    Name="empId"
    Kind="where"
    Type="java.lang.Integer">
    <TransientExpression><![CDATA[adf.object.ContractualSalaryByYearlyView.EmpId]]></TransientExpression>
    </Variable>
    ContractualSalYearlyByYearViewLink.xml file
    <ViewLinkDefEnd
    Name="ContractualSalaryByYearlyView"
    Cardinality="1"
    Owner="com.ContractualSalaryByYearlyView"
    Source="true">
    <DesignTime>
    <Attr Name="_finderName" Value="ContractualSalaryByYearlyView"/>
    <Attr Name="_isUpdateable" Value="true"/>
    </DesignTime>
    <AttrArray Name="Attributes">
    <Item
    Value="com.ContractualSalaryByYearlyView.EmpId"/>
    <Item
    Value="com.ContractualSalaryByYearlyView.StDate"/>
    <Item
    Value="com.ContractualSalaryByYearlyView.EndDate"/>
    </AttrArray>
    </ViewLinkDefEnd>
    <ViewLinkDefEnd
    Name="ContractualSalaryForYearView"
    Cardinality="-1"
    Owner="com.ContractualSalaryForYearView">
    <DesignTime>
    <Attr Name="_finderName" Value="ContractualSalaryForYearView"/>
    <Attr Name="_isUpdateable" Value="true"/>
    </DesignTime>
    <AttrArray Name="Attributes">
    <Item
    Value="com.ContractualSalaryForYearView.EmpId"/>
    <Item
    Value="com.ContractualSalaryForYearView.StDate"/>
    <Item
    Value="com.ContractualSalaryForYearView.EndDate"/>
    </AttrArray>
    </ViewLinkDefEnd>

  • How to set query for child View Object?

    I have a hGrid in standard page. Two View Objects are present connected using view link. I need to set where clause in the child View Object. The changes are not getting reflected when i set the where clause. Also when i try to fetch rowCount it returns 0 for child View Object. But i am able to get the value for parent View Object. Any suggestions please.

    Hi,
    This solution worked for me last time, Please create One blank row and delete that row(For Child VO).
    Why we are doing this? : Because the child vo pointer might not init. See this is not our fault, this is because of OA Framework. But this works for me :)
    Thanks,
    Shrikant

  • Issue :  Child view object refresh problem,

    Hi ,
    Child view object refresh problem,
    Detail expaination of problem with DEPT and Emp table:
    I have two pages first.jspx and secound.jspx
    In the First page we are showing one department and All Employee blongs to that department. Employees are shown in table format.
    and i have duplicate button in table--> this will create a duplication record of selected employee by calling application module
    and the control moves to sencound page to show the newly created Employee details.
    From secound form am returning back with some action button to previous page to the same dept , The newly created records are not showing in the table [but the database has newly crated].
    How do i refresh the child view object ?
    Regards,
    Bogi.

    Hi Frank,
    We are creating new record from the AM with help of ADFBC.
    Would like know how to refresh UI Datacollection and AM view objects.. ? i have added vo.executeQuery in AM . But the changes not reflecting in UI,
    Thanks for the reply... am ready to give any other info required,,,

  • Iterating through master view objects and child view objects in same page

    I am working on a project using ADF UIX and Business Components.
    I have an application module with two view objects one the master view object and the second the detail object. They are related via a view link.
    I would like to iterate through the master view objects displaying a customer name as bold text and then below each customer name I'd like to display the detail records in a table via the detail view object i.e. a seprate table for each customer.
    Is this possible - I haven't had much luck!?
    Thanks in advance.

    That's because
    $(".ms-vb2 a").
    is bringing back all the pieces that have that class with an anchor on the whole page, not just the ones in the .ms-wpContentDivSpace
    I don't know the exact syntax, but I think you need to iterate through all the '.ms_vb2 a' items as well - there are multiple ones, and do something like this inside your other grouping
    $(".ms-vb2 a").each(function(index) {
        var val=$(this).html();
       var val2=val.replace(/_/g," ")
       $(this).html(val2);
    That's not quite right but maybe that will help.
    Robin

  • Apply View criteria at runtime to child View object

    Hi,
    I am facing issues while trying to assign View Criteria to child VO that is part of View hierarchy at runtime.
    AM Model:
    Parent VO ->
    Child VO1
    -> Child VO2
    View Link between :
    Parent VO -> Child VO1
    Child VO1 -> Child VO2
    I have to apply View criteria at runtime at Child VO1 & Child VO2, i tried setApplyViewCriteriaName from AMImpl for these VO but that doesnt work.
    It works for Parent VO, So I concluded Apply VC doesnt work directly for Tree structure.
    I then override executeQueryforCollection in the VO however i am never able to get the handle for the VO that is getting executed :
    Here's what is happening when i fetch my VO tree from AM :
    - Parent VO , Child VO are getting instantiated
    - Parent VO executeQueryforCollection called
    - ** After this a new instance of Child VO is getting instantiated and i dont have any control of setting the VC based on some custom property
    as all get defaulted at this point.
    Please suggest what can be done in this case.
    PS : i can not hardcode the VC condition at View Link.
    - Sam

    I was able to set the VC condotinally based on property set at Parent level using following code in executeQueryForCollection :
    ApplicationModule am= this.getApplicationModule();
    ViewObject vo = am2.findViewObject("ParentView1");
    prop = (String)vo.getProperty("Parent_prop");
    if(propVo_prop.equals("Y"))
    this.setApplyViewCriteriaName("VC");
    super.executeQueryForCollection(object, object2, i);
    is this the right way ? Any performance bottleneck ? This service can be called for 1000 Id's .
    Please suggest if there is some better way.
    Thanks
    -Sam

  • View Links for Programmatic View Objects

    Hi All,
    I created a read only VO called MyVO based on a sql query.
    I created 2 programmatic view objects, MasterView and ChildView.
    In a custom method in AMImpl class ,I iterate through this MyVO resultset and get the rows in a Row object.
    Based on some attributes values of the Row, I populate both master and child View Objects.
    I have created a view link between Master and Child Programmatic View Objects and have exposed them in AM.
    Now I run the AM, and run the method exposed in client interface.
    Now I click on my master and child programmatic views.
    I see that the rows are populated in both of these programmatic VOs.
    But when I click on viewlink which I have exposed under master, it doesnt show me any
    record for child.
    This is my method of AMImpl which is exposed in AM client interface.
    public void constructLines(){
    ViewObject vo= this.getMyVO1();
    ViewObject master=this.getTransientVO1();
    ViewObject child=this.getTransientLineVO1();
    Row r,masterRow,childRow;
    int count=0;
    while(vo.hasNext()){
    ++count;
    r=vo.next();
    masterRow = master.createRow();
    if(r.getAttribute("QuoteHeaderId")!=null)
    masterRow.setAttribute("QuoteHeaderId",
    r.getAttribute("QuoteHeaderId").toString());
    if(r.getAttribute("QuoteLineId")!=null)
    masterRow.setAttribute("QuoteLineId",
    r.getAttribute("QuoteLineId").toString());
    if(r.getAttribute("LineNumber")!=null)
    masterRow.setAttribute("LineNumber",
    r.getAttribute("LineNumber").toString());
    master.insertRow(masterRow);
    childRow= child.createRow();
    if(r.getAttribute("RefLineId")!=null)
    childRow.setAttribute("RefLineId",
    r.getAttribute("QuoteLineId").toString());
    if(r.getAttribute("QuoteHeaderId")!=null)
    childRow.setAttribute("QuoteHeaderId",
    r.getAttribute("QuoteHeaderId").toString());
    child.insertRow(childRow);
    This is stopping me from my development progress.
    Any suggestion to solve this will be of great help.
    Thanks,
    Prabhanjan

    Hi..
    have you define relationship correctly between masterVO and childVO.sometime there may be the problem.

  • How to Use Transient View Objects to Store Session-level Global Variables

    hi
    Please consider section "40.8.5 How to Use Transient View Objects to Store Session-level Global Variables"
    at http://download.oracle.com/docs/cd/E14571_01/web.1111/b31974/bcstatemgmt.htm#ADFFD19610
    Based on this documentation I created the example application
    at http://www.consideringred.com/files/oracle/2010/ProgrammaticalViewObjectAndRollbackApp-v0.01.zip
    It behaves as show in the screencast at http://screencast.com/t/qDvSQCgpvYdd
    Its Application Module has a Transient View Object instance "MyEmployeesContextVOVI", as master for the child View Object instance "EmpInCtxJobVI".
    On rollback the Transient View Object instance keeps its row and attribute values.
    Also when passivation and activation is forced (using jbo.ampool.doampooling=false ) the Transient View Object instance seems to keep its row and attribute values.
    questions:
    - (q1) Why does the expression #{bindings.MyEmployeesContextVOVIIterator.dataControl.transactionDirty} evaluate as true when a Transient View Object instance attribute value is changed (as shown in screencast at http://screencast.com/t/qDvSQCgpvYdd )?
    - (q2) What would be a robust approach to make a Transient View Object instance more self-contained, and manage itself to have only one single row (per instance) at all times (and as such removing the dependency on the Application Module prepareSession() as documented in "5. Create an empty row in the view object when a new user begins using the application module.")?
    many thanks
    Jan Vervecken

    Thanks for your reply Frank.
    q1) Does sample 90 help ? http://blogs.oracle.com/smuenchadf/examples/
    Yes, the sample from Steve Muench does help, "90. Avoiding Dirtying the ADF Model Transaction When Transient Attributes are Set [10.1.3] "
    at http://blogs.oracle.com/smuenchadf/examples/#90
    It does point out a difference in marking transactions dirty by different layers of the framework, "... When any attribute's value is changed through an ADFM binding, the ADFM-layer transaction is marked as dirty. ...".
    This can be illustrate with a small change in the example application
    at http://www.consideringred.com/files/oracle/2010/ProgrammaticalViewObjectAndRollbackApp-v0.02.zip
    It now shows the result of both these expressions on the page ...
    #{bindings.MyEmployeesContextVOVIIterator.dataControl.transactionDirty}
    #{bindings.MyEmployeesContextVOVIIterator.dataControl.dataProvider.transaction.dirty}... where one can be true and the other false respectively.
    See also the screencast at http://screencast.com/t/k8vgNqdKgD
    Similar to the sample from Steve Muench, another modification to the example application introduces MyCustomADFBCDataControl
    at http://www.consideringred.com/files/oracle/2010/ProgrammaticalViewObjectAndRollbackApp-v0.03.zip
    public class MyCustomADFBCDataControl
      extends JUApplication
      @Override
      public void setTransactionModified()
        ApplicationModule vApplicationModule = (ApplicationModule)getDataProvider();
        Transaction vTransaction = vApplicationModule.getTransaction();
        if (vTransaction.isDirty())
          super.setTransactionModified();
    }Resulting in what seems to be more consistent/expected transaction (dirty) information,
    see also the screencast at http://screencast.com/t/756yCs1L1
    Any feedback on why the ADF Model layer is so eager to mark a transaction dirty is always welcome.
    Currently, question (q2) remains.
    regards
    Jan

  • 10.1.3.1.0 : Nested View Object sould not appear in Data Control Palette

    Hello,
    I have a strange behavior in JDeveloper 10.1.3.1.0.
    I have two View Objects, a parent and a child, that are linked by a View Link.
    Although my Application Module instanciates only the parent View Object, I can still see the child View Object in the Data Control Palette.
    I've checked in JDev 10.1.3 SU5 and this behavior doesn't occur.
    Is this a bug ?
    Thanks,
    Seb.

    Hi,
    I tried to reproduce but cannot. I created a m/d ViewObject that are linked by a ViewLink. I removed the detail from the master tree in the AppModule configuration so that only the master instance is left. Opening the DataControl palette, I only see the master view.
    Is the project one that you upgraded from 10.1.3.0? If yes, please try and reproduce in a new workspace
    Frank

  • Accessing setters in parent view object through view link

    Hi,
    I want to access the setters in a parent view object from a child view object through the view link. I have not been able to find an example, can someone point me to one? This is possible isn't it?
    Thanks,
    Jim

    Hi,
    have a look at the developer guide, it has one
    http://download-uk.oracle.com/docs/html/B25947_01/toc.htm
    Frank

  • Replace default table sort with order by on the view object

    The Jdeveloper help for af:table says:
    If the underlying model is not a CollectionModel , the Table automatically examines the actual data to determine which properties are sortable. Any column that has data that implements java.lang.Comparable is sortable. This automatic support cannot be nearly as efficient as coding sorting directly into a CollectionModel (for instance, by translating the sort into an "ORDER BY" SQL clause), but is sufficient for small data sets.
    I have a database table with varchar2 columns that can contain string, date or number values. So in the af:table I want to sort the columns either in string, date or number order.
    I tried creating a sort listener and in that listener set the view object order by clause and execute the query, but it does not affect the row order - it is always sorted as a string. I assume that the collection is doing its sort after I do the query, and overwriting the query order. I have tried disabling the sort in the listener by setting the sortcriteria to null but it has no effect.
    Can anyone suggest how to stop the default sort re-ordering the rows, or else how to code sorting directly into the CollectionModel as suggested in the help.
    Hugh Nelson

    By running in debug I discovered that when you click on a column heading to sort by the column values it actually sets the order by clause on the view object and executes a query. The help says that the default sorting is not as efficient as setting the order by clause - perhaps the help is out of date because default sorting does set the order by clause.
    This means that you cannot do a column sort on a transient attribute. The attribute being sorted on must exist in the table/query.
    The easiest solution is to override the setOrderByClause method on the view object. The string parameter is the column to order by eg "COLUMNA". If this column holds date values I can change it to something like "TO_CHAR(TO_DATE(COLUMNA,'DD-MON-YYYY'),'YYYYMMDD')". For numbers I do "LPAD(COLUMNA,10,'0')".
    This works OK.
    Hugh Nelson

  • How to Filter & Sort on Cached view object data?

    We are using JDeveloper 9.0.3.4 and implemeting a Struts/JSP application that query's via view object on one table. Is it possible to sort and order by on the view object's cached data? How does one do this?
    Thanks
    Natalie

    As for filtering rows, there are two ways:
    1. In the VO that's sorting data (in my article), you can add logic to skip unmatching rows in the following methods:
    protected boolean hasNextForCollection(Object qc)
    protected ViewRowImpl createRowFromResultSet(Object qc, ResultSet resultSet)
    2. In the base VO (unsorted), you can apply a RowQualifier. For example,
    oracle.jbo.server.RowQualifier rowQual = new oracle.jbo.server.RowQualifier("EmpDeptNum = 20");
    myVO.setRowQualifier(rowQual);
    Thanks.
    Sung

  • Sort view object rows with transient attributes

    Hi ,
    Is it possible to sort the results of a view object based on the populated transient attributes ?
    Best regards
    K

    K,
    Have you had a look at section 27.5 of the ADF Developer's Guide for Forms/4GL Developers ("Performing In-Memory Sorting and Filtering of Row Sets") - I've not tried it with transient attributes, but it does describe how to do in-memory sorting, as opposed to the normal way of sorting which is to send an ORDER BY to the database.
    Hope this helps,
    John

  • Updating a Multi Entity view object to add row only to child entity

    I have a View object VO1 made of multiple entities e.g. EO1 and EO2 which have a composition association with cardinality 1 is to many EO1 being the entity corresponding to parent table and EO2 is the child table. All the entities in the association are updatable.
    The data is displayed using VO1 on the page. So for each row in child table, parent table attributes are dispalyed correctly due to the join condition.
    If I create a new record on the VO1 iterator using the create operation binding and save it, it correctly saves a new record in header table and related child table.
    Now I need to provide with one more create operation on the page such that when user can add a child row for the existing header row using the same screen.
    Essentially I need a create operation which, on selecting a row from the displayed table which is based on VO1 , creates a new row in the VO1 iterator such that the EO1 attributes are pre filled with the header table information from the selected row and the child attributes can be added by the user and submitted.
    Tried Using create with params on VO1 by passing the header information, this lets me enter the data on screen just the way its required ,but this obviously only tries to add a new record to header table with the existing primary key itself and the operation fails on save giving duplicate key error for the header table.
    Unable to figure out where to change the default behavior to fetch a exisitng entity rather than create a new entity in the header table entity object for this multiple entity VO1.

    Hi ,
    So how do i send in the sample. Do i send in the code base don HR schema ..
    Or just explain the above with emp dept tables.

Maybe you are looking for

  • Can not boot into OSX after boot camp installation and resizing of Macintosh HD

    So from the beginning what I was trying to do was set up my iMac (27-inch, Late 2013)  with boot camp so that I could play some old windows based games that can not be played in Parallels. I went through the Boot camp process and everything set up ju

  • PSE 12 does not crop after "updates" by windows 8.1 and/or chrome

    All was working fine on my new Asus zenbook running PSE 12 on 8.1.  Then the computer eves updated chrome and windows 8.1. Suddenly, the cursor grabs onto images and commands and twirls them around randomly.  I cannot get PSE to crop an image.  The c

  • Airport disconnected after waking from sleep

    Hi... I posted what follows below a couple months back and am still having the same problem so I decided to put it out there again with a little more information... Though not always, still most of the time when I allow my MacBook Pro to go to sleep,

  • Strange ZEN logout event triggering

    Strange ZEN logout event triggering Hi! ZCM 10.3.2, Windows XP/7, Novell Client installed, have a bundle associated to device and should be triggered at ZENworks logout. This all seems to work ok, in ordinary way. But, when user auth is ok with Novel

  • A problem using Flickr with the new version of Firefox.

    Before the new upgrade in Firefox, when I went to www.Flickr.com and clicked on "log in", a new window opened up prompting me for password and ID. After I entered them, that window would close and bring me back to the window I clicked "log in" on. No