Selection screen processing in Module pool

Dear Friends,
I am preparing a module pool, in which from one screen, i have to call a selection screen. I want to define this selection screen in the same program. Under which event block, i can define this selection screen?
Once its called, how can i process the selection screen ( like START-OF-SELECTION etc ?). If i use a LEAVE TO LIST-PROCESSING to display some output, how can i process the user actions in this list?
Thanking you in anticipation.
Deepak

HI Max,
Thanks a lot for your reply. It was really helpfull. But my problem is not yet solved.
When i call the selection screen from the PBO of a screen, the selection screen is not being displayed. Only the blank screen is displayed. So i tried another way. I put the CALL SELECTION-ECREEN  statement in the USER_COMMAN_100 module of PAI of the previous screen. (ie when user choose a button from the tool bar, in the initial screen the selection screen will be displayed.)
module user_command_0100 input.
  OK_SAVE = OK100.
  CLEAR OK100.
  CASE OK_SAVE.
    WHEN 'LIST'.
      CALL SELECTION-SCREEN 200.
      IF SY-SUBRC = 0.
        PERFORM PROCESS_LIST.
      ELSE.
        leave screen.
      ENDIF.
endmodule.                 " USER_COMMAND_0100  INPUT
form process_list.
... reading database...
IF SY-SUBRC = 0.
  LEAVE TO LIST-PROCESSING AND RETURN TO SCREEN 100.
  SET PF-STATUS 'GUI_LIST'.
    LOOP AT ITAB.
      WRITE :/ ITAB-BUKRS, ITAB-BELNR, ITAB-GJAHR.
    ENDLOOP.
  LEAVE SCREEN.
  ENDIF.
endform.                    " PROCESS_LIST
Now i have two problems to solve.
1. I want to come back to the same selection screen (screen no 200) instead of screen 100, when the user click 'back' button in the list. but if i specify screen no 200 in
LEAVE TO LIST-PROCESSING AND RETURN TO SCREEN 100.
it gives runtime error. ( Msg: Selection screen ZTEST3 0200 was not called using CALL SELECTION-SCREEN). How to return back to selection screen?
and
2. If the user selects a line from the list(PICK/F2), that value has to be passed to the input field of first screen( ie the initial screen from where i called the selection screen : screen no 100) For this, where can i write the code to process the user actions in the list?
Thanking you in anticipation
Deepak

Similar Messages

  • Selection screen problem in module pool

    Hi friends,
    I am working on module pool programming, I need to put select screen on the screen of the module pool porgramming. I used Input/Output field to do that and activated. But I am getting message invalid field format (screen error) can any one tell me why I am not able to run the seletion screen when I am using input/output field, also please let me know how to solve this problem.
    Regards,
    Line

    Hello,
    Think that this is useful for u/
    SELECTION-SCREEN - Defining selection screens
    Variants:
    1a. SELECTION-SCREEN BEGIN OF SCREEN scr.
    1b. SELECTION-SCREEN END   OF SCREEN scr.
    2. SELECTION-SCREEN BEGIN OF SCREEN scr AS SUBSCREEN.
    Effect
    Defines a selection screen with the number scr. scr may be up to 4 digits.
    SELECTION-SCREEN BEGIN OF SCREEN scr.
    Additions:
    (zu SELECTION-SCREEN BEGIN OF SCREEN scr) 1. ... TITLE title
    2. ... AS WINDOW
    Notes
    In reports (type 1 programs), a selection screen with number 1000 is created automatically when you use the SELECT-OPTIONS, PARAMETERS and SELECTION-SCREEN statments. This selection screen appears when you SUBMIT the report.
    In any type of program (apart from subroutine pools - type S), you can define further selection screens using SELECT-OPTIONS, PARAMETERS and SELECTION-SCREEN. You enclose these statements between the SELECTION-SCREEN BEGIN OF SCREEN and SELECTION-SCREEN END OF SCREEN statements.
    You call these screens using the CALL SELECTION-SCREEN statement.
    Screen number 1000 is not allowed (reserved for standard selection screen).
    When you generate the program, all user-defined selection screens are also generated.
    Within a report (type 1 program), all SELECT-OPTIONS, PARAMETERS and SELECTION-SCREEN statements outside a SELECTION-SCREEN BEGIN/END OF SCREEN block form part of selection screen 100 (standard selection screen)
    Regards,
    LIJO JOHN.

  • Leaving to Selection Screen in a Module Pool

    hi,
       I have a module pool with a number of screen.Now ifi am on the 4 th screen after i process something i need to go back to the selection screen. Giving leeve to screen 1000 doesnt work.Could neone please tell what command must be written.

    Hello Pankaj,
    U can try like this.
    SET SCREEN 0.
    LEAVE SCREEN
    or
    LEAVE TO SCREEN 0.
    If useful reward.
    Vasanth

  • Problem in creating a Select-option im a module pool screen

    I've been searching how to do a select option in a module pool screen, I've found this neat tutorial http://sample-code-abap.blogspot.com/2008/06/select-option-in-module-pool-screen.html
    but I'm having trouble to replicate it...
    I've created this conde in my TOP include
    SELECTION-SCREEN BEGIN OF SCREEN 201 AS SUBSCREEN.
       SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME.
        SELECT-OPTIONS: s_matnr FOR mara-matnr.
      SELECTION-SCREEN END OF BLOCK b2.
    SELECTION-SCREEN END OF SCREEN 201.
    and this is my screen flow code
    PROCESS BEFORE OUTPUT.
      MODULE status_0100.
      MODULE pbo_200.
    PROCESS AFTER INPUT.
      MODULE pai.
      MODULE user_command_0200.
    in the screen 200 I have a subscreen area named subs
    but when I do this:
    MODULE pbo_200 OUTPUT.
      CALL subscreen subs including sy-repid '0201'.
    ENDMODULE.                 " pbo_200  OUTPUT
    it doesn't "compile"
    it gives me this error:
    ""." or "ID ... FIELD ..." expected after "SUBSCREEN"."
    what am I missing? it seems its not recognising the "CALL SUBSCREEN" command...

    you can't use CALL SUBSCREEN... in any ABAP section. It is reserved to dynpro flow logic. Just add it after PROCESS BEFORE OUTPUT (and also after PROCESS AFTER INPUT).

  • Selection-options on a module pool screen

    Hi all,
    How to define a field as selection-options on a module pool screen.
    Thanks,
    Chuong

    Hi Chuong,
    You will need to define the screen as a selection screen..
    Else, you can define a subscreen area in your screen, define a subscreen as selection screen and call that screen here..
    Thanks and Best Regards,
    Vikas Bittera.

  • Regarding screen flow in MODULE POOL

    Hi everyone,
                          my requirement is to cretae a module pool program. In between a program is submitted VIA  a selection screen. That selection screen contains PUSH BUTTONS. If any push button is clicked one of the dialog screens of the module pool program should be called. Can any one tell me how can this be done.
    Thanks in advance.
    Regards,
    Y.Gautham

    write a Module in PAI of ur screen and call which ever screen u want to call or leave.
    for e.g -
    PROCESS AFTER INPUT.
    MODULE USER_COMMAND_0100.
    module USER_COMMAND_0100 input.
    case ok_code.
    when 'ENTER'.
    clear ok_code.
    leave to screen 200.
    endcase.
    endmodule. " USER_COMMAND_0100 INPUT

  • Can Selection Screen processing events be triggered manually?

    Good day!
    I have a Selection Screen where a user can select a value from a drop-down box.  If a particular value is used, I assign default text to another Selection Screen field.
    However, because choosing the drop-down value doesn't trigger a Selection Screen processing event (AT SELECTION-SCREEN and AT SELECTION-SCREEN OUTPUT) the value doesn't get updated on the screen field, even though it gets updated in memory.  It only updates on the screen if the user selects a radio button value for another field because that triggers the Selection Screen processing events.
    I've read about various methods in an attempt to get this to work, but nothing is working.  Is there ANY way to trigger SAP to go to these events?
    Thanks, and points for all helpful advice!
    Dave

    Hi dave,
    1. Selecting a listbox on selection screen,
        and immediately populating a field value on the screen.
    2. just copy paste to get a taste of it.
    3.
    REPORT ABC.
    TYPE-POOLS : VRM.
    DATA : VALUES TYPE VRM_VALUES.
    DATA : VW LIKE LINE OF VALUES.
    DATA : FLAG TYPE C.
    PARAMETERS : LIST TYPE C AS LISTBOX VISIBLE LENGTH 10
    <b>USER-COMMAND ABC.</b>
    PARAMETERS : A(10) TYPE C.
    INITIALIZATION.
      VW-KEY = '1'.
      VW-TEXT = 'SUN'.
      APPEND VW TO VALUES.
      VW-KEY = '2'.
      VW-TEXT = 'MON'.
      APPEND VW TO VALUES.
      VW-KEY = '3'.
      VW-TEXT = 'TUE'.
      APPEND VW TO VALUES.
      CALL FUNCTION 'VRM_SET_VALUES'
        EXPORTING
          ID              = 'LIST'
          VALUES          = VALUES
        EXCEPTIONS
          ID_ILLEGAL_NAME = 1
          OTHERS          = 2.
    <b>AT SELECTION-SCREEN  OUTPUT.
    A = LIST.</b>
    regards,
    amit m.

  • Accessing WS data set during selection screen processing in BG processing

    Hello ABAPers,
    I am attempting to access a working storage table variable that is set during selection screen processing after the user submits the program to background processing (using F9).
    I have tried using export to memory id in the at selection screen section and then import from memory id in the start-of-selection section, but it does not seem to work all of the time.  Is there a better way of doing this?
    Thanks

    bump

  • Regarding select option in a module pool prog .

    hello .. i need some help regarding select options in a module pool program .. i hav tried putting a select options in a module pool prog but i am not able 2 ... can any one tel me why select options r not aloowed in a module pool prog ?? and i read that we hav 2 use ranges 2 fulfil the needs of the select options . is there any way i cal get all the functionality of select options ( eg including , excludig , equal to , not equal to , .... .) using a range ??

    Hi
    Select-options won't work if you declare the program as Module POOL.
    if you wants to use select-options like utility in module pool programming
    use ranges
    declare and develop ranges and use that in select statement where condition.
    ranges: r_vbeln for vbak-vbeln.
    r_vbeln-low = '0018900678'.
    r_vbeln-sign = 'I'.
    r_vbeln-option = 'EQ'.
    append r_vbeln.
    r_vbeln-low = '0018900456'.
    r_vbeln-sign = 'I'.
    r_vbeln-option = 'EQ'.
    append r_vbeln.
    reward if useful
    regards
    Anji

  • Customer Control in screen painter in Module pool - work like container?

    Customer Control option in screen painter in Module pool - work like container?
    is it true? How?
    Is like any work area or what?
    what is the excat use of that option?
    regards.

    Hello,
    In screen painter ,custom control is used to define the control area on the screen.Just click on that and make your own container area.When you create an ALV grid or TEXT EDITOR or any other control,it will get attached to the screen in that area through the custom container.
    Name the container area as say '<b>CONTAINER</b>'.(in capitals.)
    When you actually create the custom conatiner programatically,you should give the container area name.ie.
    Data : cont type ref to cl_gui_custom_container.
    Create object cont
    exporting
    parent = '<b>CONTAINER</b>'.
    Now,this container that you created-cont is attached to the screen in the area defined by CONTAINER.
    Regards,
    Beejal
    **Reward if this helps

  • Adding a screen element in Module pool

    Hi Experts,
             How to add a screen element in module pool programming?
    Thanks,
    Sudha...........

    Hi sudha ,
    To add screen elements in you module pool programming ,
    i > Go the layout of the screen for which you want to have elements .
    ii> Drag and drop the available elements from the left hand side .
    iii> Be sure to have a name a name of the data elements that you have inserted .
    iv>Check any dataelement is't showing red in color as red color signifies error .
    v> Make sure to save and activate the layout.
    Hope this would be clear .
    Thanks
    Lokesh

  • Difference between screen painter and module pool

    Hi guys,
    what's the difference between SCREEN PAINTER and MODULE POOL ....
    can anyone plz give brief description ...
    regards
    venu

    hi ,
        As its said by many colleagues in SDN , there are not very major differences between Modulepools and screen painter .
    The few differences are :
    1) <b>Module pool is nothing but a pool ( series ) of screens . and Screen painter ( SE51 ) is a tool used for creating/designing  screens .</b>
    2) <u>While creating a modulepool you even need to create a transaction and assign this module pool program else the mpool program doesnt work . I think this is place we can say they are different .</u>
    3) <b>If at all you create a screen in screen painter ( SE51 ) , that doesnot function by its own , you need to assign it to any of the executable programs or modulepool programs .Here is again a difference .</b>
    Regards,
    Ranjita ..
    Message was edited by:
            Ranjita Kar

  • Select-option field on module pool screen

    hi all,
    Can anyone pls let me know, how to design and use a field like a select-option field on a Module-pool screen i.e.  how can i get that multiple selections tab after the high field of the select-options.
    thanks in advance,
    vinny

    All you need to do is define your selection screen and then embed it in a subscreen area of your dynpro(screen).  Here is a sample program.
    report zrich_0006 .
    tables: mara.
    * Custom Selection Screen 1010
    <b>selection-screen begin of screen 1010 as subscreen.</b>
    selection-screen begin of block b1 with frame title text-001.
    parameters: p_rad1 radiobutton group grp1 default 'X',
                p_rad2 radiobutton group grp1,
                p_rad3 radiobutton group grp1.
    select-options: s_matnr for  mara-matnr,
                    s_matkl for  mara-matkl,
                    s_mtart for  mara-mtart.
    selection-screen end of block b1.
    selection-screen end of screen 1010.
    start-of-selection.
      call screen 100.
    *&      Module  STATUS_0100  OUTPUT
    module status_0100 output.
    *  SET PF-STATUS 'xxxxxxxx'.
    *  SET TITLEBAR 'xxx'.
    endmodule.
    *&      Module  USER_COMMAND_0100  INPUT
    module user_command_0100 input.
    endmodule.
    <b>* Screen screen 100 with a subscreen area called "subscreen_1010"
    * Screen Flow Logic follows
    *process before output.
    *  module status_0100.
    *  call subscreen subscreen_1010 including sy-repid '1010'.
    *process after input.
    *  call subscreen subscreen_1010 .
    *  module user_command_0100.</b>
    Regards,
    Rich Heilman

  • Search help for screen fields in module pool

    Hi All,
    I have a screen in Module pool which has 3 input fields, each input field is attached to the same search help.
    These fields are from ztable . I have created a search help USING these 3 fields. All the 3 fields are marked for IMPORT and EXPORT.
    So whenever i click F4 on any of the above 3 fields, It will display search help popup and returns some rows...But the values are transfered back only for 1 fields ..i.e for the first field only .
    I want that ...as soon as i select any of the row from Search hit list..all the 3 columns should get populated with corresponding fields from that row.
    I require it this way as user wants to select based on * selection.Ex: as then every this related to that should be popped up.
    Pls help ASAP
    Thanks,

    This is how i got.
    data:l_shlp type SHLP_DESCR,
    l_rc type sy-subrc,
    w_DDSHRETVAL type DDSHRETVAL ,
    ls_shintf LIKE LINE OF l_shlp-interface,
    t_DDSHRETVAL type TABLE OF DDSHRETVAL.
    DATA: dyname LIKE d020s-prog,
    dynumb LIKE d020s-dnum.
    DATA: BEGIN OF dynpfields OCCURS 3.
    INCLUDE STRUCTURE dynpread.
    DATA: END OF dynpfields.
    CALL FUNCTION 'F4IF_GET_SHLP_DESCR'
    EXPORTING
    SHLPNAME = 'YTESTDMSSB'
    SHLPTYPE = 'SH'
    IMPORTING
    SHLP = l_shlp .
    ls_shintf-valfield = 'X'.
    MODIFY l_shlp-interface FROM ls_shintf TRANSPORTING valfield
    WHERE shlpfield = 'SNNTX'.
    MODIFY l_shlp-interface FROM ls_shintf TRANSPORTING valfield
    WHERE shlpfield = 'SBRTX'.
    MODIFY l_shlp-interface FROM ls_shintf TRANSPORTING valfield
    WHERE shlpfield = 'SBSTX'.
    MODIFY l_shlp-interface FROM ls_shintf TRANSPORTING valfield
    WHERE shlpfield = 'ENPTX'.
    MODIFY l_shlp-interface FROM ls_shintf TRANSPORTING valfield
    WHERE shlpfield = 'PLANT_CODE'.
    CALL FUNCTION 'F4IF_START_VALUE_REQUEST'
    EXPORTING
    SHLP = l_shlp
    DISPONLY = ' '
    MAXRECORDS = 500
    MULTISEL = 'X'
    CUCOL = SY-CUCOL
    CUROW = SY-CUROW
    IMPORTING
    RC = l_rc
    TABLES
    RETURN_VALUES = t_DDSHRETVAL
    IF l_rc = 0.
    LOOP AT t_DDSHRETVAL INTO w_DDSHRETVAL.
    CASE w_DDSHRETVAL-fieldname.
    WHEN 'SNNTX'. "W_SNNTX = w_DDSHRETVAL-fieldval.
    dyname = sy-repid.
    dynumb = sy-dynnr.
    dynpfields-fieldname = 'W_SNNTX'.
    dynpfields-fieldvalue = w_DDSHRETVAL-fieldval.
    APPEND dynpfields.
    WHEN 'SBRTX'. "W_SBRTX = w_DDSHRETVAL-fieldval.
    dyname = sy-repid.
    dynumb = sy-dynnr.
    dynpfields-fieldname = 'W_SBRTX'.
    dynpfields-fieldvalue = w_DDSHRETVAL-fieldval.
    APPEND dynpfields.
    WHEN 'SBSTX'. "W_SBSTX = w_DDSHRETVAL-fieldval.
    dyname = sy-repid.
    dynumb = sy-dynnr.
    dynpfields-fieldname = 'W_SBSTX'.
    dynpfields-fieldvalue = w_DDSHRETVAL-fieldval.
    APPEND dynpfields.
    WHEN 'ENPTX'. "W_ENPTX = w_DDSHRETVAL-fieldval.
    dyname = sy-repid.
    dynumb = sy-dynnr.
    dynpfields-fieldname = 'W_ENPTX'.
    dynpfields-fieldvalue = w_DDSHRETVAL-fieldval.
    APPEND dynpfields.
    WHEN 'PLANT_CODE'. "W_ENPTX = w_DDSHRETVAL-fieldval.
    dyname = sy-repid.
    dynumb = sy-dynnr.
    dynpfields-fieldname = 'W_WERKS'.
    dynpfields-fieldvalue = w_DDSHRETVAL-fieldval.
    APPEND dynpfields.
    ENDCASE.
    ENDLOOP.
    CALL FUNCTION 'DYNP_VALUES_UPDATE'
    EXPORTING
    dyname = dyname
    dynumb = dynumb
    TABLES
    dynpfields = dynpfields.
    ENDIF.

  • Cursor position on screen data in module pool programming(urgent)

    Hi all,
    I developed a module pool  program which will save the data after  scanning the barcode data.
    In my program screen 100 is there which contains field  ‘2dbar’. scanned data is comming to 2dbar field.
    we r doing scan 4 times.once for vendor number,once for material no. like this.
    After 1st scan, vendor number will come to field ‘2dbar’.
    Then I developed logic to put comma after each scanned data come to this field ‘2dbar’.
    MODULE put_comma INPUT.
    CASE OK_CODE.
    when ''.
    move 2dbar to 2dbar1.
    clear 2dbar.
    concatenate 2dbar1 ',' into 2dbar2.
    *replace 2dbar with 2dbar2 into 2dbar.
    move 2dbar2 to 2dbar.
    *write 2dbar2 to 2dbar.
    condense 2dbar no-gaps.
    *move '' to 2dbar.
    *set cursor field 2dbar offset 5.
    *write
    ENDCASE.
    ENDMODULE.                 " put_comma  INPUT
    By above logic, comma  comes to the starting position of 2dbar after each scan. i.e cursor position is coming to the starting position of screen field ‘2dbar’.
    Now  I need to move the cursor position after the comma position on 2dbar after each scan.
    after 1st scan, 2dbar contains
    vmotorola
    then my logic puts a comma when u put enter on screen 100.
    now 2dbar contains
    vmotorola,
    i should get the cursor position after the comma.but i am getting cursor position before 'v'.so how to move this cursor position  beyond comma after each scan.
    I added set cursor  command but it is not working.plz
    What is the logic, I need to put in PAI  to move the cursor on selection screen.
    Already the logic I have mentioned.  with that logic, I can put comma.now I need to add cursor movement logic  to move the cursoron  on screen field ‘2dbar’.
    Plz reply me as it is urgent.
    Thanks in advance.
    Regards
    pabitra

    CASE OK_CODE.
    when ''.
    move 2dbar to 2dbar1.
    clear 2dbar.
    concatenate 2dbar1 ',' into 2dbar2.
    move 2dbar2 to 2dbar.
    condense 2dbar no-gaps.
    len = strlen ( 2dbar ).
    len = len - 1.
    set cursor field 2dbar offset len.
    ENDCASE.
    ENDMODULE. " put_comma INPUT

Maybe you are looking for