Subscreen in a selection screen

hi,
How to create subscreens in aselection screen and how to access the values entered in sub screen.

Hi Ronie,
you'll find some info on ABAP docu:
TABLES: SPFLI.
SELECT-OPTIONS SEL0 FOR SY-TABIX.
PARAMETERS PAR0(5).
SELECTION-SCREEN BEGIN OF SCREEN 123 AS WINDOW TITLE TEXT-456.
  SELECTION-SCREEN BEGIN OF BLOCK BL1 WITH FRAME TITLE TEXT-BL1
                                      NO INTERVALS.
    SELECT-OPTIONS SEL1 FOR SY-SUBRC.
    PARAMETERS     PAR1 LIKE SPFLI-CARRID.
    SELECTION-SCREEN COMMENT /10(20) TEXT-COM.
  SELECTION-SCREEN END OF BLOCK BL1.
SELECTION-SCREEN END OF SCREEN 123.
SELECTION-SCREEN ULINE.
SELECTION-SCREEN BEGIN OF SCREEN 99.
  SELECTION-SCREEN PUSHBUTTON 15(25) PUBU
                   USER-COMMAND US01.
  SELECT-OPTIONS SEL2 FOR SPFLI-CONNID.
  PARAMETERS     PAR2 TYPE I.
SELECTION-SCREEN END OF SCREEN 99.
To access the values, just ask for the names of the parameters you just defined.
I hope it helps. BR,
Alvaro

Similar Messages

  • Designing the table grid in subscreen in a selection screen..

    Hi all,
    Actually my requirement is there is a check box in the selection screen,If its checked then we have to display a subscreen with the details
    "Emp type"      "Empname"        "Monthly"      "Yearly"
       PM                Glen                 50000         600000          
       SM                Cross               40000         480000          
       TM                Mary                40000         480000          
       GM                Hary                 60000         720000          
    should be dislayed as a table grid.
    I have designed the screen but its not possible to give the headers
    "Emp type"      "Empname"        "Monthly"      "Yearly"
    Can anyone solve this issue for me..Thanks in advance

    I know to call the window but my problem is
    I have defined subscreen as:
    SELECTION-SCREEN BEGIN OF SCREEN 300 AS WINDOW.
    SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE text-030.
    SELECTION-SCREEN BEGIN OF LINE.
    PARAMETERS : c_air AS CHECKBOX MODIF ID sss USER-COMMAND ucom.
    SELECTION-SCREEN COMMENT 4(18) text-003 FOR FIELD p_air.
    PARAMETERS : p_air TYPE vbak-vbeln MODIF ID sss .
    **SELECTION-SCREEN COMMENT 34(10) text-004 FOR FIELD p_air1.
    **It is not accepting this
    PARAMETERS : p_air1 TYPE p DECIMALS 2.
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN END OF BLOCK b3.
    SELECTION-SCREEN END OF SCREEN 300.
    i am able to see one comment but can i display more than one comment

  • Selection-screen as subscreen in other selection screen

    Hi,
    is it possible to attached one selection screen, which has been created as subscreen (selection-screen begin of sreen 2000 as subscreen) to the other one (standard one 1000), created just with selection-screen commands (begin of block, etc)?
    Thank you.
    J

    Hi,
    Try using tab strips in the selection screen..
    http://help.sap.com/saphelp_nw04/helpdata/EN/00/deb23789e95378e10000009b38f8cf/content.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/e7/deb237b9a9a968e10000009b38f8cf/content.htm
    Thanks
    Naren

  • How to call subscreen and provide selection screen in subscreen

    Hi experts,
    please anybody suggest me how to call subscreen in module pool screen and provide selection screen in that sub screen.
    please tell me how to design this subscreen in module pool screen.
    adevanced
    thank you
    regards
    vijay krishna

    Hi,
    If you need to have select-options in module pool then follow these steps:-
    To implement select-options in module pool, first design two input/output fields (textboxes) for the low and high value of the field and name it as <field_name>-low and <field_name>-high.
    Create a button next the high value textbox and keep its sutaible function code.
    Now, to call the pop-up on this button click, we have to call the same pop-up as in standard      select-options. For this we have to use the function module COMPLEX_SELECTIONS_DIALOG.
    For this FM we have to pass the table name, field name and the range for the field whose range needs to fill when using the popup screen.
    To pass the table name and field name details into the FM, we have to declare as:
    DATA : tab TYPE rstabfield.
    This structure comprises of table name and field name.
    Pass these details in program as:-
    u2003
    *-- clear table and field details
      CLEAR tab.
    *-- append for range depending on the button clicked
    *   either for sales order or line item
      CASE sy-ucomm.
        WHEN 'VBELN'.
          tab-tablename = 'VBAP'.
          tab-fieldname = 'VBELN'.
    *--To call the popup screen for the field use code:-
      CALL FUNCTION 'COMPLEX_SELECTIONS_DIALOG'
        EXPORTING
          title             = text-002  u201Ctitle text
          text              = ' '
          signed            = 'X'
          search_help       = v_shelp u201Csearch help if required
          tab_and_field     = tab u201Ctable and field name details
        TABLES
          range             = r_vbeln u201Crange for the associated field
        EXCEPTIONS
          no_range_tab      = 1
          cancelled         = 2
          internal_error    = 3
          invalid_fieldname = 4
          OTHERS            = 5.
    Hope this helps you.
    Regards,
    Tarun

  • Variants with subscreens in selection screen

    I have a screen that contains a subscreens....this subscreen is a selection-screen....i need to save and load variants for this selection-screen.
    My code:
    REPORT  zprueba_02.
    ----u2013
      TABLES                                                        *
    ----u2013
    TABLES: spfli.
    ----u2013
      TYPE-POOLS                                                    *
    ----u2013
    TYPE-POOLS: slis.
    ----u2013
      INTERNAL TABLES                                               *
    ----u2013
    DATA: t_rkey TYPE STANDARD TABLE OF rsvarkey WITH HEADER LINE,
          t_selctab TYPE STANDARD TABLE OF rsscr WITH HEADER LINE,
          t_vari TYPE STANDARD TABLE OF rvari WITH HEADER LINE,
          it_extab TYPE slis_t_extab,
          wa_extab LIKE LINE OF it_extab.
    ----u2013
      VARIABLES                                                     *
    ----u2013
    DATA: ok_code TYPE sy-ucomm,
          w_variant TYPE rsvar-variant,
          w_user_vari TYPE rsvar-variant,
          w_vari_report TYPE rsvar-report,
          sel_variant TYPE rsvar-variant,
          sel_variant_text TYPE rsvar-vtext,
          w_report TYPE rsvar-report,
          variant_exists TYPE c.
    ----u2013
      SELECTION-SCREEN                                              *
    ----u2013
    SELECTION-SCREEN BEGIN OF SCREEN 101 AS SUBSCREEN.
    SELECT-OPTIONS: s_carrid FOR spfli-carrid,
                    s_connid FOR spfli-connid.
    SELECTION-SCREEN END OF SCREEN 101.
    ----u2013
      INITIALIZATION                                                *
    ----u2013
    INITIALIZATION.
      w_report = sy-repid.
      PERFORM variant_exists.
    ----u2013
      START-OF-SELECTION                                            *
    ----u2013
    START-OF-SELECTION.
      CALL SCREEN 0100.
    *&      Module  STATUS_0100  OUTPUT                               *
    MODULE status_0100 OUTPUT.
      SET PF-STATUS '100' EXCLUDING it_extab.
    ENDMODULE.                 " STATUS_0100  OUTPUT
    *&      Module  USER_COMMAND_0100  INPUT                          *
    MODULE user_command_0100 INPUT.
      ok_code = sy-ucomm.
      CASE ok_code.
        WHEN 'SAVE'.
          PERFORM save_variant.
          PERFORM variant_exists.
        WHEN 'BACK'.
          LEAVE TO SCREEN 0.
        WHEN 'GET_VAR'.
          PERFORM load_variant.
        WHEN 'DEL_VAR'.
          PERFORM delete_variant.
          PERFORM variant_exists.
      ENDCASE.
    ENDMODULE.                 " USER_COMMAND_0100  INPUT
    *&      Form  SAVE_VARIANT                                        *
    FORM save_variant.
      t_rkey-report = sy-repid.
      APPEND t_rkey.
      CALL FUNCTION 'RS_VARIANT_SAVE_FROM_SELSCREEN'
        EXPORTING
          curr_report          = w_report
         USER_VARI            = SY-SLSET
          vari_report          = w_report
        IMPORTING
          variant              = w_variant
        TABLES
          p_sscr               = t_selctab
          p_vari               = t_vari
        EXCEPTIONS
          illegal_variant_name = 1
          not_authorized       = 2
          no_report            = 3
          report_not_existent  = 4
          report_not_supplied  = 5
          OTHERS               = 6.
      t_rkey-variant = w_variant.
      MODIFY t_rkey INDEX 1.
      CALL FUNCTION 'RS_RWSET_SAVE_VARIANT'
        EXPORTING
          rkey    = t_rkey
        TABLES
          selctab = t_selctab.
    ENDFORM.                    " SAVE_VARIANT
    *&      Form  LOAD_VARIANT                                        *
    FORM load_variant.
      PERFORM choose_variant CHANGING sel_variant.
      IF sel_variant NE space.
        CALL FUNCTION 'RS_SUPPORT_SELECTIONS'
          EXPORTING
            report               = w_report
            variant              = sel_variant
          EXCEPTIONS
            variant_not_existent = 1
            variant_obsolete     = 2
            OTHERS               = 3.
      ENDIF.
    ENDFORM.                    " LOAD_VARIANT
    *&      Form  DELETE_VARIANT                                      *
    FORM delete_variant.
      PERFORM choose_variant CHANGING sel_variant.
      IF sel_variant NE space.
        CALL FUNCTION 'RS_VARIANT_DELETE'
          EXPORTING
            report               = w_report
            variant              = sel_variant
            flag_confirmscreen   = 'X'
            flag_delallclient    = 'X'
          EXCEPTIONS
            not_authorized       = 1
            not_executed         = 2
            no_report            = 3
            report_not_existent  = 4
            report_not_supplied  = 5
            variant_locked       = 6
            variant_not_existent = 7
            no_corr_insert       = 8
            variant_protected    = 9
            OTHERS               = 10.
      ENDIF.
    ENDFORM.                    " DELETE_VARIANT
    ----u2013
          FORM CHOOSE_VARIANT                                       *
    ----u2013
    FORM choose_variant CHANGING l_sel_variant.
      CALL FUNCTION 'RS_VARIANT_CATALOG'
        EXPORTING
          report               = w_report
          masked               = 'X'
        IMPORTING
          sel_variant          = sel_variant
          sel_variant_text     = sel_variant_text
        EXCEPTIONS
          no_report            = 1
          report_not_existent  = 2
          report_not_supplied  = 3
          no_variants          = 4
          no_variant_selected  = 5
          variant_not_existent = 6
          OTHERS               = 7.
    ENDFORM.                    "CHOOSE_VARIANT
    *&      Form  VARIANT_EXISTS                                      *
    FORM variant_exists.
      CALL FUNCTION 'RS_VARIANT_FOR_ONE_SCREEN'
        EXPORTING
          program        = w_report
          dynnr          = '0101'
        IMPORTING
          variant_exists = variant_exists.
      IF variant_exists EQ 'X'.
        CLEAR: wa_extab, it_extab.
        REFRESH it_extab.
      ELSE.
        CLEAR: wa_extab, it_extab.
        REFRESH it_extab.
        wa_extab-fcode = 'GET_VAR'.
        APPEND wa_extab TO it_extab.
      ENDIF.
    ENDFORM.                    " VARIANT_EXISTS
    At include modul i have:
    PROCESS BEFORE OUTPUT.
      MODULE status_0100.
      CALL SUBSCREEN sb_0001 INCLUDING w_report '0101'.
    PROCESS AFTER INPUT.
      MODULE user_command_0100.
      CALL SUBSCREEN sb_0001.
    and i have declared in the screen a subscreen area called sb_001.
    When i try to save the variant, the next error:
    Selection screen 0100 contains no object.

    I think error is coming from function module RS_VARIANT_SAVE_FROM_SELSCREEN
    try to use function RS_REFRESH_FROM_SELECTOPTIONS toget contents of fields, then save a variant with this contents
    -> check if variant already exists with RS_VARIANT_EXISTS
    -> if exists : RS_VARIANT_CHANGE
    -> if not exists : RS_CREATE_VARIANT

  • Issue with tabbed block in selection screen

    Hi All,
    I have created a report program with the following code.
    SELECTION-SCREEN BEGIN OF SCREEN 100 AS SUBSCREEN.
    PARAMETERS: p1 TYPE c LENGTH 10.
    SELECTION-SCREEN END OF SCREEN 100.
    SELECTION-SCREEN BEGIN OF SCREEN 200 AS SUBSCREEN.
    PARAMETERS: q1 TYPE c LENGTH 10.
    SELECTION-SCREEN END OF SCREEN 200.
    SELECTION-SCREEN: BEGIN OF TABBED BLOCK mytab FOR 10 LINES,
                      TAB (20) button1 USER-COMMAND push1,
                      TAB (20) button2 USER-COMMAND push2,
                      END OF BLOCK mytab.
    INITIALIZATION.
      button1 = 'Selection Screen 1'.
      button2 = 'Selection Screen 2'.
      mytab-prog = sy-repid.
      mytab-dynnr = 0100.
      mytab-activetab = 'PUSH1'.
    AT SELECTION-SCREEN.
      CASE sy-dynnr.
        WHEN 1000.
          CASE sy-ucomm.
            WHEN 'PUSH1'.
              mytab-dynnr = 100.
            WHEN 'PUSH2'.
              mytab-dynnr = 200.
          ENDCASE.
      ENDCASE.
    Execute the program and click on the second tab-page. Now, click on the 'Execute' button or press F8 (there is no specific functionality coded here).
    The issue now is that the first tab-page is displayed, instead of the second tab remaining displayed. I require the navigation to remain within the second tab-page after the EXECUTE button is clicked.
    Could someone help me out with this issue?
    Regards,
    Dinup
    Edited by: Dinup Sudhakaran on Feb 18, 2008 1:40 PM

    Hi,
    Go through below document with example code.
    It will help you.
    Tabstrip Controls on Selection Screens
    As with screens, you can now use tabstrip controls on selection screens. To do this, you must define a tabstrip area and the associated tab pages, and assign a subscreen to the tab pages. You do not have to (indeed, cannot) declare the tabstrip control or program the screen flow logic in your ABAP program, since both are automatically generated.
    To define a tabstrip area with tab pages, use the following statements in your selection screen definition:
    SELECTION-SCREEN: BEGIN OF TABBED BLOCK <tab_area> FOR <n> LINES,
                      TAB (<len>) <tab1> USER-COMMAND <ucom1>
                                  [DEFAULT [PROGRAM <prog>] SCREEN <scrn>],
                      TAB (<len>) <tab2> USER-COMMAND <ucom2>
                                  [DEFAULT [PROGRAM <prog>] SCREEN <scrn>],
                      END OF BLOCK <tab_area>.
    This defines a tabstrip control <tab_area> with size <n>. The tab pages <tab1>, <tab2>… are assigned to the tab area. <len> defines the width of the tab title. You must assign a function code <ucom> area to each tab title. You can find out the function code from the field SY-UCOMM in the AT SELECTION-SCREEN event.
    For each tab title, the system automatically creates a character field in the ABAP program with the same name. Before the selection screen is displayed, you can assign a text to the field. This then appears as the title of the corresponding tab page on the selection screen.
    You must assign a subscreen to each tab title. This will be displayed in the tab area when the user chooses that title. You can assign one of the following as a subscreen:
    A subscreen screen defined using the Screen Painter.
    A selection screen subscreen, defined in an ABAP program.
    You can make the assignment either statically in the program or dynamically at runtime. If, at runtime, one of the tab titles has no subscreen assigned, a runtime error occurs.
    Static assignment
    Use the DEFAULT addition when you define the tab title. You can specify an ABAP program and one of its subscreens. If you do not specify a program, the system looks for the subscreen in the current program. When the user chooses the tab title, it is activated, and the subscreen is assigned to the tabstrip area. The static assignment is valid for the entire duration of the program, but can be overwritten dynamically before the selection screen is displayed.
    Dynamic assignment
    For each tab area, the system automatically creates a structure in the ABAP program with the same name. This structure has three components – PROG, DYNNR, and ACTIVETAB. When you assign the subscreens statically, the structure contains the name of the ABAP program containing the subscreen, the number of the subscreen, and the name of the tab title currently active on the selection screen (and to which these values are assigned). The default active tab page is the first page. You can assign values to the fields of the structure before the selection screen is displayed, and so set a subscreen dynamically.
    If you assign a normal subscreen screen to a tab title, the dialog modules containing its flow logic must be defined in the current ABAP program. If the subscreen is a selection screen, user actions will trigger the AT SELECTION-SCREEN event and its variants (see Selection Screen Processing). This includes when the user chooses a tab title. If one selection screen is included on another, AT SELECTION-SCREEN will be triggered at least twice – firstly for the "included" selection screen, then for the selection screen on which it appears.
    REPORT demo_sel_screen_with_tabstrip.
    DATA flag(1) TYPE c.
    SUBSCREEN 1
    SELECTION-SCREEN BEGIN OF SCREEN 100 AS SUBSCREEN.
    SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME.
    PARAMETERS: p1(10) TYPE c,
                p2(10) TYPE c,
                p3(10) TYPE c.
    SELECTION-SCREEN END OF BLOCK b1.
    SELECTION-SCREEN END OF SCREEN 100.
    SUBSCREEN 2
    SELECTION-SCREEN BEGIN OF SCREEN 200 AS SUBSCREEN.
    SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME.
    PARAMETERS: q1(10) TYPE c OBLIGATORY,
                q2(10) TYPE c OBLIGATORY,
                q3(10) TYPE c OBLIGATORY.
    SELECTION-SCREEN END OF BLOCK b2.
    SELECTION-SCREEN END OF SCREEN 200.
    STANDARD SELECTION SCREEN
    SELECTION-SCREEN: BEGIN OF TABBED BLOCK mytab FOR 10 LINES,
                      TAB (20) button1 USER-COMMAND push1,
                      TAB (20) button2 USER-COMMAND push2,
                      TAB (20) button3 USER-COMMAND push3
                                       DEFAULT SCREEN 300,
                      END OF BLOCK mytab.
    INITIALIZATION.
      button1 = text-010.
      button2 = text-020.
      button3 = text-030.
      mytab-prog = sy-repid.
      mytab-dynnr = 100.
      mytab-activetab = 'BUTTON1'.
    AT SELECTION-SCREEN.
      CASE sy-dynnr.
        WHEN 1000.
          CASE sy-ucomm.
            WHEN 'PUSH1'.
              mytab-dynnr = 100.
              mytab-activetab = 'BUTTON1'.
            WHEN 'PUSH2'.
              mytab-dynnr = 200.
              mytab-activetab = 'BUTTON2'.
          ENDCASE.
        WHEN 100.
          MESSAGE s888(sabapdocu) WITH text-040 sy-dynnr.
        WHEN 200.
          MESSAGE s888(sabapdocu) WITH text-040 sy-dynnr.
      ENDCASE.
    MODULE init_0100 OUTPUT.
      LOOP AT SCREEN.
        IF screen-group1 = 'MOD'.
          CASE flag.
            WHEN 'X'.
              screen-input = '1'.
            WHEN ' '.
              screen-input = '0'.
          ENDCASE.
          MODIFY SCREEN.
        ENDIF.
      ENDLOOP.
    ENDMODULE.
    MODULE user_command_0100 INPUT.
      MESSAGE s888(sabapdocu) WITH text-050 sy-dynnr.
      CASE sy-ucomm.
        WHEN 'TOGGLE'.
          IF flag = ' '.
            flag = 'X'.
          ELSEIF flag = 'X'.
            flag = ' '.
          ENDIF.
      ENDCASE.
    ENDMODULE.
    START-OF-SELECTION.
      WRITE: / 'P1:', p1,'Q1:', q1,
             / 'P2:', p2,'Q2:', q2,
             / 'P3:', p3,'Q3:', q3.
    This program defines two selection screens – 100 and 200, as subscreens, and places a tabstrip control area with three tab pages on the standard selection screen. A subscreen screen 300 (from the same program) is assigned statically to the third tab page.
    The layout of screen 300 is:
    The input/output fields P1 to Q3 are defined by using the parameters from the ABAP program The pushbutton has the function code TOGGLE.
    The screen flow logic for screen 300 is as follows:
    PROCESS BEFORE OUTPUT.
      MODULE init_0100.
    PROCESS AFTER INPUT.
      MODULE user_command_0100.
    Both dialog modules are defined in the ABAP program.
    When you run the program, the standard selection screen appears. In the INITIALIZATION event, the texts are defined on the tab titles, the subscreen selection screen 100 is assigned to the tab area, and the first tab title is activated.
    User actions on the selection screen are processed in the AT SELECTION-SCREEN event block. In particular, it is here that the subscreens are assigned and tab titles activated when the user chooses one of the first two tab titles. This is not necessary for the third tab title, since the dynamic assignment (screen 300) is always placed in the structure MYTAB when the user chooses it.
    Before the subscreen screen is displayed, the PBO module INIT_100 is executed. User actions on the subscreen screen trigger the PAI module. This includes when the user chooses a tab title. After that, the AT SELECTION-SCREEN event is triggered.
    Messages in the status line show where an action has been processed.

  • 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

  • Table control on Tabbed selection-screen

    Hi All,
    My Requirement is: I have a tabbed selection-screen with 3 tabs.
    On one of the tabs I have to include a Table control.
    Currently I'm displaying Table control as Pop-up . But I want that on the screen itself.
    Please suggest me how to do this.

    Once i have done this. but only table control was there on the screen.
    design a screen and place one table control.
    y will declare one default subscreen in the selection screen tab declaration,
    and
    At selection-screen.
    change the value of the deflaut screen to ur designed screen.
    below is one example
    controls: tab type tableview using screen 201.
    SELECTION-SCREEN BEGIN OF TABBED BLOCK object FOR 50 LINES.
    SELECTION-SCREEN TAB (60) tab_cls USER-COMMAND ut_cls
                          DEFAULT SCREEN 101.
    SELECTION-SCREEN TAB (60) tab_rcp USER-COMMAND ut_rcp
                          DEFAULT SCREEN 200.
    SELECTION-SCREEN END OF BLOCK object.
    SELECTION-SCREEN BEGIN OF SCREEN 0101 AS SUBSCREEN NESTING LEVEL 2.
    parameters: P_lifnr type lfa1-lifnr.
    SELECTION-SCREEN END OF SCREEN 0101.
    SELECTION-SCREEN BEGIN OF SCREEN 0200 AS SUBSCREEN NESTING LEVEL 2.
    parameters: p_ebele type ekko-ebeln.
    SELECTION-SCREEN END OF SCREEN 0200.
    AT SELECTION-SCREEN.
      CASE sy-dynnr.
        WHEN 1000.
          CASE sy-ucomm.
            WHEN 'PUSH1'.
              object-dynnr = 100.
            WHEN 'UT_RCP'.
              object-dynnr = 201.
            WHEN OTHERS.
          ENDCASE.
    here the defualt screen is 200 but for table control purpose i changed it to 201 which has the table control in it.

  • Selection screen inside a custom container

    hey guys,
    I have a requirement to display a selection-screen inside  a container,How can we solve this problem?
    Hey guys Help me out.
    Regards,
    Midhun Abraham
    Edited by: Midhun Abraham on Oct 7, 2008 7:08 AM

    you can call a selection screen in sub screen area
    declare selection screen as
    begin of selection-screen 0100 as subscreen.
    end of selection-screen...
    then,
    in flow logic of your module pool screen
    PBO
    call subscreen <sub_area> including sy-repid '0100'.
    " at selection-screen output event is called
    PAI.
    call subscreen <sub_area>.
    "at selection-screen is called

  • Steps to create tabstrip for subscreen in selection screen

    hi,
    can let me know the steps taken to create subscreen in selection screen and put in tabstrip?
    i need to have 3 screens. 1000 being the tabstrip, 2000 being first subscreen and 3000 being the second subscreen.
    i have the abap code but i do not know the steps to create especially 1000 screen.
    for 2000 and 3000, once i activated the program, these 2 screens added but i do not know where can i create the 1000 screen.
    also, should i use wizard to create tabstrip?
    please advise. thanks
    SELECTION-SCREEN BEGIN OF SCREEN 2000 AS SUBSCREEN.        SELECTION-SCREEN BEGIN OF BLOCK x WITH FRAME TITLE text-001.
    SELECT-OPTIONS: para1 FOR  field1 ,     
                                  para2 FOR field2.            
    SELECTION-SCREEN END OF BLOCK x.
    SELECTION-SCREEN END OF SCREEN 2000.
    SELECTION-SCREEN BEGIN OF SCREEN 3000 AS SUBSCREEN.
    SELECTION-SCREEN BEGIN OF BLOCK y WITH FRAME TITLE text-002.
    SELECT-OPTIONS: para3 FOR  field3 ,     
                                  para4 FOR field4.      
    SELECTION-SCREEN END OF BLOCK y.
    SELECTION-SCREEN:SKIP.
    SELECTION-SCREEN END OF SCREEN 3000.

    e_l,
      See the total doc.. with example.
    Assigning a Subscreen Area to a Tab Title
    You must assign a subscreen area to each tab title. There are two ways of doing this:
    Paging in the SAPgui
    You need to assign a separate subscreen area to each tab title, and define the function codes of the tab titles with type P (local GUI function). In the screen flow logic, you call all the subscreens in the PBO event. This means that all of the tab pages reside locally on the SAPgui.
    When the user chooses a tab title, paging takes place within the SAPgui. In this respect, the tabstrip control behaves like a single screen. In particular, the PAI event is not triggered when the user chooses a tab title, and no data is transported. While this improves the performance of your tabstrip control, it also has the negative effect that when the user does trigger the PAI event, all of the input checks for all of the subscreens are performed. This means that when the user is working on one tab page, the input checks may jump to an unfilled mandatory field on another page.
    Local paging at the SAPgui is therefore most appropriate for screens that display data rather than for input screens.
    Paging on the Application Server
    One subscreen area is shared by all tab titles and called in the PBO event. You define the function codes of the individual tab titles without a special function type. When the user chooses a tab page, the PAI event is triggered, and you must include a module in your flow logic that activates the appropriate tab page and assigns the correct subscreen to the subscreen area.
    Since the PAI event is triggered each time the user chooses a tab title, this method is less economical for the application server, but the input checks that are performed only affect the current tab page.
    Procedure in Either Case
    You create the subscreen areas within the tabstrip area. You assign the subscreen areas to one or more tab titles in the Screen Painter by selecting one or more titles. You can also assign a subscreen area to a tab title in the tab title attributes by entering the name of the subscreen area in the Reference field attribute.
    The procedure for the alphanumeric Screen Painter is described under Creating Tabstrip Controls.
    If you are paging at the SAPgui, create a subscreen area for each tab title. If you are paging at the application server, select all tab titles and create a single subscreen area. The subscreen areas may not cover the top line of the tab area. However, within a tab area, more than one subscreen area can overlap.
    Programming the Flow Logic
    In the flow logic, all you have to do by hand is include the correct subscreens. The screen flow and data transport to the ABAP program is the same as for normal subscreens. There are two ways of programming the screen flow logic, depending on how you have decided to page through the tabstrip control.
    Paging in the SAPgui
    When you page in the SAPgui, you must include a subscreen for each subscreen area:
    PROCESS BEFORE OUTPUT.
      CALL SUBSCREEN: <area1> INCLUDING [<prog 1>] <dynp 1>,
                      <area2> INCLUDING [<prog 2>] <dynp 2>,
                      <area3> INCLUDING [<prog 3>] <dynp 3>,
    PROCESS AFTER INPUT.
      CALL SUBSCREEN: <area1>,
                      <area2>,
                      <area3>,
    Paging on the Application Server
    When you page on the application server, you only have to include a subscreen for the one subscreen area:
    PROCESS BEFORE OUTPUT.
      CALL SUBSCREEN <area> INCLUDING [<prog>] <dynp>.
    PROCESS AFTER INPUT.
      CALL SUBSCREEN <area>.
    Handling in the ABAP Program
    Before you can use a tabstrip control in your ABAP program, you must create a control for each control in the declaration part of your program using the following statement:
    CONTROLS <ctrl> TYPE TABSTRIP.
    where <ctrl> is the name of the tabstrip area on a screen in the ABAP program. The control allows the ABAP program to work with the tabstrip control. The statement declares a structure with the name <ctrl> . The only component of this structure that you need in your program is called ACTIVETAB.
    Use in the PBO event
    Before the screen is displayed, you use the control to set the tab page that is currently active. To do this, assign the function code of the corresponding tab title to the component ACTIVETAB:
    <ctrl>-ACTIVETAB = <fcode>.
    When you page at the SAPgui, you only need to do this once before the screen is displayed. This initializes the tabstrip control. The default active tab page is the first page. After this, the page activated when the user chooses a tab title is set within SAPgui.
    When you page on the application server, you must assign the active page both before the screen is displayed for the first time, and each time the user pages. At the same time, you must set the required subscreen screen.
    You can suppress a tab page dynamically by setting the ACTIVE field of table SCREEN to 0 for the corresponding tab title.
    Use in the PAI event
    In the PAI event, ACTIVETAB contains the function code of the last active tab title on the screen.
    When you page in the SAPgui, this allows you to find out the page that the user can currently see. When you page at the application server, the active tab page is controlled by the ABAP program anyway.
    The OK_CODE field behaves differently according to the paging method:
    Paging in the SAPgui
    When you page in the SAPgui, the PAI event is not triggered when the user chooses a tab title, and the OK_CODE field is not filled. The OK_CODE field is only filled by user actions in the GUI status or when the user chooses a pushbutton either outside the tabstrip control or on one of the subscreens.
    Paging on the application server
    If you are paging at the application server, the PAI event is triggered when the user chooses a tab title, and the OK_CODE field is filled with the corresponding function code.
    To page through the tabstrip control, you must assign the function code to the ACTIVETAB component of the control:
    <ctrl>-ACTIVETAB = <ok_code>.
    This statement overwrites the function code of the last active tab page with that of the new tab title. At the same time, you must ensure that the correct subscreen is inserted in the subscreen area.
    Otherwise, tabstrip controls are handled like normal subscrens in ABAP programs, that is, the ABAP program of a subscreen screen must contain the dialog modules called from the flow logic of the subscreen.
    Examples
    Tabstrip control, paging at SAPgui
    REPORT DEMO_DYNPRO_TABSTRIP_LOCAL.
    CONTROLS MYTABSTRIP TYPE TABSTRIP.
    DATA: OK_CODE TYPE SY-UCOMM,
          SAVE_OK TYPE SY-UCOMM.
    MYTABSTRIP-ACTIVETAB = 'PUSH2'.
    CALL SCREEN 100.
    MODULE STATUS_0100 OUTPUT.
      SET PF-STATUS 'SCREEN_100'.
    ENDMODULE.
    MODULE CANCEL INPUT.
      LEAVE PROGRAM.
    ENDMODULE.
    MODULE USER_COMMAND INPUT.
      SAVE_OK = OK_CODE.
      CLEAR OK_CODE.
      IF SAVE_OK = 'OK'.
        MESSAGE I888(SABAPDOCU) WITH 'MYTABSTRIP-ACTIVETAB ='
                                      MYTABSTRIP-ACTIVETAB.
      ENDIF.
    ENDMODULE.
    The next screen (statically defined) for screen 100 is itself. It has the following layout:
    The screen contains a tabstrip area called MYTABSTRIP with three tab titles PUSH1, PUSH2 and PUSH3. The function codes have the same name, and all have the function type P. One of the subscreen areas SUB1 to SUB3 is assigned to each tab title. The pushbutton has the name BUTTON and the function code ‘OK’.
    In the same ABAP program, there are three subscreen screens 110 to 130. Each of these fits the subscreen area exactly. The layout is:
    The screen flow logic for screen 100 is as follows:
    PROCESS BEFORE OUTPUT.
      MODULE STATUS_0100.
      CALL SUBSCREEN: SUB1 INCLUDING SY-REPID '0110',
                      SUB2 INCLUDING SY-REPID '0120',
                      SUB3 INCLUDING SY-REPID '0130'.
    PROCESS AFTER INPUT.
      MODULE CANCEL AT EXIT-COMMAND.
      CALL SUBSCREEN: SUB1,
                      SUB2,
                      SUB3.
      MODULE USER_COMMAND.
    The screen flow logic of subscreens 110 to 130 does not contain any module calls.
    When you run the program, a screen appears on which the second tab page is active, since the program sets the ACTIVETAB component of the structure MYTABSTRIP to PUSH2 before the screen is displayed. The user can page through the tabstrip control without the PAI event being triggered. One of the three subscreens is included on each tab page.
    When the user chooses Continue, the PAI event is triggered, and an information message displays the function code of the tab title of the page that is currently active.
    Tabstrip control with paging on the application server.
    REPORT DEMO_DYNPRO_TABSTRIP_LOCAL.
    CONTROLS MYTABSTRIP TYPE TABSTRIP.
    DATA: OK_CODE TYPE SY-UCOMM,
          SAVE_OK TYPE SY-UCOMM.
    DATA  NUMBER TYPE SY-DYNNR.
    MYTABSTRIP-ACTIVETAB = 'PUSH2'.
    NUMBER = '0120'.
    CALL SCREEN 100.
    MODULE STATUS_0100 OUTPUT.
      SET PF-STATUS 'SCREEN_100'.
    ENDMODULE.
    MODULE CANCEL INPUT.
      LEAVE PROGRAM.
    ENDMODULE.
    MODULE USER_COMMAND INPUT.
      SAVE_OK = OK_CODE.
      CLEAR OK_CODE.
      IF SAVE_OK = 'OK'.
        MESSAGE I888(SABAPDOCU) WITH 'MYTABSTRIP-ACTIVETAB ='
                                      MYTABSTRIP-ACTIVETAB.
      ELSE.
        MYTABSTRIP-ACTIVETAB = SAVE_OK.
        CASE SAVE_OK.
          WHEN 'PUSH1'.
            NUMBER = '0110'.
          WHEN 'PUSH2'.
            NUMBER = '0120'.
          WHEN 'PUSH3'.
            NUMBER = '0130'.
        ENDCASE.
      ENDIF.
    ENDMODULE.
    The statically-defined next screen for screen 100 is itself, and its layout is the same as in the above example. However, the function codes of the three tab titles have the function type <blank> and they all share a single subscreen area SUB.
    The same subscreen screens 110 to 130 are defined as in the last example.
    The screen flow logic for screen 100 is as follows:
    PROCESS BEFORE OUTPUT.
      MODULE STATUS_0100.
      CALL SUBSCREEN SUB INCLUDING SY-REPID NUMBER.
    PROCESS AFTER INPUT.
      MODULE CANCEL AT EXIT-COMMAND.
      CALL SUBSCREEN SUB.
      MODULE USER_COMMAND.
    In this example, the program includes a subscreen screen in the subscreen area SUB dynamically during the PBO event.
    The screen flow logic of subscreens 110 to 130 does not contain any module calls.
    This example has the same function as the previous example, but the paging within the tabstrip control is implemented on the application server. Each time the user chooses a tab title, the function code from the OK_CODE field is assigned to the ACTIVETAB component of structure MYTABSTRIP. At the same time, the variable NUMBER is filled with the screen number of the subscreen that has to be displayed in the subscreen area SUB of the tabstrip control
    Pls. reward if useful

  • Selection screen as Subscreen help required

    Hello All,
    I am facing a problem by calling selection screen as subscreen, Here is my problem
    In my main screen i have create a sub screen as search help
    so in my sub-screen i have select-options
    If i click the button to include and exclude some values i don't see  the dailog box for selections is not appearing.
    Please provide help. I need to allow the user to enter some n values?
    Regards,
    Lisa

    Hi,
    There is a small mistake that you are doing..
    In the subscreen donot create the select options... What you need to do is... in the TOP Include write lines like..
    SELECTION-SCREEN BEGIN OF SCREEN 1010 AS SUBSCREEN.
    SELECT-OPTIONS s_proj FOR zimple_crmt_1000-title_part.
    SELECT-OPTIONS s_cr      FOR crmd_orderadm_h-object_id.
    SELECTION-SCREEN END OF SCREEN 1010 .
    Then.. in the screen where you have subscreen to be included write
    PBO
    CALL SUBSCREEN subs_1010 INCLUDING sy-repid '1010'.
    PAI
    CALL SUBSCREEN subs_1010.
    By doing this... the select option will appear on your subscreen with the extension and interval options.
    All the best.

  • Validation for a selection screen used as a subscreen

    Hi friends,
    I have a screen say '0001' in that screen i have three subscreens 0002 0003 0004
    In the subscreen 0002, i have declared three selection screens 0102, 0202, 0302
    In the Application toolbar of the screen 0001 (PF Status) i have declared three push buttons A, B, C,
    On click of A i ll invoke 0102 selection screen inside the subscreen 0002.
    Similarly On click of B i ll invoke 0202 selection screen inside the subscreen 0002
    Similarly On click of C i ll invoke 0302 selection screen inside the subscreen 0002.
    I have completed till the above ...
    My problem is ........................
    The selection screens will have their own Parameters and select options .....
    some of them are mandatory & some of them not .......
    Now when i switch from one push button to another say from A to B and then again to C .... for each and every click it is asking to fill in the mandatory paramters and select options ........ and then only allowing to move to the next sel screen .......
    Needed solution:
    ~~~~~~~~~~~~~
    1. How can i avoid this message "Fill in the required fields" ?
    2. How can i validate the user entries if i take away all the "OBLIGATORY"
        additions in the selection screen declaration part
    3. Where can i write "At selection screen" validation? becoz iam using a function
        group for the creation of screens and all and have included the selection
        screen declaration in the top include of the Function group?
    Hope iam clear with my question!!
    Revert back if you need more clarrifications on the question itself
    Cheers
    Kripa Rangachari .....

    Hi,
       In the pf status - for push buttons give the type as E.
    Write the processing for this in at exit command.
    Validation should be done in AT SELECTION-SCREEN ON field.
    Reward if helpful.

  • Calling a selection screen in a subscreen of a tabstrip

    hi,
    I have created a tabstrip where i have included a subscreen.
    I want to create and call a selection screen within that subscreen.
    Can anybody tell me the steps required?
    thanks in advance,
    Abhishek

    hi
    good
    try this
    In the same way that you can define a screen as a subscreen in the Screen Painter, it is now possible to define selection screens as subscreens in an ABAP program:
    SELECTION-SCREEN BEGIN OF SCREEN scrn AS SUBSCREEN
                                         [NO INTERVALS]
                                         [NESTING LEVEL n].
    SELECTION-SCREEN END OF SCREEN scrn.
    go through this link
    http://help.sap.com/saphelp_nw2004s/helpdata/en/e7/deb237b9a9a968e10000009b38f8cf/content.htm
    http://sap.niraj.tripod.com/id40.html
    thanks
    mrutyun^

  • Subscreen with Select-Options called from At Selection Screen event

    Dear friends,
    I'm trying to call a subscreen that contains a select-options, from an 'at selection screen' event, in a report program, but without sucess.
    Here's go what I'm doing:
    I declared a selection-screen as subscreen in my main program, and I'm calling it from a module-pool subscreen area, to make the module-pool select-options magic.
    In my main report program, I have a customized status GUI with a new toolbar button and I'm handling it at the 'at selection screen' event.
    What I need to do is to call the subscreen that contains the select-options when this new customized button get pressed, but when It happens, the select-option selections pop-up doesn't appear.
    If I call the subscreen from the 'start-of-selection' event, it goes fine, just don't work from the 'at selection screen'.
    Any ideas on how can I do it?
    Thank you,
    Heber

    i think you should try something like this:
    at selection screen.
    if condition handled ....
      show_popup = 'X'.
    endif.
    at selection screen output.
    if show_popup EQ 'X.
    call subscreen
    endif.

  • Question on selection screen in a subscreen in dialog prorgamming

    hi,
    i have a module pool in which the main program has the definition of the selection screen as follows:
    SELECTION-SCREEN BEGIN OF SCREEN 0101 AS SUBSCREEN.
    SELECTION-SCREEN BEGIN OF BLOCK B1.
    SELECT-OPTIONS: S_VSTEL FOR  TVST-VSTEL,
    SELECTION-SCREEN END OF BLOCK B1.
    SELECTION-SCREEN END OF SCREEN 0101.
    In the PBo of screen 100 this is called
    CALL SUBSCREEN SUBSCREEN1 INCLUDING SY-REPID L_DYNNR.
    The subscreen is displayed as
    Shipping point  _______ To _________  =>
    When I click that arrow (( extension )) nothing happens !! I am supposed to get the standard extension screen in whcih i can select single values, ranges, exclude values, ranges !!
    why is this not displayed..any idea ?
    i have the same code in a normal report program and it works fine ..
    thks

    in module pool you need to add code for the => this is not been handled by SAP in module pool whereas it is been handled in report program.
    There is one FM which needs to be used so that when => is clicked it works...

Maybe you are looking for

  • Style sheets no longer working

    Style sheets created and used previously are no longer working (properly). What's up with that?

  • 9i Reports images not displayed

    I have a report that generates a graph It is working fine in pdf format but in HTML format it works only on the App Server or the Infrastructure box Could somebody help me with this Thanks in advance Santosh

  • Lost Windows 7 boot option after creating new partition

    First of all im new to Mac os. i have installed windows 7 using boot camp and after it i tried to create a new partition from the main mac partition and it was created successfullly however now the windows 7 boot option is not available for some reas

  • EMail link in Safari

    When I select an eMail link in a SAFARI window it defaults to .MAC mail and directs me to set up a .MAC mail account. I want SAFARI to default to my eMail account which is ENTOURAGE. I do not want a .MAC mail account. I have been unable to find out h

  • Errors in TTE calculation

    Hi everyone. Help me please with TTE. I try to calculate taxes. Made all TTE settings. Simulation of tax determination in IMG is ok. But in billing document there is no taxes. I have the following errors in TTE document: 1. "Enter transaction currenc