Refresh cl_gui_column_tree?? Howto??

hi gurus. Im using a tree of cl_gui_columm_tree and i need to refresh the tree after several funcionalities but using the method update_nodes_and_items the tree doesnt refreshs.
Anyone knows another way to refresh the tree??
Thk, Regards

anyone???
I really need some help on this
Thk

Similar Messages

  • Howto Refresh SAP BW Query Changes for roles (User menu)

    Hi All,
    I have apply new changes for combine hierarchy. However I have tested in Query Designer/web and its works ok hence the user cant see the change.
    Howto Refresh SAP BW Query Changes for roles (User menu)
    Below is the setup we do have (sap bw 3.5)
    1. User run query from User menu (They logon to bw backend and run query by click on the icon on thier user menu.
    Changes.
    1.Apply combine hierarchy (Rows in Query Designer)
    2. I have display query on the web and its work as expect
    Issue
    1. Query not refresh in user menu (Roles) Users run the query through user menu
    Regards Jon

    thank you

  • Howto refresh table after closing a popup

    Using JDev 11.1.1.3
    I have a table and a popup. The table is populated by records from a datacontrol.
    The popup has a form showing details of the selected record in the table. I also use that popup to create new records.
    I have problems when pressing the "OK" button on the dialog. The record is saved to the database, a commit has been executed but my table does not show the new record. I need to press F5 before i see the record.
    I have tried setting a partialTrigger to the table from the popup but that does not work.
    This is the dialogEvent code:
        public void enqueteListener(oracle.adf.view.rich.event.DialogEvent dialogEvent) {
           if(dialogEvent.getOutcome() != DialogEvent.Outcome.no) {
             BindingContainer bindings =  BindingContext.getCurrent().getCurrentBindingsEntry();
             OperationBinding operationBinding = bindings.getOperationBinding("Commit");
             operationBinding.execute();
             operationBinding = bindings.getOperationBinding("Execute");
             operationBinding.execute();
           else {
             BindingContainer bindings =  BindingContext.getCurrent().getCurrentBindingsEntry();
             OperationBinding operationBinding = bindings.getOperationBinding("Rollback");
             operationBinding.execute();
        }As you see the commit gets executed and after that i execute the Execute to refresh the table but it does not seem to work...
    How can i achieve that i do not longer need to press F5 so the record show up directly in the table after the OK button is clicked in the popup?

    Hi,
    you may add this helper method to your basking bean (or base backing bean)
    public void refreshUIComponent(UIComponent x) {
            AdfFacesContext.getCurrentInstance().addPartialTarget(x);
    }When using the addPartialTarget on your adf table component, it will refresh the table entirely.
    With the "fetching data....." message etc... (It is a bit heavy)
    What would be nice, is to refresh only the current row and not the whole table.
    How ?
    protected void refreshTableCurrentRow(RichTable xTable) {
            //Refresh Table UI Current Row
            Set<Object> selectedKeys = xTable.getSelectedRowKeys();
            assert selectedKeys.size() == 1;
            Object old = xTable.getRowKey();
            try {
                xTable.setRowKey(selectedKeys.iterator().next());
                List<UIComponent> colList = xTable.getChildren();
                Iterator iter = colList.iterator();
                while (iter.hasNext()) {
                    UIComponent col = (UIComponent)iter.next();
                    Iterator iterCol = col.getChildren().iterator();
                    while (iterCol.hasNext()) {
                        refreshUIComponent((UIComponent)iterCol.next());
            } finally {
                xTable.setRowKey(old);
        }And call it just after executing the "Execute" operation
    operationBinding = bindings.getOperationBinding("Execute");
    operationBinding.execute();
    refreshTableCurrentRow(getTable());
    Regards
    Nicolas

  • HowTo: Refresh Top Site Page Icon (non-RSS)

    I like Top Sites. I have four Google Sites pages that I used and Top Sites is a quick way to navigate between them. However, the Sites pages require a login and now all the icons in Top Sites for the Google Sites pages appear as the login page for Google Sites instead of the different Google Sites pages. This is annoying as I can't always remember which of the four Google Sites pages is which.
    How do I refresh the cache that Top Sites has or force it to refresh its cache?

    HI,
    This is annoying as I can't always remember which of the four Google Sites pages is which.
    For Google, you would be better off using Bookmarks instead.
    Navigate to all four Google pages. From your Safari menu bar click Bookmarks, name them Google 1, 2, 3, and 4 individually. (Or however you wish to name the pages to keep them separate). Save to your Bookmarks Bar.
    That's much easier then using TopSites for Google pages.
    Carolyn

  • Howto refresh MAC-filter list in WCS ?

    Hello
    We?re using WLC4402 with WCS 4.
    We are using MAC filters with WPA to limit which clients can connect.
    My problem is this:
    I think it is smoother to insert new MAC filters through the WLC web interface instead of using the WCS.
    When I do this the new MAC filters I put in through the WLC web interface will not show up in the WCS, how can I refresh the WCS to make the new MAC filters show up there ?
    /Dan

    Make sure the controller is using version in Release 3.2.78.0.If not upgrade the controller so that updates are sent properly to wCS .Max number of mac filter that could be configured is 512 on WCS 2.2

  • Howto stop ipad refreshing apps each time shifting the app to background

    IIpad 2 16 gb , 3G.
    application in the background are always refresh and start from zero if you left it for seconds and shift to another application, specially safari and a lot of other apps.
    how to stop this.

    This has been happening to me also since I hooked up Apple TV for the first time yesterday. My iPad gets two bars of wifi strength in our living room, which is fine for surfing but evidently not good enough for Pandora. When I bring the iPad 40 feet away to the router in my office, it gets all 3 bars of wifi strength and works perfectly.
    I think what is happening is that the less than full strength signal confuses the ipad when it is in Airplay mode, and then the iPad drops out of Airplay and defaults to it's local speakers. This is a drag, and so now I'm debating whether to buy the Apple Airport Extreme router, which everybody raves about for it's long range and powerful signal. My Linksys is not very impressive, and I've already spent too many fruitless hours with their tech support people tweaking the settings to no avail.
    It is surprising that two out of three bars is not adequate to ensure good Pandora streaming performance, so I have no way of knowing if moving to a better router will dove the problem.

  • Howto block the refresh rate ?

    Hello,
    I am having a display issue with my monitor. It doesn't displays specific refresh rates so that I cannot anything when starting my mini mac. I know it checks on boot what monitor is connected to have the best display.
    Actually I am using an old 15'' to force 60Hz display before plugin my IIyama monitor. It is annoying.
    Anyone knows how to prevent this problem? Is there a solution whitout buying another monitor? I juste want to fix the refresh rate and don't let it detect on bootup.
    Thanks in advance.

    AFAIK, there is no way to specifically stop Mac OS from detecting a display. That would be a handy feature in cases like yours.
    The best thing I can think to do is to make a VNC connection between your mini and another computer. In this way you should be able to make a useable resolution selection on the mini from the other computer. Once you do this, it will stay that way for good.

  • HowTo refresh a stage?

    Hey. I've got another Question. Is there a way to have a scene updated when changes occur?
    My solution for now is to simpley re-set the scene into the stage. Is there a better solution?
    Cheers

    Let say your scene defined as:
    Group root = new Group();
    Scene scene = new Scene(root);
    Your scene is updated whenever you execute the following statements:
    root.getChildren().add……
    root.getChildren.remove…..
    This is only one example.

  • How to refresh changed data in a plannable template with the Enter Key

    Hi,
    The situation I face is as follows.
    Integrated Planning is being implemented as a tool for budgeting. The user changes a value in a plannable cell on the portal and wishes to see the new updated data by pressing ENTER. Currently we have provided a REFRESH button so that the user gets the desired result.
    Is it possible to see the updated value by pressing ' ENTER' and if so , whats the way around to do it.
    thanks in advance.
    Jaya

    Hey guys,
    I'm interested too in this solution. In BPS there is an additional function described in the HowTo Paper HowTo run planning functions on save and other events
    Now I'm looking for this possibility in IP as well in excel-based IP and web-based IP. For example a copy function should be executed automatically when pushing the enter key.
    Thanks a lot!
    Clemens

  • HOWTO: Use BC4J With or Without DB Triggers

    This HowTo describes how to use BC4J, database sequences and triggers
    and what are the ramifications.
    INTRODUCTION
    BC4J has the ability to work with database sequences in order to obtain a
    unique value when inserting records. BC4J also has the ability to
    work either with a 'before insert' trigger which automatically creates
    a new unique value for the primary key or without a trigger. When not using
    a database trigger, BC4J also has the ability to obtain the sequence value
    and set the primary key value.
    Before discussing the ramifications of using one approach or the other, let's
    show examples of how to use both approaches:
    BC4J & sequences WITH a database trigger
    and
    BC4J & sequences WITHOUT a database trigger
    HOWTO DEMONSTRATION STEPS
    To illustrate both scenarios a simple database setup script is provided which
    creates two tables:
    CUSTOMER_NT which DOES NOT have a before insert trigger and
    CUSTOMER_WT which DOES have a trigger.
    Database Install Script:
    <code>
    drop trigger customer_insert_trigger;
    drop table customer_wt;
    drop table customer_nt;
    drop sequence customer_wt_seq;
    drop sequence customer_nt_seq;
    create sequence customer_wt_seq start with 1;
    create sequence customer_nt_seq start with 101;
    create table customer_wt(
    id number,
    name varchar2(30),
    constraint
    customer_wt_pk
    primary key (id)
    create table customer_nt(
    id number,
    name varchar2(30),
    constraint
    customer_nt_pk
    primary key (id)
    prompt Inserting data...
    insert into customer_wt (id, name)
    values (customer_wt_seq.nextval, 'Mickey');
    insert into customer_wt (id, name)
    values (customer_wt_seq.nextval, 'Goofy');
    insert into customer_nt (id, name)
    values (customer_nt_seq.nextval, 'Daffy');
    insert into customer_nt (id, name)
    values (customer_nt_seq.nextval, 'Porky');
    commit
    prompt Creating trigger
    create trigger customer_insert_trigger
    before insert on customer_wt for each row
    begin
    select customer_wt_seq.nextval into :new.id from dual ;
    end;
    </code>
    The next step is to create the DEFAULT Entity Objects and View Objects using
    the Business Components Wizard.
    USING BC4J WITH A DATABASE TRIGGER
    Let's modify the entity object CustomerWt so it can use the database trigger.
    Edit the entity object CustomerWt by right-clicking in the navigator.
    Click on the 'Attribute Settings' tab and edit the ID attribute.
    - Uncheck 'Mandatory'checkbox. This allows you to insert without a value for the primary key
    - Check 'Refresh after Insert'. This obtains the value from the database generated by the trigger.
    - Check 'Updateable While New'. Id is only updateable when inserting.
    Click finish to complete the wizard. Save all and recompile the project.
    Now let's test our work.
    In the navigator right-click the application module and select 'Test..'. This will launch
    BC4J's built in tester. Connect to the application.
    In the tester double-click the CustomerWtView view object to run a test edit form.
    After the edit form renders, navigate through the existing records using the navigate
    buttons on the edit form. Now let's insert a record to execute the trigger.
    click on the '+' button to insert a record. Enter a value in the 'Name' field and commit the change.
    Observe that a new value has automatically been inserted into the Id field.
    That's it! You have successfully used BC4J and a database trigger.
    Now let's try it without a trigger..
    USING BC4J WITHOUT A DATABASE TRIGGER
    Now edit the entity object CustomerNT so it doesn't need a database trigger.
    Similar to before, edit the entity object CustomerNt by right-clicking in the navigator.
    Click on the 'Attribute Settings' tab and edit the ID attribute.
    - Uncheck 'Mandatory'checkbox.
    - Check 'Updateable While New'.
    An additional step is also required. The Create method will have to be modified to extract
    the value of the sequence.
    In the Edit EntityObject Wizard click the Java tab and select Create method and click Finish.
    The create method is generated in your Java fil e. In the Workspace view of the Navigator,
    expand the CustomerNt entity object in the navigator. Double-click
    CustomerNtImpl.java to open it in the Source Editor. In the Structure pane, double-click
    create(AttributeList). Modify the Create method so it looks like this:
    <code>
    public void create(AttributeList attributeList) {
    super.create(attributeList);
    SequenceImpl s = new SequenceImpl("customer_nt_seq", getDBTransaction());
    Integer next = (Integer)s.getData();
    setId(new Number(next.intValue())); }
    </code>
    Save and compile the project.
    Now test the ViewObject CustomerNtView using the tester as before.
    In the edit form of CustomerNTView click on the '+' to insert a record. Observe that
    just as before a new value has automatically been inserted in the ID field!
    TO USE A DB TRIGGER OR NOT TO USE A DB TRIGGER.
    Using a Database trigger sometimes preferable if you have non BC4J applications
    also sharing the database. In this case it is still safest to just let the database
    update it's own primary keys.
    If you don't have any other non-BC4J applications sharing the database, then not using
    a database trigger is perfectly acceptable and can have slightly better performance.
    The important thing to remember is that the option is yours to use either approach!
    null

    Thank you for the reply Jonathon. I am using a ViewObject which
    consist of several tables. I haven't tried the DB trigger
    approach but just using the BC4 approach in overriding the
    create method.
    Here is the parent class create as a part of the
    FasNameImpl.java file which does the job correctly.
    public void create(AttributeList attributeList) {
    super.create(attributeList);
    SequenceImpl l_seq = new SequenceImpl
    ("SEQ_CUSTOMER_ID",getDBTransaction());
    Integer l_next = (Integer)l_seq.getData();
    setCustomerId(new Number(l_next.intValue()));
    This is when I triedpassing the value to the child table. But I
    can't figure it out. I think the link is working fine if I had a
    ViewLink deployed but it doesn't look like it's doing the job
    for ViewObject.
    I am trying to call the childclass.method
    (FasCustomer.setCustomerId(l_next);
    But I am getting error.
    Thanks a lot for your suggestions,
    Kamran
    703 696 1121

  • How-To "Refresh a table of data after inserting or deleting"

    I'd like to say a word on the how-to article "How to refresh a table of data after inserting or deleting a row using ADF".
    (http://www.oracle.com/technology/products/jdev/howtos/1013/updtable/index.html?_template=/ocom/technology/content/print)
    I spent a lot of time on it because I needed help in implementing simple CRUD functionality on a table, using JSF-ADF-TopLink technologies.
    While the the article does provide correct steps, it is in one important place not specific enough, so the reader may easily get stuck. In section "Refresh the data table", point 1: when you double click on the removeEntity() button, in Structure window, then you do not get the required dialog. You get CommandButton Properties dialog.
    You must click on the removeEntity() button in Editor's Design view. But even there you may get the CommandButton Properties dialog, not managed beans dialog.
    You may resolve that by going to JSF configuration file, faces-config.xml, and switch to Overview view. This will show you the managed beans that you have.
    Then, you may already have a backing bean for the page. You can use that and avoid creating a new managed bean.
    I could understand what the operations mean only after very careful reading of "Creating More Complex Pages", section "Overriding Declarative Methods" in JDeveloper Help (or in ADF Developer's Guide PDF document).
    In general: I believe that "ADF bindings" need more conceptual explanation, maybe in form of an article. Grammatical form "bindings" may create a false understanding that "bindings" are just references. But they are not -- ADF bindings are active objects that handle traffic between UI components and Data Controls. It seems that "bindings" even communicate among themselves. Maybe it would be more understandable to differentiate strictly between "binding objects" (or "binders"?), binding object definitions and binding object references.
    It would be very helpful to have a diagram showing grahically what specific binder objects are created in a small apllication (2-3 pages using 1-2 tables), with whom they communicate and what type of data is passed on.
    Priit

    Hi
    Thanks for your infos.
    Yes exactly I use almost the same code you have post here.
    Could You answer to my next questions?
    First - >what do you mean by saying that "it's not good idea using refreshing in IE?" Of course I use refreshing in backing_bean for my button "remove" that removes row, commit changes to database and refresh table, almost the same as You said in your post:
    Code in backing_bean is and comments on difference to Your code is below:
    public commandButton2_action1(){
    BindingContainer bindings = getBindings();
    OperationBinding operationBinding =
    bindings.getOperationBinding("removeEntity");
    Object result = operationBinding.execute();
    if (!operationBinding.getErrors().isEmpty()) {
    return null;
    //above remove entity, but I dont now if it do commit to database? So i do it below
    OperationBinding commit1 = bindings.getOperationBinding("Commit");
    commit1.execute();
    //and at the end I refresh my table, "findAllRezerwacja1 - it is an id of the methodAction, not the iterator -> is it ok? or should I change to Iterator id?
    OperationBinding requery = bindings.getOperationBinding("findAllRezerwacja1");
    requery.execute();
    return null;
    Page Definition code for this:
    <methodAction id="findAllRezerwacja1"
    InstanceName="SessionEJBLocal.dataProvider"
    DataControl="SessionEJBLocal" MethodName="findAllRezerwacja"
    RequiresUpdateModel="true" Action="999"
    ReturnName="SessionEJBLocal.methodResults.SessionEJBLocal_dataProvider_findAllRezerwacja_result"/>
    <table id="findAllRezerwacja2" IterBinding="findAllRezerwacja1Iter">
    <AttrNames>
    <Item Value="dataDo"/>
    <Item Value="dataOd"/>
    <Item Value="idRezerwacja"/>
    <Item Value="liczbaUczestnikow"/>
    <Item Value="prowadzacy"/>
    <Item Value="uwagi"/>
    </AttrNames>
    </table>
    <methodAction id="removeEntity" InstanceName="SessionEJBLocal.dataProvider"
    DataControl="SessionEJBLocal" MethodName="removeEntity"
    RequiresUpdateModel="true" Action="999">
    <NamedData NDName="entity"
    NDValue="${bindings.findAllRezerwacja2.currentRow.dataProvider}"
    NDType="java.lang.Object"/>
    </methodAction>
    <action id="Commit" IterBinding="findAllRezerwacja1Iter"
    InstanceName="SessionEJBLocal.dataProvider"
    DataControl="SessionEJBLocal" RequiresUpdateModel="true"
    Action="2"/>
    </bindings>
    //and rest of code for Iterator etc
    My second question is, why when you use refresh button in IE (I know is not recommended as You said, but sometimes user do it, so I want prevent situations that I will describe here) so when I press refresh button in IE exactly after removing one row by clicking my button, refreshing by pressing IE button is doing the same --> is deleting next row. How to stop deleting row, when for example user would press IE refresh button after pressing remove button for table. If I change selection in table after deleting row, and press refresh button in IE, instead of deleting row, I got error message: JBO-29000: JBO-35007: and
    JBO-35007. So where Im doing wrong. Maybe I should do sth with postback ? Could You help me? Thanks in advance
    Last one question: what is the difference between using delete and removeEntity from operations node? Im now reading carefully ADF Dev Guide, so I hope I can find infos there? But if You know, please answer to this question.
    Thanks

  • NetBeans VWP: help w/ AJAX, is it possible to refresh more than one field?

    I have a form with lots of fields. Some of them the value is retrieved from the database, for example the service field, where the user types the service id and at the onChange event the form is submitted, executing the processValueChange handler. In this handler the service data is retrieved from the database and a static text with the service name and a static text with the service price are updated.
    I'm trying to do this with AJAX, so at the onChange event of the service id text field I have the following:
    document.getElementById('form1:stServiceName').refresh('form1:tfServiceId');
    document.getElementById('form1:stServicePrice').refresh('form1:tfServiceId');It works, but the processValueChange handler is executed 2 times, and that's a problem...
    Isn't there any way to refresh more than one field? With something like this for example:
    document.getElementById('form1:tfServiceId').submit();
    document.getElementById('form1:stServiceName').refresh();
    document.getElementById('form1:stServicePrice').refresh();Thanks for any help,
    Felipe

    You may want to try creating your own custom popup lov
    http://www.oracle.com/technology/products/database/application_express/howtos/how_to_create_custom_popups.html
    you can then create your own lov report listing all people and then when you click the name required you can passback as many values as required to the calling form.

  • Refresh problem in CL_GUI_ALV_TREE

    Hi Experts,
    I am taking an object name as input and based on the input value, fetching data from the table and displaying it in the form of a tree, using the class CL_GUI_ALV_TREE. The outtab is passed empty to the set_table_for_first_display method. Now, when I go back, enter a new object name and click on display, the data that is used to build the tree gets updated properly, all the add_node calls get executed fine, but the tree does not get refreshed. It gets refreshed properly if I restart the transaction and start with the new object. I am calling the method frontend_update to update the screen, still there is no change. I am clearing the tree object and building the tree from scratch with the new data. But it does not change.
    Is there any clearing of cache required? I am missing anything that is not refreshing the tree. Any help on this would be greatly appreciated since I am stuck with this for a long time now. Thank you!
    Regards,
    Nithya
    Edited by: Nithya S on Apr 8, 2008 8:57 AM

    hi nithya..........
    check this code....hope it will be useful
    report  y13816_alv_tree_with_oops.
    §1a. Define reference variables
    data: g_alv_tree type ref to cl_gui_alv_tree,
          g_custom_container type ref to cl_gui_custom_container,
          gt_sflight type sflight occurs 0,
          g_max type i value 255.
    end-of-selection.
    call screen 100.
    *&      Module  STATUS_0100  OUTPUT
          text
    module status_0100 output.
      set pf-status 'MENU_BAR'.
    if g_alv_tree is initial.
      perform init_tree.
      call method cl_gui_cfw=>flush
       exceptions
         cntl_system_error = 1
         cntl_error        = 2.
      if sy-subrc <> 0.
        call function 'POPUP_TO_INFORM'
          exporting
            titel         = 'Automation Queue failure'(801)
            txt1          = 'Internal error:'(802)
            txt2          = 'A method in the automation queue'(803)
            txt3          = 'caused a failure.'(804).
      endif.
    endif.
    endmodule.                 " STATUS_0100  OUTPUT
    *&      Form  init_tree
          text
    -->  p1        text
    <--  p2        text
    form init_tree .
    §1b. Create ALV Tree Control and corresponding Container.
    create container for alv-tree
    data: l_tree_container_name(30).
    l_tree_container_name = 'CONTAINER'.
    create object g_custom_container
      exporting
        container_name = l_tree_container_name
      exceptions
        cntl_error                  = 1
        cntl_system_error           = 2
        create_error                = 3
        lifetime_error              = 4
        lifetime_dynpro_dynpro_link = 5.
      if sy-subrc <> 0.
        message x208(00) with 'ERROR'(100).
      endif.
    Creating Tree Control
    create object g_alv_tree
      exporting
        parent              = g_custom_container
        node_selection_mode = cl_gui_column_tree=>node_sel_mode_single
        item_selection      = 'X'
        no_html_header      = 'X'
        no_toolbar          = 'X'
      exceptions
        cntl_error                   = 1
        cntl_system_error            = 2
        create_error                 = 3
        lifetime_error               = 4
        illegal_node_selection_mode  = 5
        failed                       = 6
        illegal_column_name          = 7.
      if sy-subrc <> 0.
        message x208(00) with 'ERROR'.                          "#EC NOTEXT
      endif.
    §2. Create Hierarchy-header
    The simple ALV Tree uses the text of the fields which were used
    for sorting to define this header. When you use
    the 'normal' ALV Tree the hierarchy is build up freely
    by the programmer this is not possible, so he has to define it
    himself.
    data: l_hierarchy_header type treev_hhdr.
      perform build_hierarchy_header changing l_hierarchy_header.
    §3. Create empty Tree Control
    IMPORTANT: Table 'gt_sflight' must be empty. Do not change this table
    (even after this method call). You can change data of your table
    by calling methods of CL_GUI_ALV_TREE.
    Furthermore, the output table 'gt_outtab' must be global and can
    only be used for one ALV Tree Control.
      call method g_alv_tree->set_table_for_first_display
        exporting
          i_structure_name    = 'SFLIGHT'
          is_hierarchy_header = l_hierarchy_header
        changing
          it_outtab           = gt_sflight. "table must be empty !
    §4. Create hierarchy (nodes and leaves)
      perform create_hierarchy.
    §5. Send data to frontend.
      call method g_alv_tree->frontend_update.
    endform.                    " init_tree
    *&      Form  build_hierarchy_header
          text
         <--P_L_HIERARCHY_HEADER  text
    form build_hierarchy_header  changing
                                    p_hierarchy_header type treev_hhdr.
    p_hierarchy_header-heading   = 'Month/Carrier/Date'.
    p_hierarchy_header-tooltip   = 'Flights in a Month'.
    p_hierarchy_header-width     = 30.
    p_hierarchy_header-width_pix = ' '.
    endform.                    " build_hierarchy_header
    *&      Form  create_hierarchy
          text
    -->  p1        text
    <--  p2        text
    form create_hierarchy .
    data: ls_sflight type sflight,
          lt_sflight type sflight occurs 0,
          l_yyyymm(6) type c,
          l_yyyymm_last(6) type c,
          l_carrid like sflight-carrid,
          l_carrid_last like sflight-carrid,
          l_month_key type lvc_nkey,
          l_carrid_key type lvc_nkey,
          l_last_key type lvc_nkey.
    §4a. Select data
    select * from sflight into table lt_sflight up to g_max rows.
    §4b. Sort output table according to your conceived hierarchy
    We sort in this order:
       year and month (top level nodes, yyyymm of DATS)
         carrier id (next level)
            day of month (leaves, dd of DATS)
    sort lt_sflight by fldate0(6) carrid fldate6(2).
    Note: The top level nodes do not correspond to a field of the
    output table. Instead we use data of the table to invent another
    hierarchy level above the levels that can be build by sorting.
    §4c. Add data to tree
    loop at lt_sflight into ls_sflight.
    Prerequesite: The table is sorted.
    You add a node everytime the values of a sorted field changes.
    Finally, the complete line is added as a leaf below the last
    node.
      l_yyyymm = ls_sflight-fldate+0(6).
      l_carrid = ls_sflight-carrid.
    Top level nodes:
      if l_yyyymm <> l_yyyymm_last.
        l_yyyymm_last = l_yyyymm.
    *Providing no key means that the node is added on top level:
        perform add_month using    l_yyyymm
                          changing l_month_key.
    The month changed, thus, there is no predecessor carrier
        clear l_carrid_last.
      endif.
    Carrier nodes:
    (always inserted as child of the last month
    which is identified by 'l_month_key')
      if l_carrid <> l_carrid_last.
        l_carrid_last = l_carrid.
        perform add_carrid_line using    ls_sflight
                                         l_month_key
                                changing l_carrid_key.
      endif.
    Leaf:
    (always inserted as child of the last carrier
    which is identified by 'l_carrid_key')
        perform add_complete_line using    ls_sflight
                                           l_carrid_key
                                  changing l_last_key.
    endloop.
    endform.                    " create_hierarchy
    *&      Form  add_month
          text
    form add_month  using    p_yyyymm type c
                             p_relat_key type lvc_nkey
                    changing p_node_key type lvc_nkey.
    data: l_node_text type lvc_value,
          ls_sflight  type sflight,
          l_month(15) type c.
    get month name for node text
    perform get_month using p_yyyymm
                      changing l_month.
    l_node_text = l_month.
    add node:
    ALV Tree firstly inserts this node as a leaf if you do not provide
    IS_NODE_LAYOUT with field ISFOLDER set. In form 'add_carrid_line'
    the leaf gets a child and thus ALV converts it to a folder
    automatically.
    call method g_alv_tree->add_node
      exporting
        i_relat_node_key = p_relat_key
        i_relationship   = cl_gui_column_tree=>relat_last_child
        i_node_text      = l_node_text
        is_outtab_line   = ls_sflight
      importing
        e_new_node_key   = p_node_key.
    endform.                    " get_month
    *&      Form  get_month
          text
         -->P_P_YYYYMM  text
         <--P_L_MONTH  text
    form get_month  using    p_yyyymm
                    changing p_month.
    Returns the name of month according to the digits in p_yyyymm
    data: l_monthdights(2) type c.
    l_monthdights = p_yyyymm+4(2).
    case l_monthdights.
      when '01'.
       p_month = 'January'.
      when '02'.
       p_month = 'February'.
      when '03'.
       p_month = 'March'.
      when '04'.
       p_month = 'April'.
      when '05'.
       p_month = 'May'.
      when '06'.
       p_month = 'June'.
      when '07'.
       p_month = 'July'.
      when '08'.
       p_month = 'August'.
      when '09'.
       p_month = 'September'.
      when '10'.
       p_month = 'October'.
      when '11'.
       p_month = 'November'.
      when '12'.
       p_month = 'December'.
    endcase.
    concatenate p_yyyymm+0(4) '->' p_month into p_month.
    endform.                    " get_month
    *&      Form  add_carrid_line
          text
         -->P_LS_SFLIGHT  text
         -->P_L_MONTH_KEY  text
         <--P_L_CARRID_KEY  text
    form add_carrid_line  using    ps_sflight  type sflight
                                   p_relat_key type lvc_nkey
                          changing p_node_key  type lvc_nkey.
    data: l_node_text type lvc_value,
          ls_sflight  type sflight.
    add node
    ALV Tree firstly inserts this node as a leaf if you do not provide
    IS_NODE_LAYOUT with field ISFOLDER set. In form 'add_carrid_line'
    the leaf gets a child and thus ALV converts it to a folder
    automatically.
    l_node_text = ps_sflight-carrid.
    call method g_alv_tree->add_node
      exporting
        i_relat_node_key = p_relat_key
        i_relationship   = cl_gui_column_tree=>relat_last_child
        i_node_text      = l_node_text
        is_outtab_line   = ls_sflight
      importing
        e_new_node_key   = p_node_key.
    endform.                    " add_carrid_line
    *&      Form  add_complete_line
          text
    form add_complete_line  using    ps_sflight   type sflight
                                     p_relat_key  type lvc_nkey
                            changing p_node_key   type lvc_nkey.
    data: l_node_text type lvc_value.
    write ps_sflight-fldate to l_node_text mm/dd/yyyy.
    add leaf:
    ALV Tree firstly inserts this node as a leaf if you do not provide
    IS_NODE_LAYOUT with field ISFOLDER set.
    Since these nodes will never get children they stay leaves
    (as intended).
    call method g_alv_tree->add_node
    exporting
      i_relat_node_key = p_relat_key
      i_relationship   = cl_gui_column_tree=>relat_last_child
      i_node_text      = l_node_text
      is_outtab_line   = ps_sflight
    importing
      e_new_node_key   = p_node_key.
    endform.                    " add_complete_line
    *&      Module  USER_COMMAND_0100  INPUT
          text
    module user_command_0100 input.
    case sy-ucomm.
      when 'EXIT'.
       leave program.
    endcase.
    endmodule.                 " USER_COMMAND_0100  INPUT
    reward if useful
    cheers,
    rekha

  • How to refresh output table in alv tree?

    Hi !
    I searched,
    there is many solutions.
    FRONTEND_UPDATE,
    refresh_table_display,
    or expand_nodes..
    But I want just fresh output table.
    Look this, please.
    IF p_tree IS NOT INITIAL.
        CALL METHOD g_container2->set_focus
          EXPORTING
            control = p_tree.
        CALL METHOD p_tree->frontend_update.
      CALL METHOD p_tree->refresh_table_display
       EXCEPTIONS
          program_error = 1
          OTHERS        = 2.
    *=> this method is privated. So I can't use it.
      ENDIF.
       CHECK p_tree IS INITIAL.
    create tree object
      CREATE OBJECT p_tree
        EXPORTING
          parent              = g_container2
          node_selection_mode = cl_gui_column_tree=>node_sel_mode_single
          no_html_header      = 'X'
          item_selection      = 'X'.
      DATA lt_fieldcat TYPE lvc_t_fcat.
      DATA ls_head TYPE treev_hhdr.
      PERFORM get_tree_head USING ls_head.
      PERFORM get_tree_fieldcat TABLES lt_fieldcat.
      CALL METHOD p_tree->set_table_for_first_display
        EXPORTING
          is_hierarchy_header = ls_head
          i_background_id     = 'ALV_BACKGROUND'
        CHANGING
          it_outtab           = gt_template
          it_fieldcatalog     = lt_fieldcat.
      PERFORM add_node USING p_tree.
      PERFORM register_tree_events USING p_tree.
      SET HANDLER lcl_event_receiver=>on_link_click FOR p_tree.
      CALL METHOD g_container2->set_focus
        EXPORTING
          control = p_tree.
    I just want refresh only output table( gt_template) without create object.
    method FRONTEND_UPDATE can't solve this problem.
    Please,
    If you know the solution about this problem,
    give me an answer.
    Thank you so much,
    From Juhee Bhang.
    Edited by: Ju-hee Bhang on Jun 2, 2009 10:48 AM

    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
         EXPORTING
           i_callback_program                = sy-cprog
           i_callback_pf_status_set          = 'PF_STATUS'
           i_callback_user_command           = 'CALLBACK_USER_COMMAND' "----->is the form name in
           i_callback_top_of_page            = 'TOP_OF_PAGE'                             which we write the code
           is_layout                         = s_layout
           it_fieldcat                       = t_fieldcat
           it_sort                           = t_sort
        I_DEFAULT                         = 'X'
           i_save                            = 'A'
           is_variant                        = s_variant
          TABLES
            t_outtab                          = t_output[]
         EXCEPTIONS
           program_error                     = 1
           OTHERS                            = 2.
    FORM callback_user_command USING i_ucomm       LIKE sy-ucomm
                                     i_wa_selfield TYPE slis_selfield.
      i_wa_selfield-refresh = 'X'.
    Endform

  • UWL: No automatic refresh after completing workitem in iView

    Hi,
    our system is EP 6 SP2 P4 HF 7 with CM HF 6.
    We have configured a workitem launched by an individual iview - this works fine.
    For execution of this workitem we call SAP_WAPI_CREATE_EVENT and save values in simple_container. After this SWW_WI_ADMIN_COMPLETE is called to complete the workitem to be cleared from UWL inbox.
    If I refresh the tab manual all works fine - the completed workitem is not more there. But with automatic refresh this executed workitem is still listed.
    Do you have any idea what we are doing wrong?
    Configuration in uwl.standard:
      <Views>
        <View name="myWorkItemView" selectionMode="SINGLESELECT" width="98%" supportedItemTypes="uwl.task.webflow.DE9_TS99500153" columnOrder="detailIcon, subject, priority, creatorId, createdDate, dueDate" sortby="createDate:descend, priority:descend" tableDesign="STANDARD" visibleRowCount="20" headerVisible="yes" tableNavigationFooterVisible="yes" tableNavigationType="CUSTOMNAV" actionRef="" refresh="60" dueDateSevere="86400000" dueDateWarning="259200000" emphasizedItems="new" displayOnlyDefinedAttributes="yes" actionPosition="top">
    I appreciate your help,
    thanks in advance,
    Thorsten Bingmann

    Hi Ross,
    concerning our problem (no WI completion by auto refreshing UWL) we have yet no solution. SAP Support told us to configure the cache lifetime of UWL to smaller size, but alas this does not solve the problem.
    As you mentioned the blank webgui screen: I think this behaviour is by design. Calling an ITS transaction there's no other way to end the ITS session as of using the back or return button and get an end of session. The given status (WI new status: completed) indicates that UWL and ITS process the WI correct.
    A smarter way to execute the concerning WI ID is to configure it in the xml file as generic decision task. Then you'll get an inline rendered java iview with decision "accept" or "decline" and the new status will be shown in UWL. This will take place of (standard) ITS configuration. Please have a look at the HowTo Guide of UWL.
    Hope it helps,
    regards,
    Thorsten Bingmann

Maybe you are looking for

  • Spaces not working correctly, Help!

    Hi all, I've just changed to a new mac (not actually new, just new to me) and I'm having problems with Spaces in Snow Leopard 10.6.8. I've set various apps - email, web browser etc along with Adobe Creative Suite to open in various spaces so i can ea

  • Set Text in Container- Different Classes each line of text

    I'm using the Set text of Container behavior to function as a caption in my displaced rollover. It works fine but there is one problem I'm having. My orginal "placeholder" caption looks something  like this: Project Name Location Photographer I achie

  • PP 2014.1 - Broken link to Media Encoder

    Using a project created under PP 2014, I have been able to change the Lumetri via Dynamic Link to Speed grade, but I cannot Export the Sequence to Media Encoder. Process used is as under previous version of PP: Select sequence Go File - Export - Medi

  • Connect eMac to Internet through an iMac

    I have a wireless router in one room that has the only phone jack in my house. In another room, I have an iMac running Leopard and an eMac running Panther. The iMac is connected to the Internet via the wireless router. Is there a way to hook up the e

  • BT Home Hub 5 reeboting often

    Hello. Since October, when I had the Home Hub 5. It worked perfectly. I had little to none reboots when using it. About 1-2 months ago. My Home Hub rebooted often. Its sometnig by OpenRG 10:12:51, 12 Jul. (1211465.530000) The system is going DOWN for