ALV doesn't expand/collapse subtotals

Hi everyone,
I have an old ALV program in wich i made some changes. For example, added form USER_COMMAND so that when you double-click on a row, it makes a CALL TRANSACTION to the referenced document.
But a problem emerged, and it didn't happended before. If i ask for subtotals, i can't manage to expand/collapse the rows, by using the icon on the yellow subtotal line(s). The small "finger" icon that appeared (like in hotspot), no longer appears.
What can i do to solve this ? thank you in advance to all.
             Nuno Santos

I just realized this happens because i have an editable field on my alv. If i "disconnet" the edit mode, collapse/expand works fine again. Isn't there a way to workaround and make possible edit AND collapse/expand at the same time ?

Similar Messages

  • Hierarchical alv doesn't expand

    Hello  experts
    i written a hierarchical alv it run fines at output it doesn't expand please help me to find out the problem.
    REPORT  ZCR_HERARCHIAL_LIST_DISPLAY.
    TABLES :VBAK,VBAP.
    TYPE-POOLS:SLIS.
    DATA : BEGIN OF IT_VBAK OCCURS 0,
           VBELN LIKE VBAK-VBELN,
           ERDAT LIKE VBAK-ERDAT,
           ERZET LIKE VBAK-ERZET,
           ERNAM LIKE VBAK-ERNAM,
           ANGDT LIKE VBAK-ANGDT,
           EXPAND TYPE XFELD,
           END OF IT_VBAK.
    DATA : BEGIN OF IT_VBAP OCCURS 0,
           VBELN LIKE VBAP-VBELN,
           POSNR LIKE VBAP-POSNR,
           MATNR LIKE VBAP-MATNR,
           MATWA LIKE VBAP-MATWA,
           END OF it_vbap.
    DATA : IT_FILELDCAT TYPE SLIS_T_FIELDCAT_ALV,
           WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
    DATA : IT_LAYOUT TYPE SLIS_LAYOUT_ALV.
    DATA : WA_KEYINFO TYPE SLIS_KEYINFO_ALV.
    DATA : I_PROGRAM TYPE sy-repid.
    SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
    SELECT-OPTIONS S_VBELN FOR VBAK-VBELN NO INTERVALS.
    SELECTION-SCREEN SKIP.
    PARAMETERS:P_EXPAND AS CHECKBOX DEFAULT 'X'.
    SELECTION-SCREEN END OF BLOCK B1.
    start-of-selection.
    PERFORM SELECT_DATA.
    PERFORM BULID_FIELDCATALOG.
    PERFORM SET_LAYOUT.
    FORM SELECT_DATA .
    SELECT VBELN
           ERDAT
           ERZET
           ERNAM
           ANGDT
           FROM VBAK
           INTO CORRESPONDING FIELDS OF TABLE IT_VBAK UP TO 10 ROWS.
          IF NOT IT_VBAK[] IS INITIAL.
          SELECT VBELN
                 POSNR
                 MATNR
                 MATWA
                 FROM VBAP
                 INTO CORRESPONDING FIELDS OF TABLE IT_VBAP
                 FOR ALL ENTRIES IN IT_VBAK WHERE VBELN = IT_VBAK-VBELN.
          ENDIF.
       SORT IT_VBAP BY VBELN.
    ENDFORM.                    " SELECT_DATA

    FORM BULID_FIELDCATALOG .
    WA_FIELDCAT-col_pos = 1.
    WA_FIELDCAT-fieldname = 'VBELN'.
    WA_FIELDCAT-tabname = 'VBAK'.
    WA_FIELDCAT-seltext_m = 'SALES DOCUMENT'.
    APPEND WA_FIELDCAT TO it_fileldcat.
    CLEAR WA_FIELDCAT.
    WA_FIELDCAT-col_pos = 2.
    WA_FIELDCAT-fieldname = 'ERDAT'.
    WA_FIELDCAT-tabname = 'VBAK'.
    WA_FIELDCAT-seltext_m = 'RECORD CREATION DATE'.
    APPEND WA_FIELDCAT TO it_fileldcat.
    CLEAR WA_FIELDCAT.
    WA_FIELDCAT-col_pos = 3.
    WA_FIELDCAT-fieldname = 'ERZET'.
    WA_FIELDCAT-tabname = 'VBAK'.
    WA_FIELDCAT-seltext_m = 'ENTRY TIME'.
    APPEND WA_FIELDCAT TO it_fileldcat.
    CLEAR WA_FIELDCAT.
    WA_FIELDCAT-col_pos = 4.
    WA_FIELDCAT-fieldname = 'ERNAM'.
    WA_FIELDCAT-tabname = 'VBAK'.
    WA_FIELDCAT-seltext_m = 'NAME OF THE PERSON WHO CREATED THE OBLECT'.
    APPEND WA_FIELDCAT TO it_fileldcat.
    CLEAR WA_FIELDCAT.
    WA_FIELDCAT-col_pos = 5.
    WA_FIELDCAT-fieldname = 'ANGDT'.
    WA_FIELDCAT-tabname = 'VBAK'.
    WA_FIELDCAT-seltext_m = 'QUOTATION'.
    APPEND WA_FIELDCAT TO it_fileldcat.
    CLEAR WA_FIELDCAT.
    WA_FIELDCAT-col_pos = 6.
    WA_FIELDCAT-fieldname = 'VBELN'.
    WA_FIELDCAT-tabname = 'VBAP'.
    WA_FIELDCAT-seltext_m = 'SALES DOCUMENT'.
    APPEND WA_FIELDCAT TO it_fileldcat.
    CLEAR WA_FIELDCAT.
    WA_FIELDCAT-col_pos = 7.
    WA_FIELDCAT-fieldname = 'POSNR'.
    WA_FIELDCAT-tabname = 'VBAP'.
    WA_FIELDCAT-seltext_m = 'SALES DOCUMENTB ITEM'.
    APPEND WA_FIELDCAT TO it_fileldcat.
    CLEAR WA_FIELDCAT.
    WA_FIELDCAT-col_pos = 8.
    WA_FIELDCAT-fieldname = 'MATNR'.
    WA_FIELDCAT-tabname = 'VBAP'.
    WA_FIELDCAT-seltext_m = 'MATERIAL NO'.
    APPEND WA_FIELDCAT TO it_fileldcat.
    CLEAR WA_FIELDCAT.
    WA_FIELDCAT-col_pos = 9.
    WA_FIELDCAT-fieldname = 'MATWA'.
    WA_FIELDCAT-tabname = 'VBAP'.
    WA_FIELDCAT-seltext_m = 'MATERIAL ENTERED'.
    APPEND WA_FIELDCAT TO it_fileldcat.
    CLEAR WA_FIELDCAT.
    ENDFORM.                    " BULID_FIELDCATALOG
    FORM SET_LAYOUT .
    IT_LAYOUT-group_change_edit = 'X'..
    IT_LAYOUT-colwidth_optimize = 'X'.
    IT_LAYOUT-zebra = 'X'.
    IT_LAYOUT-detail_popup = 'X'.
    IT_LAYOUT-get_selinfos = 'X'.
    IF P_EXPAND = 'X'.
    IT_LAYOUT-expand_fieldname = 'EXPAND'.
    ENDIF.
    WA_KEYINFO-ITEM01 = 'VBELN'.
    WA_KEYINFO-ITEM01 = 'VBELN'.
    CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
      EXPORTING
    *   I_INTERFACE_CHECK              = ' '
       I_CALLBACK_PROGRAM             = I_PROGRAM
    *   I_CALLBACK_PF_STATUS_SET       = ' '
    *   I_CALLBACK_USER_COMMAND        = ' '
       IS_LAYOUT                      = IT_LAYOUT
       IT_FIELDCAT                    = IT_FILELDCAT
    *   IT_EXCLUDING                   =
    *   IT_SPECIAL_GROUPS              =
    *   IT_SORT                        =
    *   IT_FILTER                      =
    *   IS_SEL_HIDE                    =
    *   I_SCREEN_START_COLUMN          = 0
    *   I_SCREEN_START_LINE            = 0
    *   I_SCREEN_END_COLUMN            = 0
    *   I_SCREEN_END_LINE              = 0
    *   I_DEFAULT                      = 'X'
    *   I_SAVE                         = ' '
    *   IS_VARIANT                     =
    *   IT_EVENTS                      =
    *   IT_EVENT_EXIT                  =
        I_TABNAME_HEADER               = 'VBAK'
        I_TABNAME_ITEM                 = 'VBAP'
    *   I_STRUCTURE_NAME_HEADER        =
    *   I_STRUCTURE_NAME_ITEM          =
        IS_KEYINFO                     = WA_KEYINFO
    *   IS_PRINT                       =
    *   IS_REPREP_ID                   =
    *   I_BYPASSING_BUFFER             =
    *   I_BUFFER_ACTIVE                =
    * IMPORTING
    *   E_EXIT_CAUSED_BY_CALLER        =
    *   ES_EXIT_CAUSED_BY_USER         =
      TABLES
        T_OUTTAB_HEADER                = IT_VBAK
        T_OUTTAB_ITEM                  = IT_VBAP
    * EXCEPTIONS
    *   PROGRAM_ERROR                  = 1
    *   OTHERS                         = 2
    IF SY-SUBRC <> 0.
    * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.

  • Outlook 2013 - Online Archive folders do not remember expand / collapse

    For our QA group, we have just upgraded them from Office 2010 to Office 2013 SP1. We have one user that noticed something. With Outlook 2010, the client would remember which folders he had expanded or collapsed under his "Archive" (the online archive
    generated by the Archiving feature of Exchange server). However, once we upgraded him to Outlook 2013, this is no longer true. Now, the "Online Archive" header is fully collapsed when he open Outlook every time.
    To test, I created a small folder structure with some items in my own "Online Archive" section and was able to reproduce this behavior. Outlook 2013 will remember which folders are expanded or collapsed for the folders in my Inbox but not for the
    folders in my Archive. Is there a way to have Outlook 2013 remember the expand / collapse settings for the Archive?

    Hi,
    I'm marking the reply as answer as there has been no update for a couple of days.
    If you come back to find it doesn't work for you, please reply to us and unmark the answer.
    Best Regards,
    Steve Fan
    Forum Support
    Come back and mark the replies as answers if they help and unmark them if they provide no help.
    If you have any feedback on our support, please click
    here

  • Expand/Collapse option in Portal - SP13

    Hi everybody!!
    We have EP7.0 NetWeaver 2004s and we upgraded the SP from 5 to 13.  When SP13 was installed, the icon to expand/collapse doesn't work correctly (Detail Navigation in Navigation Panel in the Light Framework).  The icon always send the user to the main and first page.  With the SP5 it works well.
    Do you have any idea about how can I solve this??
    Thanks in advance for any help that you can give me!
    Best Regards,
    Claudia

    Hi Claudia,
    Take a look at this thread maybe it gives you some answers...
    How to disable automatic loading of iView/Page in detailed navigation?
    We have SP13 at this moment and its working "fine":
    1. When clicking on the expand/collapse icon (the triangle) the first navigation node in this folder/workset is NOT loaded automatically.
    2. When clicking on the text part of the link (the actual url) the first navigation node in this folder/workset IS loaded.
    In addition to step 2 you can steer what navigation node is loaded by setting the parameter "Default Entry for Folder" this property is by default set to No.
    Also take a look at the property: "Clicking Folder Name Launches First Node" of the Detailed Navigation iView.. Maybe this is by some reason got set properly...
    Good Luck,
    Benjamin Houttuin

  • Expand/Collapse query structure?

    Hi all,
    I'm working with a structure in a BW query. In this BW query you have the possibility to expand or collapse structure nodes. Is it possible to overwrite this property in Design Studio?
    I tried to use the scripting formula DS_1.collapseNode("technical ID structure", "technical ID member structure") but it doesn't work.
    Any ideas?
    Thanks, Vanessa

    Hi Vanessa,
    I had the same case on my project(not a real hierarchy, but a structure).
    I've implemented it using a button - I have an image of a + and a -  that collapses and expands the hierarchy.
    try to do it with a button or and image (in the onClick event). and if it works, you can call this event from startup or in background processing.
    about your second answer, in design studio:
    go to your datasource ->right click->edit initial view
    there you will see the query exactly as you defined it in bex.
    change the hierarchy expand\collapse state, and click ok.
    the data in the crosstab will change accordingly.
    hope it helps,
    Roman

  • Expand/Collapse functionality in Survey

    Dear Experts,
    We have build survey Form using Survey Builder. The survey Form has 4
    sections , in each section 5 questions & its relevant answer
    options are there.
    We are using the standard CSS style sheet : CRM_SVY_OPP_WINLOSS.CSS. Out
    put displays standard HTML page with out Expand & Collapse
    functionality at section & Questional level.
    Client required expand and collapse functionality to view the entire
    survey form in one page which allows the user to navigate to required
    question .
    For that we are tring to change Static Survey XSLT, however system is
    not allowed to edit XSLT file .
    Please suggest ,how can we enable the expand & Collapse
    functionality for our surveys in Survey Buider ?
    Regards
    Pramod

    Hello Aks,
    After seeing the ME2ON transaction, what i can suggest you is following:
    --> Display a column in your Grid with the hotspot on it
    --> You can give the icon as a value in the column
    --> Then for the hotspot click you need to display the expanded data i.e. regenerate the grid.
    My suggestion to you would be that if you dont need to edit anything in the grid i.e. dont want have any editable field on the grid, then you should opt for an ALV tree using class CL_GUI_ALV_TREE. The expand collapse functionality is already there and you will be saved from a lot of coding.
    Hope this helps.
    Regards,
    Himanshu

  • Form - Expand/Collapse sections to simulate website, is this possible?

    Hello,
    My FLA file is based in CS5 with AS3. I posted this in the AS3 forum but if it can be done without AS3 then I am open to that possibility as well.
    I am creating a non-functioning form, meaning I just need it to look like a form but the functionality doesn't need to work. Atleast not in this stage of development.
    The functionality I need basically looks like the following:
    - http://static.geewax.org/checktree/index.html (What would this be called in the flash world?? my google search terms have not been successful)
    Where:
    1. Clicking the arrow expands a section.
    2. The arrow changes to a different arrow when the section is expanded.
    3. It will be inside of a white box, the white box needs to resize to either shrink or get taller when a section is expanded or collapsed.
    One section will be checkboxes, and one section will be radio buttons.
    Thank you very much in advance . I look forward to exploring into how to accomplish such a thing.
    Message was edited by: da4seen

    Okay,
    I know I may be going at this completely wrong but posting my code here so someone can give me feedback so far and point me in directions where I need improvement.
    So far this code:
    1. Expands/Collapses the 1st section, and properly moves the 2nd section to the correct position.
    My problem so far is:
    1. The contents of the 2nd section doesn't update to the correct position when section 1 expands/collapses.
    import fl.controls.CheckBox;
    import fl.controls.RadioButton;
    //Set Variable for collapse position
    var collapsePosition:int = 0;
    // Tab1 Group 1
    var tab1_gp1_main:CheckBox = new CheckBox();
    var tab1_gp1_op1:CheckBox = new CheckBox();
    var tab1_gp1_op2:CheckBox = new CheckBox();
    addChild(tab1_gp1_main);
    tab1_gp1_main.move(-110, -300);
    tab1_gp1_main.width = 120;
    tab1_gp1_main.label = "Landscape";
    // Tab1 Group 2;
    var tab1_gp2_main:CheckBox = new CheckBox();
    var tab1_gp2_op1:CheckBox = new CheckBox();
    var tab1_gp2_op2:CheckBox = new CheckBox();
    addChild(tab1_gp2_main);
    tab1_gp2_main.move(-110, 20 + tab1_gp1_main.y );
    tab1_gp2_main.width = 120;
    tab1_gp2_main.label = "Performance";
    // Section Click Listeners
    tab1_gp1_main.addEventListener(MouseEvent.CLICK, sectionHandler);
    tab1_gp2_main.addEventListener(MouseEvent.CLICK, sectionHandler);
    function sectionHandler(event:MouseEvent):void
        switch (event.currentTarget)
            case tab1_gp1_main :
                switch (tab1_gp1_main.selected)
                    case true :
                        addChild(tab1_gp1_op1);
                        addChild(tab1_gp1_op2);
                        tab1_gp1_op1.move(-100, 20 + tab1_gp1_main.y);
                        tab1_gp1_op1.width = 120;
                        tab1_gp1_op1.label = "test 1";
                        tab1_gp1_op2.move(-100, 20 + tab1_gp1_op1.y);
                        tab1_gp1_op2.width = 120;
                        tab1_gp1_op2.label = "test 2";
                        collapsePosition = tab1_gp2_main.y;
                        tab1_gp2_main.move(-110, 20 + tab1_gp1_op2.y);
                        break;
                    case false :
                        removeChild(tab1_gp1_op1);
                        removeChild(tab1_gp1_op2);
                        tab1_gp2_main.move(-110, collapsePosition);
                        break;
                    default :
                        trace('Something is wrong');
                break;
            case tab1_gp2_main :
                switch (tab1_gp2_main.selected)
                    case true :
                        addChild(tab1_gp2_op1);
                        addChild(tab1_gp2_op2);
                        tab1_gp2_op1.move(-100, 20 + tab1_gp2_main.y);
                        tab1_gp2_op1.width = 120;
                        tab1_gp2_op1.label = "test 1";
                        tab1_gp2_op2.move(-100, 20 + tab1_gp2_op1.y);
                        tab1_gp2_op2.width = 120;
                        tab1_gp2_op2.label = "test 2";
                        break;
                    case false :
                        removeChild(tab1_gp2_op1);
                        removeChild(tab1_gp2_op2);
                        break;
                    default :
                        trace('Something is wrong');
                break;
    I have the above AS code inside a movieclip timeline, not sure if this was proper or not but I was trying to keep some code away from my long AS statements on my main timeline.

  • Expand/Collapse feature in table maintenance view

    Hello experts,
    We have created a custom table and maintenace view.   For some table rows, the only key value difference is an EFFECTIVE DATE.   The generated table maintenace dialog by default "Collapses" the rows that only differ by Effective Date.  Using the Expand <-> Collapse button, we can see the missing detail for individual rows.
    Can the maintenace dialog be expanded by default?

    Hi,
    See the given link, It may help to you.
    maintenance view
    Regards,
    Shamma

  • Expand/Collapse a block in a selection screen

    Hey Folks,
    I have a requirement , where I have a selection screen, with 3 selection blocks. I have a requirement that I need to make 2 of these blocks expandible/collapsible on the toggle of a button.. How can this be achieved.
    In case of a normal screen, I would have had to create the blocks as subscreens (one type of screen for expanded state...another for collapsed state) and called it from the main screen. But how do I achieve the same using the selection screens?
    I was considering creating the blocks as subscreens in the selection screen and calling them in the PBO of the main selection screen. However, I am unsure if thats a wise thing to do since the screen is generated automatically in case of a selection screen and I do believe its not a good idea to manually alter it.
    Does anyone has any pointers on this?
    Thanks and Best Regards,
    Puja.

    Hi,
    I have modified the code to show the expand/collapse ICON accordingly..Please check..
    TABLES sscrfields.
    TYPE-POOLS icon.
    * Expand/collapse buttons.
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN PUSHBUTTON 2(23)  b1 USER-COMMAND usr1.
    SELECTION-SCREEN END OF LINE.
    * Block 1
    SELECTION-SCREEN BEGIN OF BLOCK b1.
    PARAMETERS: p_test1 TYPE char10  MODIF ID m1,
                p_test2 TYPE char10  MODIF ID m1.
    SELECT-OPTIONS  s_date  FOR sy-datum MODIF ID m1.
    SELECTION-SCREEN END OF BLOCK b1.
    * Block 2
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN PUSHBUTTON 2(23)  b2 USER-COMMAND usr2.
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN BEGIN OF BLOCK b2.
    PARAMETERS: p_test3 TYPE char10  MODIF ID m2,
                p_test4 TYPE char10  MODIF ID m2.
    SELECTION-SCREEN END OF BLOCK b2.
    * Declarations
    DATA: v_flag, v_flag1.
    INITIALIZATION.
      b1 = 'Button1'.
      b2 = 'Button2'.
      v_flag = 'X'.
      v_flag1 = 'X'.
    AT SELECTION-SCREEN.
    * Check the user command.
      IF sy-ucomm = 'USR1'.
        IF v_flag IS INITIAL.
          v_flag = 'X'.
        ELSE.
          CLEAR v_flag.
        ENDIF.
      ELSEIF sy-ucomm = 'USR2'.
        IF v_flag1 IS INITIAL.
          v_flag1 = 'X'.
        ELSE.
          CLEAR v_flag1.
        ENDIF.
      ENDIF.
    AT SELECTION-SCREEN OUTPUT.
      IF v_flag1 = 'X'.
        CALL FUNCTION 'ICON_CREATE'
          EXPORTING
            name   = icon_expand
            text   = 'Button 2'
            info   = 'Button 2'
          IMPORTING
            RESULT = b2
          EXCEPTIONS
            OTHERS = 0.
      ELSEIF v_flag1 IS INITIAL.
        CALL FUNCTION 'ICON_CREATE'
          EXPORTING
            name   = icon_collapse
            text   = 'Button 2'
            info   = 'Button 2'
          IMPORTING
            RESULT = b2
          EXCEPTIONS
            OTHERS = 0.
      ENDIF.
      IF v_flag = 'X'.
        CALL FUNCTION 'ICON_CREATE'
          EXPORTING
            name   = icon_expand
            text   = 'Button 1'
            info   = 'Button 1'
          IMPORTING
            RESULT = b1
          EXCEPTIONS
            OTHERS = 0.
      ELSEIF v_flag IS INITIAL.
        CALL FUNCTION 'ICON_CREATE'
          EXPORTING
            name   = icon_collapse
            text   = 'Button 1'
            info   = 'Button 1'
          IMPORTING
            RESULT = b1
          EXCEPTIONS
            OTHERS = 0.
      ENDIF.
      LOOP AT SCREEN.
    * Expand collapse block1
        IF v_flag = 'X' AND screen-group1 = 'M1'.
          screen-active = 0.
        ELSEIF v_flag IS INITIAL AND screen-group1 = 'M1'.
          screen-active = 1.
        ENDIF.
    * Expand collapse block2
        IF v_flag1 = 'X' AND screen-group1 = 'M2'.
          screen-active = 0.
        ELSEIF v_flag1 IS INITIAL AND screen-group1 = 'M2'.
          screen-active = 1.
        ENDIF.
        MODIFY SCREEN.
      ENDLOOP.
    Thanks
    Naren

  • [Forum FAQ] How to use parameter to control the Expand/Collapse drill-down options in SSRS report?

    In SQL Server Reporting Services (SSRS), drill-down is an action we can apply to any report item to hide and show other report items. They all are ways that we can organize and display data to help our users understand our report better. In this article,
    we are talking about how to use parameter to control the Expand/Collapse drill-down options in SSRS report.
    Consider that the report has a dataset (dsSales) with following fields: SalesTerritoryGroup, SalesTerritoryCountry, CalendarYear, SalesAmount.
    1. The report has the following group settings:
    Parent Group: SalesTerritoryGroup
     Child Group: SalesTerritoryCountry
      Child Group: CalendarYear
       Details: SalesAmount
    2. Add three parameters in the report:
    GroupExpand:
    Available Values: “Specify values”
    Label: Yes           Value: Yes
    Label: No            Value: No
    Default Values: “Specify values”
    Value: Yes
    CountryExpand:
    Available Values: “Specify values”
    Label: Yes           Value: =IIF(Parameters!GroupExpand.Value="No",Nothing,"Yes")
    Label: No            Value: No
    Default Values: “Specify values”
    Value: =IIF(Parameters!GroupExpand.Value="No","No","Yes")
    YearExpand:
    Available Values: “Specify values”
    Label: Yes          
    Value: =IIF(Parameters!GroupExpand.Value="No" or Parameters!CountryExpand.Value="No",Nothing,"Yes")
    Label: No            Value: No
    Default Values: “Specify values”
    Value: =IIF(Parameters!GroupExpand.Value="No" or Parameters!CountryExpand.Value="No","No","Yes")
    3. Right click SalesTerritoryCountry icon in the Row Groups dialog box, select Group Properties.
    4. Click Visibility in the left pane. Select “Show or hide based on an expression” and type with following expression:
    =IIF(Parameters!GroupExpand.Value="Yes", False, True)
    Select “Display can be toggled by this report item” option, and select “SalesTerritoryGroup” in the drop down list.
    5. Use the same method setting CalendarYear, (Details) drill-down with following expression:
    =IIF(Parameters!CountryExpand.Value="Yes", False, True)
    =IIF(Parameters!YearExpand.Value="Yes", False, True)
    6. Click SalesTerritoryGroup text box in the tablix. Select InitialToggleState property in the Properties dialog box, and type following expression:
    =IIF(Parameters!GroupExpand.Value="Yes", True, False)
    7. Use the same method setting SalesTerritoryCountry, CalendarYear text box with following expression:
    =IIF(Parameters!CountryExpand.Value="Yes", True, False)
    =IIF(Parameters!YearExpand.Value="Yes", True, False)
    After that, when we preview the report, we can use these three parameters to expand/collapse drill-down.
    Note:
    In our test, we may meet following issue. We can check the expression of InitialToggleState property to troubleshooting the issue.
    Applies to
    Reporting Services 2008
    Reporting Services 2008 R2
    Reporting Services 2012

    In SQL Server Reporting Services (SSRS), drill-down is an action we can apply to any report item to hide and show other report items. They all are ways that we can organize and display data to help our users understand our report better. In this article,
    we are talking about how to use parameter to control the Expand/Collapse drill-down options in SSRS report.
    Consider that the report has a dataset (dsSales) with following fields: SalesTerritoryGroup, SalesTerritoryCountry, CalendarYear, SalesAmount.
    1. The report has the following group settings:
    Parent Group: SalesTerritoryGroup
     Child Group: SalesTerritoryCountry
      Child Group: CalendarYear
       Details: SalesAmount
    2. Add three parameters in the report:
    GroupExpand:
    Available Values: “Specify values”
    Label: Yes           Value: Yes
    Label: No            Value: No
    Default Values: “Specify values”
    Value: Yes
    CountryExpand:
    Available Values: “Specify values”
    Label: Yes           Value: =IIF(Parameters!GroupExpand.Value="No",Nothing,"Yes")
    Label: No            Value: No
    Default Values: “Specify values”
    Value: =IIF(Parameters!GroupExpand.Value="No","No","Yes")
    YearExpand:
    Available Values: “Specify values”
    Label: Yes          
    Value: =IIF(Parameters!GroupExpand.Value="No" or Parameters!CountryExpand.Value="No",Nothing,"Yes")
    Label: No            Value: No
    Default Values: “Specify values”
    Value: =IIF(Parameters!GroupExpand.Value="No" or Parameters!CountryExpand.Value="No","No","Yes")
    3. Right click SalesTerritoryCountry icon in the Row Groups dialog box, select Group Properties.
    4. Click Visibility in the left pane. Select “Show or hide based on an expression” and type with following expression:
    =IIF(Parameters!GroupExpand.Value="Yes", False, True)
    Select “Display can be toggled by this report item” option, and select “SalesTerritoryGroup” in the drop down list.
    5. Use the same method setting CalendarYear, (Details) drill-down with following expression:
    =IIF(Parameters!CountryExpand.Value="Yes", False, True)
    =IIF(Parameters!YearExpand.Value="Yes", False, True)
    6. Click SalesTerritoryGroup text box in the tablix. Select InitialToggleState property in the Properties dialog box, and type following expression:
    =IIF(Parameters!GroupExpand.Value="Yes", True, False)
    7. Use the same method setting SalesTerritoryCountry, CalendarYear text box with following expression:
    =IIF(Parameters!CountryExpand.Value="Yes", True, False)
    =IIF(Parameters!YearExpand.Value="Yes", True, False)
    After that, when we preview the report, we can use these three parameters to expand/collapse drill-down.
    Note:
    In our test, we may meet following issue. We can check the expression of InitialToggleState property to troubleshooting the issue.
    Applies to
    Reporting Services 2008
    Reporting Services 2008 R2
    Reporting Services 2012

  • How do I remove the "TOC" btn in the playbar WITHOUT removing the TOC "Expand/Collapse" icon?

    I am working in CP7 on a project with a Table of Contents that is set to 'Overlay'. The client has requested that I remove the "TOC" button in the playbar, without removing the TOC "Expand/Collapse" icon, so that the user can still hide/reveal the TOC when necessary. The only control I can find is the "Show TOC" checkbox under Project > Table of Contents. However, un-checking this option removes both the "TOC" button AND the "Expand/Collapse" icons. Is it possible to remove just the "TOC" button in the playbar?

    If you are using SWF output you can always edit the playbar in Flash and remove it.
    If HTML5 you can edit the JavaScript out put to remove the button from the playbar.

  • ALV: how to display only subtotals and total rows in the output

    ALV: how to display only subtotals and total rows in the output
    i am getting output
    i am getting subtotals for respective fields
    but i want to display only subtotals and totals rows in the output
    i have tried the
    totals_only   parameter in slis_layout_alv
    but it is not working.

    hi,
    For TOTAL
    For the amount field / quantity field in the field catalog give DO_SUM = 'X'    for WHOLE total
    For SUBTOTAL
    For subtotal you will have to create an internal table sort..Let's say you want to do subtotal for each customer..
    DATA: lt_sort type SLIS_T_SORTINFO_ALV,
    ls_sort type slis_sortinfo_alv.
    CLEAR ls_sort.
    ls_sort-spos = 1.
    ls_sort-fieldname = 'Give the field name that you do the sum'.
    ls_sort-up = 'X'.
    ls_sort-subtot = 'X'.
    APPEND ls_sort TO lt_sort.
    fieldcatalog-do_dum = 'X'.
    for subtotals
    WA_SORT-FIELDNAME = 'ERSDA'.
    WA_SORT-SPOS = '2'.
    WA_SORT-UP = 'X'.
    WA_SORT-SUBTOTAL = 'X'.
    APPEND WA_SORT TO IT_SORT.
    Refer
    http://help.sap.com/saphelp_erp2004/helpdata/en/ee/c8e056d52611d2b468006094192fe3/content.htm
    http://sap.ittoolbox.com/groups/technical-functional/sap-dev/doesnt-function-event-subtotal_text-in-alv-713787
    regards,
    Prabhu
    reward if it is helpful

  • Expand/Collapse all the Bookmarks in a PDF file

    Hi,
    This is my first message on the board :-)
    I work with very large PDF files (i.e 2000 pages, 700 bookmarks on 5 or 6 levels!) and I'm looking for a script (Acrobat 9 Pro) allowing to expand/collapse all the bookmarks in a PDF file.
    Thanks in advance for your valuable help,
    Cheers
    Antonella

    The Acrobat Javascript Scripting reference (http://partners.adobe.com/public/developer/en/acrobat/sdk/AcroJS.pdf) describes how to use scripting to access bookmarks and how to open and close them, which is what you're looking for.
    I suggest you read the reference and make a function that will do the job for you.
    That's the way I would do it.
    I don't think you can access the keyboard shortcuts "/" and "Shift + *" via scripting.
    Torben.

  • JTree with XML content expand/collapse problem

    Hello all,
    I'm having this very weird problem with a JTree I use to display the contents of an XML file. I use the DOM parser (and not JDOM since I want the application to run as an applet as well, and don't want to have any external libraries for the user to download) and have a custom TreeModel and TreeNode implementations to wrap the DOM nodes so that they are displayed by the JTree.
    I have also added a popup menu in the tree, for the user to be able to expand/collapse all nodes under the selected one (i.e. a recursive method).
    When expandAll is run, everything works fine and the children of the selected node are expanded (and their children and so on).
    However, after the expansion when I run the collapseAll function, even though the selected node collapses, when I re-expand it (manually not by expandAll) all of it's children are still fully open! Even if I collapse sub-elements of the node manually and then collapse this node and re-expand it, it "forgets" the state of it's children and shows them fully expanded.
    In other words once I use expandAll no matter what I do, the children of this node will be expanded (once I close it and re-open it).
    Also after running expandAll the behaviour(!) of the expanded nodes change: i have tree.setToggleClickCount(1); but on the expanded nodes I need to double-click to collapse them.
    I believe the problem is related to my implementations of TreeModel and TreeNode but after many-many hours of trying to figure out what's happening I'm desperate... Please help!
    Here's my code:
    public class XMLTreeNode implements TreeNode 
         //This class wraps a DOM node
        org.w3c.dom.Node domNode;
        protected boolean allowChildren;
        protected Vector children;
        //compressed view (#text).
         private static boolean compress = true;   
        // An array of names for DOM node-types
        // (Array indexes = nodeType() values.)
        static final String[] typeName = {
            "none",
            "Element",
            "Attr",
            "Text",
            "CDATA",
            "EntityRef",
            "Entity",
            "ProcInstr",
            "Comment",
            "Document",
            "DocType",
            "DocFragment",
            "Notation",
        static final int ELEMENT_TYPE =   1;
        static final int ATTR_TYPE =      2;
        static final int TEXT_TYPE =      3;
        static final int CDATA_TYPE =     4;
        static final int ENTITYREF_TYPE = 5;
        static final int ENTITY_TYPE =    6;
        static final int PROCINSTR_TYPE = 7;
        static final int COMMENT_TYPE =   8;
        static final int DOCUMENT_TYPE =  9;
        static final int DOCTYPE_TYPE =  10;
        static final int DOCFRAG_TYPE =  11;
        static final int NOTATION_TYPE = 12;
        // The list of elements to display in the tree
       static String[] treeElementNames = {
            "node",
      // Construct an Adapter node from a DOM node
      public XMLTreeNode(org.w3c.dom.Node node) {
        domNode = node;
      public String toString(){
           if (domNode.hasAttributes()){
                return domNode.getAttributes().getNamedItem("label").getNodeValue();
           }else return domNode.getNodeName();      
      public boolean isLeaf(){ 
           return (this.getChildCount()==0);
      boolean treeElement(String elementName) {
          for (int i=0; i<treeElementNames.length; i++) {
            if ( elementName.equals(treeElementNames)) return true;
    return false;
    public int getChildCount() {
         if (!compress) {   
    return domNode.getChildNodes().getLength();
    int count = 0;
    for (int i=0; i<domNode.getChildNodes().getLength(); i++) {
    org.w3c.dom.Node node = domNode.getChildNodes().item(i);
    if (node.getNodeType() == ELEMENT_TYPE
    && treeElement( node.getNodeName() ))
    // Note:
    // Have to check for proper type.
    // The DOCTYPE element also has the right name
    ++count;
    return count;
    public boolean getAllowsChildren() {
         // TODO Auto-generated method stub
         return true;
    public Enumeration children() {
         // TODO Auto-generated method stub
         return null;
    public TreeNode getParent() {
         // TODO Auto-generated method stub
         return null;
    public TreeNode getChildAt(int searchIndex) {
    org.w3c.dom.Node node =
    domNode.getChildNodes().item(searchIndex);
    if (compress) {
    // Return Nth displayable node
    int elementNodeIndex = 0;
    for (int i=0; i<domNode.getChildNodes().getLength(); i++) {
    node = domNode.getChildNodes().item(i);
    if (node.getNodeType() == ELEMENT_TYPE
    && treeElement( node.getNodeName() )
    && elementNodeIndex++ == searchIndex) {
    break;
    return new XMLTreeNode(node);
    public int getIndex(TreeNode tnode) {
         if (tnode== null) {
              throw new IllegalArgumentException("argument is null");
         XMLTreeNode child=(XMLTreeNode)tnode;
         int count = getChildCount();
         for (int i=0; i<count; i++) {
              XMLTreeNode n = (XMLTreeNode)this.getChildAt(i);
              if (child.domNode == n.domNode) return i;
         return -1; // Should never get here.
    public class XMLTreeModel2 extends DefaultTreeModel
         private Vector listenerList = new Vector();
         * This adapter converts the current Document (a DOM) into
         * a JTree model.
         private Document document;
         public XMLTreeModel2 (Document doc){
              super(new XMLTreeNode(doc));
              this.document=doc;
         public Object getRoot() {
              //System.err.println("Returning root: " +document);
              return new XMLTreeNode(document);
         public boolean isLeaf(Object aNode) {
              return ((XMLTreeNode)aNode).isLeaf();
         public int getChildCount(Object parent) {
              XMLTreeNode node = (XMLTreeNode) parent;
    return node.getChildCount();
         public Object getChild(Object parent, int index) {
    XMLTreeNode node = (XMLTreeNode) parent;
    return node.getChildAt(index);
         public int getIndexOfChild(Object parent, Object child) {
    if (parent==null || child==null )
         return -1;
              XMLTreeNode node = (XMLTreeNode) parent;
    return node.getIndex((XMLTreeNode) child);
         public void valueForPathChanged(TreePath path, Object newValue) {
    // Null. no changes
         public void addTreeModelListener(TreeModelListener listener) {
              if ( listener != null
    && ! listenerList.contains( listener ) ) {
    listenerList.addElement( listener );
         public void removeTreeModelListener(TreeModelListener listener) {
              if ( listener != null ) {
    listenerList.removeElement( listener );
         public void fireTreeNodesChanged( TreeModelEvent e ) {
    Enumeration listeners = listenerList.elements();
    while ( listeners.hasMoreElements() ) {
    TreeModelListener listener =
    (TreeModelListener) listeners.nextElement();
    listener.treeNodesChanged( e );
         public void fireTreeNodesInserted( TreeModelEvent e ) {
    Enumeration listeners = listenerList.elements();
    while ( listeners.hasMoreElements() ) {
    TreeModelListener listener =
    (TreeModelListener) listeners.nextElement();
    listener.treeNodesInserted( e );
         public void fireTreeNodesRemoved( TreeModelEvent e ) {
    Enumeration listeners = listenerList.elements();
    while ( listeners.hasMoreElements() ) {
    TreeModelListener listener =
    (TreeModelListener) listeners.nextElement();
    listener.treeNodesRemoved( e );
         public void fireTreeStructureChanged( TreeModelEvent e ) {
    Enumeration listeners = listenerList.elements();
    while ( listeners.hasMoreElements() ) {
    TreeModelListener listener =
    (TreeModelListener) listeners.nextElement();
    listener.treeStructureChanged( e );
    The collapseAll, expandAll code (even though I m pretty sure that's not the problem since they work fine on a normal JTree):
        private void collapseAll(TreePath tp){
             if (tp==null) return;
             Object node=tp.getLastPathComponent();
             TreeModel model=tree.getModel();
             if (!model.isLeaf(node)){
                  tree.collapsePath(tp);
                  for (int i=0;i<model.getChildCount(node);i++){
                  //for (int i = node.childCount()-4;i>=0;i--){
                       collapseAll(tp.pathByAddingChild(model.getChild(node,i)));
                  tree.collapsePath(tp);
        private void expandAll(TreePath tp){
             if (tp==null) return;
             Object node=tp.getLastPathComponent();
             TreeModel model=tree.getModel();
             if (!model.isLeaf(node)){
                  tree.expandPath(tp);
                  for (int i=0;i<model.getChildCount(node);i++){
                  //for (int i = node.childCount()-4;i>=0;i--){
                       expandAll(tp.pathByAddingChild(model.getChild(node,i)));

    Hi,
    Iam not facing this problem. To CollapseAll, I do a tree.getModel().reload() which causes all nodes to get collapsed and remain so even if I reopen them manually.
    Hope this helps.
    cheers,
    vidyut

  • ADF TreeTable: selective expand/collapse of rows

    Hi
    I have a query. How can i selectively expand or collapse nodes in a Tree Table. I have got the tree model but i need to expand even further so that the nodes can be expanded/collapsed initially based on some logic.
    It would be of great hhelp if any1 has some solution to it

    This doesnt work
    What i am doing:
    1. I have a TreeTable
    2. Its value is a TreeModel whose each node is my customized Object : MyObject
    So if i use this kinda code which is in ur tutorial
    CollectionModel model = (CollectionModel)tree1.getValue();
    treeBinding = (JUCtrlHierBinding)model.getWrappedData();
    I get a classcastexception:
    MyObject cannot be cast to oracle.jbo.uicli.binding.JUCtrlHierBinding
    since model.getWrappedData(); returns the root node of the tree which should be of my customized Object type

Maybe you are looking for

  • Question about animated GIF image

    I am working on a new site. My client (using Safari 1.x with OS10.3x) tells me that this ani GIF doesn't load properly. I see it fine in 10.4x, with both Safari 2x and FF1.5x, and on the PC. Whazzup wit dat? http://www.murraytestsite.com/nni/n_defaul

  • From which table snpRef.getInfo picks values

    hi, I want to know from which table these value comes <?=snpRef.getInfo("DEST_DSERV_NAME") ?> and if the session is manually restarted after correcting the DBLINK related to the target DB why it picks the previous values . I want to know all the step

  • BI7 : BRAIN 667 error when modifying a KF in BEX query

    Hello, When we modify a KF (standard or calculated) property in a Bex query, we have a Brain 667 error (Query handle xxxx is invalid . Message no. BRAIN667). When it's run from the WAD, the error message is BRAIN 282. Does any body know what's this a

  • Prompts with date

    Hello, I need a help how to react for two various inputs in prompt. Here it is. (in Webi) I have two prompts for user that require enter number of month (Jan -> 1, Feb -> 2 u2026) and number of year. After that report shows results (revenues) for ent

  • Audio alert for email when non set

    I have noticed that since the update to iOS 5.0.1, some incomng emails trigger an audio alert when they are received, but I don't have audio alerts set for email. The alert tone is tri-tone, which I don't even have set for any type of alert..! It's b