Selection-screen navigation process required immeidately

Hi all,
I am having a program, if i execute that we will have 3 radio butons like basic data,
financial data, tax related data of the customers. when i select one of the radio buton and execute one selecion screen 500  will be displayed. selection screen 500 is common for all the radio buttons but based on the radio button some of the fields will be disabled.
what my problem is when i select one radio button and gave values in the selection screen , for the valid values it will display the data in the grid format. and i come back to the selection screen ,I have a situation where if the valid value is entered and there is no corresponding value for that selection i need to go back to the same selecion screen and a message should be displayed.
HOW TO HANDLE THIS?
Thanks,
Nagaraju.

The following is the code....
SELECTION-SCREEN BEGIN OF BLOCK BLK1 WITH FRAME TITLE TEXT-001.
PARAMETER: P_BWAF0 RADIOBUTTON GROUP RAD1 DEFAULT 'X'
                                        USER-COMMAND PC,
           P_BWAF1 RADIOBUTTON GROUP RAD1.
SELECTION-SCREEN END OF BLOCK BLK1.
*C-- Period range
SELECTION-SCREEN: BEGIN OF BLOCK BLK2 WITH FRAME TITLE TEXT-002.
SELECT-OPTIONS: S_DATE FOR SY-DATUM MODIF ID PER.
SELECTION-SCREEN: END OF BLOCK BLK2.
AT SELECTION-SCREEN OUTPUT.
  PERFORM SCREEN_INITIALIZE.
*&      Form  screen_initialize
      text
FORM SCREEN_INITIALIZE .
  IF P_BWAF0 EQ 'X'.
    W_SSCRFIELDS-UCOMM = SPACE.
  ELSE.
    W_SSCRFIELDS = 'RAD1'.
  ENDIF.
  LOOP AT SCREEN.
    IF W_SSCRFIELDS-UCOMM EQ 'RAD1'.
      IF SCREEN-GROUP1 = 'PER'.
        CLEAR: S_DATE.
        SCREEN-ACTIVE = 1.
      ENDIF.
    ELSE.
      IF SCREEN-GROUP1 = 'PER'.
        CLEAR: S_DATE.
        SCREEN-ACTIVE = 0.
      ENDIF.
    ENDIF.
    MODIFY SCREEN.
  ENDLOOP.
ENDFORM.                    " screen_initialize

Similar Messages

  • ABAP Program using Selection Screen in Process Chain

    Hi,
    I have included an ABAP Program in the Process Chain.
    The ABAP Program takes a selection screen value from user before execution.
    I have created a variant for both the ABAP Process (YPV_ABC) and a variant for the Selection Screen (YPV_XYZ).
    The ABAP Program executes perfectly well in SE 38.
    I get the following message when I execute the Process Chain.
    "Status Change of Process ABAP YPV_ABC.
    Save Status and Trigger Events if Appropriate "
    When I click Yes, the ABAP Process becomes red.
    These are error messages in the log
    516 -  Job started     
    550 -  Step 001 started (program RSPROCESS, variant &0000000012961, user ID ALEREMOTE)
    25 -    Could not ascertain code page     
    546 -  Job cancelled after system exception ERROR_MESSAGE     
    My questions are:
    1) Is it possible to use an  ABAP Program which has a user input screen in Process Chain?
    2) Could you please help  with the above error?

    1) Is it possible to use an ABAP Program which has a user input screen in Process Chain?
    ABAP programs, with variants established for selection screens, are possible. We use them quite extensively for setting triggers to allow Process Chain to continue after an Interrupt Process has been hit.
    2) Could you please help with the above error?
    I'm not quite sure what could be causing this. When you tested this program in SE38, did you test it with the same variant for the selection screen and did you execute it in background?

  • Error message at the selection screen while processing screen logic

    Hi All,
      I need to show error message at the selection screen.
    I am calling the screen inside the START-OF-SELECTION, and processing the calculation and putting the data into i_final internal table. If internal table I_FINAL is empty I have to show error message saying ' DATA is empty' , this error message should be shown at the SELECTION SCREEN (Report input screen 1000) and provide the user to enter the input values once again.
    But whenever I am populating error message, I am getting a pop up to chose exit, and process is terminating.
    Since I am in the middle of the screen processing whenever I am giving a error message.
    Please let me know how can I populate error message without terminating the process while I was in the middle of the screen processing logic.
    Regards,
    Mahesh

    hi
    If u are trying to validate a field use
    AT SELECTION_SCREEN ON <field>
    if want to validate a block
    AT SELECTION SCREEN ON <block>
    If Universal Validation
    AT SELECTION SCREEN
    and display a 'E' Message inside the block.
    You can Enter Correct Value and start processing Forward.
    hope this will help.
    Regards
    Sumit Agarwal

  • Within FM not possible AT SELECTION-SCREEN or PROCESS ON VALUE-REQUEST

    Hello !
    Within a "User Help Exit" must be called the FM named
    C14F_LOV_WAID. How can I adress this FM
    for a field.
    The goal is if user klicks on F4 the this FM mist be called.
    please notice a user help exit is like a Function Modul.
    e.g.
    FUNCTION zuser_help_exit.
    ENDFUNcTION.
    Within this block FM block above I can't say:
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR<FIELD>
    or
    PROCESS ON VALUE-REQUEST.
    FIELD <field-name> MODULE create_dropdown_box.
    Regards
    Ertas Ilhan

    HI
      well I am not sure about this it works or not but we have various function modules which we can call in other function modules to provide F4 help i mean to say that call Function module inside a Function Module
    F4IF_INT_TABLE_VALUE_REQUEST
    F4IF_FIELD_VALUE_REQUEST.
    Try out these Fm calling ..
    I hope it helps you am not sure
    Regards
    Pavan

  • 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.

  • Selection-screen design

    Hi everyone,
    I am working on a project for which I have to design a selection-screen.
    The requirement is such that there are 3 obligatory fields to be filled by the user, which are as follows:
    P_LAUFD(parameter,obligatory-date),
    P_LAUFI(parameter,obligatory-id),
    P_FILENM(parameter,obligatory-filename),
    P_LOKAAL(checkbox).
    The requirement is such that when the user does not check the checkbox the search help for P_FILENM should show the files from the application server,and when it is checked the files from the presentation server should be shown.
    The code that I have written is listed below, but there is  a problem with it.
    When I don't enter  anything in the first 2 fields, the search field for the 3rd field functions as required, but if I first enter something in the first 2 fields and then click on the checkbox, the search help for P_FILENM does not function as reaquired.
    Please advise.
    Also if possible could you'll  kindly   explain the sequence of events that is getting triggered?
    *&  Include           Z6890_PROJINCLUDE_SEL_SCREEN                     *
    TABLES : SSCRFIELDS.
    DATA: FILE LIKE DXFIELDS-LONGPATH.
    DATA V_FILENAME LIKE IBIPPARMS-PATH.
    DATA: TMP TYPE SSCRFIELDS-UCOMM.
    SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
    PARAMETERS: P_LAUFD TYPE  D OBLIGATORY,
                P_LAUFI(6) TYPE C OBLIGATORY.
    SELECTION-SCREEN END OF BLOCK B1.
    SELECTION-SCREEN SKIP.
    SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-002.
    PARAMETERS: P_FILENM(128) TYPE C OBLIGATORY.
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN POSITION 33.
    PARAMETER: P_LOKAAL AS CHECKBOX USER-COMMAND SRC.
    SELECTION-SCREEN COMMENT 35(6) TEXT-003.
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN END OF BLOCK B2.
    SELECTION-SCREEN SKIP.
    SELECTION-SCREEN BEGIN OF BLOCK B3 WITH FRAME TITLE TEXT-004.
    PARAMETERS: P_DEL(2) TYPE C .
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 1(12) TEXT-005 FOR FIELD P_APPL.
    SELECTION-SCREEN POSITION 33.
    PARAMETERS:  P_APPL(3) TYPE C.
    SELECTION-SCREEN POSITION 37.
    PARAMETERS: P_APDESC(40) TYPE C.
    SELECTION-SCREEN END OF LINE.
    PARAMETERS: P_MKDT(8) TYPE N,
                P_NOINV(6) TYPE N.
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 1(12) TEXT-006 FOR FIELD P_TOAMNT.
    SELECTION-SCREEN POSITION 33.
    PARAMETERS: P_TOAMNT(13) TYPE N.
    SELECTION-SCREEN POSITION 47.
    PARAMETERS: P_TEKEN(1) TYPE C.
    SELECTION-SCREEN END OF LINE.
    PARAMETERS: P_DESC(60) TYPE C.
    SELECTION-SCREEN END OF BLOCK B3.
    ***********************************************************************************************REPORT  Z6890_PROJ_REPORT_DRAFT                 .
    DATA: BEGIN OF GW_LINE,
          TEXT(700) TYPE C,
          END OF GW_LINE.
    DATA: GIN_FILE LIKE TABLE OF GW_LINE.
    INCLUDE Z6890_PROJINCLUDE_SEL_SCREEN.
    AT SELECTION-SCREEN.
      CASE SY-UCOMM.
        WHEN  'EXEC'.
          IF P_LOKAAL = 'X'.
            PERFORM MV_DATA_FRM_PRES_INT .
          ELSE.
            PERFORM OPEN_FILE_ONAPP_SERVER.
          ENDIF.
          LOOP AT SCREEN.
            IF SCREEN-NAME = 'P_DEL'.
              SCREEN-INPUT = 0.
              SCREEN-OUTPUT = 1.
              P_DEL = 'HI'.
            ENDIF.
            IF SCREEN-NAME = 'P_APPL'.
              SCREEN-INPUT = 0.
              SCREEN-OUTPUT = 1.
              P_APPL = 'CHF'.
            ENDIF.
            MODIFY SCREEN.
          ENDLOOP.
        WHEN 'BACK'.
          LEAVE PROGRAM.
        WHEN 'EXIT'.
          LEAVE PROGRAM.
        WHEN 'CANCEL'.
          LEAVE PROGRAM.
      ENDCASE.
    AT SELECTION-SCREEN  OUTPUT.
      SET PF-STATUS 'PROJ'.
      LOOP AT SCREEN.
        IF SCREEN-NAME = 'P_DEL'.
          SCREEN-INPUT = 0.
          SCREEN-OUTPUT = 1.
        ENDIF.
        IF SCREEN-NAME = 'P_APPL'.
          SCREEN-INPUT = 0.
          SCREEN-OUTPUT = 1.
        ENDIF.
        IF SCREEN-NAME = 'P_APDESC'.
          SCREEN-INPUT = 0.
          SCREEN-OUTPUT = 1.
        ENDIF.
        IF SCREEN-NAME = 'P_MKDT'.
          SCREEN-INPUT = 0.
          SCREEN-OUTPUT = 1.
        ENDIF.
        IF SCREEN-NAME = 'P_NOINV'.
          SCREEN-INPUT = 0.
          SCREEN-OUTPUT = 1.
        ENDIF.
        IF SCREEN-NAME = 'P_TOAMNT'.
          SCREEN-INPUT = 0.
          SCREEN-OUTPUT = 1.
        ENDIF.
        IF SCREEN-NAME = 'P_TEKEN'.
          SCREEN-INPUT = 0.
          SCREEN-OUTPUT = 1.
        ENDIF.
        IF SCREEN-NAME = 'P_DESC'.
          SCREEN-INPUT = 0.
          SCREEN-OUTPUT = 1.
        ENDIF.
        MODIFY SCREEN.
      ENDLOOP.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_LAUFD.
      CALL FUNCTION 'F4_DATE'
       EXPORTING
         DATE_FOR_FIRST_MONTH               = SY-DATUM
         DISPLAY                            = ' '
        FACTORY_CALENDAR_ID                = ' '
        GREGORIAN_CALENDAR_FLAG            = ' '
        HOLIDAY_CALENDAR_ID                = ' '
        PROGNAME_FOR_FIRST_MONTH           = ' '
       IMPORTING
         SELECT_DATE                        = P_LAUFD
        SELECT_WEEK                        =
        SELECT_WEEK_BEGIN                  =
        SELECT_WEEK_END                    =
      EXCEPTIONS
        CALENDAR_BUFFER_NOT_LOADABLE       = 1
        DATE_AFTER_RANGE                   = 2
        DATE_BEFORE_RANGE                  = 3
        DATE_INVALID                       = 4
        FACTORY_CALENDAR_NOT_FOUND         = 5
        HOLIDAY_CALENDAR_NOT_FOUND         = 6
        PARAMETER_CONFLICT                 = 7
        OTHERS                             = 8
      IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILENM.
      IF TMP = SSCRFIELDS-UCOMM.
        CLEAR SSCRFIELDS-UCOMM.
        CLEAR TMP.
      ELSE.
        SSCRFIELDS-UCOMM = 'SRC'.
      ENDIF.
      CASE SSCRFIELDS-UCOMM.
        WHEN 'SRC'.
          TMP = SSCRFIELDS-UCOMM.
          CALL FUNCTION '/SAPDMC/LSM_F4_FRONTEND_FILE'
    EXPORTING
       PATHNAME               =
               CHANGING
                 PATHFILE               = V_FILENAME
             EXCEPTIONS
               CANCELED_BY_USER       = 1
       SYSTEM_ERROR           = 2
       OTHERS                 = 3
          IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
            IF SY-SUBRC = 1.
              MESSAGE I000(Z6890_PROJ) .
            ENDIF.
          ENDIF.
          P_FILENM = V_FILENAME.
          CLEAR SSCRFIELDS-UCOMM.
        WHEN OTHERS.
          CALL FUNCTION 'F4_DXFILENAME_TOPRECURSION'
               EXPORTING
                 I_LOCATION_FLAG       = 'A'
                 I_SERVER              = 'ides47_i47_00'
                 I_PATH                = 'D:\usr\sap\'
                 FILEMASK              = '.'
                 FILEOPERATION         = 'R'
               IMPORTING
          O_LOCATION_FLAG       =
          O_SERVER              =
                 O_PATH                = FILE
          ABEND_FLAG            =
        EXCEPTIONS
          RFC_ERROR             = 1
          ERROR_WITH_GUI        = 2
          OTHERS                = 3
          IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
          ENDIF.
          P_FILENM = FILE.
         CLEAR SSCRFIELDS-UCOMM.
      ENDCASE.
    *&      Form  MV_DATA_FRM_PRES_INT
          text
    -->  p1        text
    <--  p2        text
    FORM MV_DATA_FRM_PRES_INT .
      DATA: F_NAME TYPE STRING.
      F_NAME = P_FILENM.
      CALL FUNCTION 'GUI_UPLOAD'
        EXPORTING
          FILENAME                      = F_NAME
         FILETYPE                      = 'ASC'
      HAS_FIELD_SEPARATOR           = ' '
      HEADER_LENGTH                 = 0
      READ_BY_LINE                  = 'X'
      DAT_MODE                      = ' '
      CODEPAGE                      = ' '
      IGNORE_CERR                   = ABAP_TRUE
      REPLACEMENT                   = '#'
    IMPORTING
      FILELENGTH                    =
      HEADER                        =
        TABLES
          DATA_TAB                      = GIN_FILE
    EXCEPTIONS
       FILE_OPEN_ERROR               = 1
      FILE_READ_ERROR               = 2
      NO_BATCH                      = 3
      GUI_REFUSE_FILETRANSFER       = 4
      INVALID_TYPE                  = 5
      NO_AUTHORITY                  = 6
      UNKNOWN_ERROR                 = 7
      BAD_DATA_FORMAT               = 8
      HEADER_NOT_ALLOWED            = 9
      SEPARATOR_NOT_ALLOWED         = 10
      HEADER_TOO_LONG               = 11
      UNKNOWN_DP_ERROR              = 12
      ACCESS_DENIED                 = 13
      DP_OUT_OF_MEMORY              = 14
      DISK_FULL                     = 15
      DP_TIMEOUT                    = 16
      OTHERS                        = 17
      IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
      IF SY-SUBRC = 1.
       LEAVE TO LIST-PROCESSING.
       WRITE: / 'Error: File could not be opened!'.
        MESSAGE I001(Z6890_PROJ) WITH P_FILENM.
      ENDIF.
      BREAK-POINT.
    ENDFORM.                    " MV_DATA_FRM_PRES_INT
    *&      Form  OPEN_FILE_ONAPP_SERVER
          text
    -->  p1        text
    <--  p2        text
    FORM OPEN_FILE_ONAPP_SERVER  .
    ENDFORM.

    Hi Piyush,
    Add the below code in your program.
    *Note: you have to take two parameters for files.
    If you select check box then p_pc parameter is visible.
    if you dont select check box then p_app parameter is visible.
    PARAMETERS: p_chk1 AS CHECKBOX USER-COMMAND rusr.
    SELECTION-SCREEN: BEGIN OF BLOCK blk1 WITH FRAME.
    PARAMETERS: p_pc  LIKE rlgrap-filename MODIF ID abc.
    PARAMETERS: p_app LIKE rlgrap-filename MODIF ID def.
    SELECTION-SCREEN: END OF BLOCK blk1.
    AT SELECTION-SCREEN OUTPUT.
      LOOP AT SCREEN.
        IF screen-group1 = 'ABC'.
          CLEAR: p_pc, p_app.
          IF p_chk1 = 'X'.
            screen-active = 1.
          ELSE.
            screen-active = 0.
          ENDIF.
          MODIFY SCREEN.
        ENDIF.
        IF screen-group1 = 'DEF'.
          CLEAR: p_pc, p_app.
          IF p_chk1 <> 'X'.
            screen-active = 1.
          ELSE.
            screen-active = 0.
          ENDIF.
          MODIFY SCREEN.
        ENDIF.
      ENDLOOP.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_app.
      PERFORM get_fname_app.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_pc.
      CALL FUNCTION 'F4_FILENAME'
        IMPORTING
          file_name = p_pc.
    *&      Form  get_fname_app
          text
    FORM get_fname_app.
      DATA: c_fnh_mask TYPE dxfields-filemask VALUE '.',
      search_dir TYPE dxfields-longpath VALUE '/sapglobal/users',
      file_path LIKE dxfields-longpath.
      CALL FUNCTION 'F4_DXFILENAME_TOPRECURSION'
        EXPORTING
          i_location_flag = 'A'
          i_server        = ' '
          i_path          = search_dir
          filemask        = c_fnh_mask
          fileoperation   = 'R'
        IMPORTING
          o_path          = file_path
        EXCEPTIONS
          rfc_error       = 1
          OTHERS          = 2.
      IF sy-subrc EQ 0.
        p_app = file_path.
      ENDIF.
    ENDFORM.                    "get_fname_app

  • Dynamic selection screen parameter

    Hello All,
    I am facing problem in dynamic parameter declaration in selection screen. My requirement is as below,
    Want to have 2 parameters in selection screen and based on first parameter (table fields) selected value, the second parameter (display the value of the selected table field) should display value of the selected field.
    The problem is the second paramter type should be of first parameter selected field.
    How to declare parameter dynamically after getting the first parameter selected field.
    Thanks in Advance.
    Regards,
    Suganya.

    hi
    You may use the Runtime Type Information(RTTI)/ RTTS to get the parameter type at runtime
    Process would be :
    > create a variable: l_var type ref to CL_ABAP_ELEMDESCR.
    >  l_var ?= cl_abap_typedescr=>describe_by_data(parameter).
    > loop at l_var->components into wa
    > process.
    > endloop
    shiva

  • How to handle Event when a radio button in selection screen is clicked

    Hi all,
       What is the Event generated when a radio button is clicked in the selection Screen. My requirement is .If one radio button is clicked a field in selection screen should be greyed.
       Here I used AT SELECTION-SCREEN OUTPUT. but this event is generated only if i press 'ENTER' after clicking the radio button in the selection screen.
       Is there any other way to process this radio button event?
    Thanks&Best Regards,
    Vishnu

    hi,
    try like this
    TABLES : kna1,lfa1.
    SELECTION-SCREEN:BEGIN OF BLOCK blk1 WITH FRAME TITLE text-002.
    SELECTION-SCREEN BEGIN OF LINE.
    PARAMETERS : rad_but1 RADIOBUTTON GROUP one DEFAULT 'X' USER-COMMAND ucom.
    SELECTION-SCREEN COMMENT 3(26) text-003.
    SELECT-OPTIONS : kunnr FOR kna1-kunnr.
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN BEGIN OF LINE.
    PARAMETERS : rad_but2 RADIOBUTTON GROUP one .
    SELECTION-SCREEN COMMENT 3(26) text-004.
    SELECT-OPTIONS : lifnr FOR lfa1-lifnr.
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN:END OF BLOCK blk1.
    AT SELECTION-SCREEN OUTPUT.
      LOOP AT SCREEN.
        IF rad_but1 = 'X'.
          IF screen-name = 'KUNNR-LOW' OR screen-name = 'KUNNR-HIGH' .
            screen-input = '1'.
            MODIFY SCREEN.
          ENDIF.
          IF screen-name = 'LIFNR-LOW' OR screen-name = 'LIFNR-HIGH'.
            screen-input = '0'.
            REFRESH lifnr.
            MODIFY SCREEN.
          ENDIF.
        ENDIF.
        IF rad_but2 = 'X'.
          IF screen-name = 'KUNNR-LOW' OR screen-name = 'KUNNR-HIGH'.
            REFRESH kunnr.
            screen-input = '0'.
            MODIFY SCREEN.
          ENDIF.
          IF screen-name = 'LIFNR-LOW' OR screen-name = 'LIFNR-HIGH'.
            screen-input = '1'.
            MODIFY SCREEN.
          ENDIF.
        ENDIF.
      ENDLOOP.
    reward if usefull....

  • How to use MODIF ID at a SELECTION-SCREEN

    Hello,
    how can use a SELECTION-SCREEN block with MODIF ID? My SELECTION-SCREEN definition looks like the example below and I want to combine it with a MODIF ID - how can I do this?
    SELECTION-SCREEN BEGIN OF BLOCK par3 WITH FRAME TITLE text-003.
    PARAMETERS:    p_pfadn  LIKE rlgrap-filename
                   DEFAULT    '/home/dsbftp/due_test/konditionen_avs3.txt'.
    SELECTION-SCREEN SKIP 1.
    PARAMETERS:    p_trans  TYPE tcode DEFAULT 'JC03',
                   p_appl   TYPE kappl DEFAULT 'J0'.
    SELECTION-SCREEN END OF BLOCK par3.
    thx

    Hi Mike,
    To modify the appearance of an input field on the selection screen, you must assign the parameter to a modification group as follows:
    PARAMETERS <p> ...... MODIF ID <key> ......
    The name of modification group <key> should be a three-character variable name without quotation marks.
    The MODIF ID addition always assigns <key> to the SCREEN-GROUP1 column of internal table SCREEN.
    Parameters assigned to a modification group can be processed as an entire group with the LOOP AT SCREEN and MODIFY SCREEN statements during the AT SELECTION-SCREEN OUTPUT event.
    You can do the following modifications to the selection screen elements:
    1) REQUIRED: When you set REQUIRED = 1, a field that is ready for input is made mandatory
    2) INPUT: When you set INPUT = 1,  Ready for input, even if Input is not set statically.
    3) OUTPUT: When you set OUTPUT = 1, Field is for display only
    4) INTENSIFIED: When you set OUTPUT = 1, Field is highlighted
    4) INVISIBLE: When you set INVISIBLE = 1, Screen field is not displayed, regardless of the static attributes.
    5) ACTIVE: When you set ACTIVE = 1, At the beginning of the PBO, ACTIVE is always set to 1, regardless of the static attribute settings. Setting ACTIVE to 0 automatically sets INPUT = 0, OUTPUT = 0, and INVISIBLE = 1. 
    Here is the sample code:
    REPORT modif_example.
    PARAMETERS: FIELD1(10) MODIF ID FL1,
                FIELD2(12) MODIF ID FL2,
                FIELD3(15) MODIF ID FL3,
                FIELD4(20) MODIF ID FL3.
    AT SELECTION-SCREEN OUTPUT.
    LOOP AT SCREEN.
      IF SCREEN-GROUP1 = 'FL1'.
        SCREEN-INPUT = '1'.
        MODIFY SCREEN.
        CONTINUE.
      ENDIF.
      IF SCREEN-GROUP1 = 'FL2'.
        SCREEN-INPUT = '0'.
        MODIFY SCREEN.
        CONTINUE.
      ENDIF.
      IF SCREEN-GROUP1 = 'FL3'.
        SCREEN-REQUIRED = '1'.
        MODIFY SCREEN.
        CONTINUE.
      ENDIF.
    ENDLOOP.
    Hope it helps.
    Regards,
    Neeraj Gupta

  • AT SELECTION-SCREE / AT SELECTION-SCREEN OUTPUT

    Hi,
    I have 3 check boxes in my selection-screen. My requirement is if I check any one checkbox  out of 3 checkboxes on my selection-screen other two checkboxes should disable ( I mean not editable). Can anybody suggest how to do this. If possible please send me a piece of code.
    SELECTION-SCREEN BEGIN OF BLOCK ONE WITH FRAME TITLE TEXT-001.
    PARAMETERS: CH_ONE   AS CHECKBOX .
    SELECTION-SCREEN END OF BLOCK ONE.
    SELECTION-SCREEN BEGIN OF BLOCK TWO WITH FRAME TITLE TEXT-002.
    PARAMETERS: CH_TWO   AS CHECKBOX .
    SELECTION-SCREEN END OF BLOCK TWO.
    SELECTION-SCREEN BEGIN OF BLOCK THREE WITH FRAME TITLE TEXT-003.
    PARAMETERS: CH_THREE   AS CHECKBOX .
    SELECTION-SCREEN END OF BLOCK THREE.
    Thanks and Regards,
    Surya.

    do this way ..
    SELECTION-SCREEN BEGIN OF BLOCK ONE WITH FRAME TITLE TEXT-001.
    PARAMETERS: CH_ONE AS CHECKBOX .
    SELECTION-SCREEN END OF BLOCK ONE.
    SELECTION-SCREEN BEGIN OF BLOCK TWO WITH FRAME TITLE TEXT-002.
    PARAMETERS: CH_TWO AS CHECKBOX .
    SELECTION-SCREEN END OF BLOCK TWO.
    SELECTION-SCREEN BEGIN OF BLOCK THREE WITH FRAME TITLE TEXT-003.
    PARAMETERS: CH_THREE AS CHECKBOX .
    SELECTION-SCREEN END OF BLOCK THREE.
    AT SELECTION-SCREEN OUTPUT.
    IF CH_ONE = 'X'.
    LOOP AT SCREEN.
    IF ( SCREEN-NAME  = 'CH_TWO' ) OR ( SCREEN-NAME = 'CH_THREE' ).
    SCREEN-INPUT = 0.
    MODIFY SCREEN.
    ENDIF.
    ENDLOOP.
    ENDIF.
    IF CH_TWO = 'X'.
    LOOP AT SCREEN.
    IF ( SCREEN-NAME  = 'CH_ONE' ) OR ( SCREEN-NAME = 'CH_THREE' ).
    SCREEN-INPUT = 0.
    MODIFY SCREEN.
    ENDIF.
    ENDLOOP.
    ENDIF.
    IF CH_THREE = 'X'.
    LOOP AT SCREEN.
    IF ( SCREEN-NAME  = 'CH_TWO' ) OR ( SCREEN-NAME = 'CH_ONE' ).
    SCREEN-INPUT = 0.
    MODIFY SCREEN.
    ENDIF.
    ENDLOOP.
    ENDIF.

  • Detailed pop up screen in selection screen - urgent

    hai experts,
    how can we give a detailed pop up screen in selection screen.
    My requirement is,
    To display Details of spool Nos taken for current porogram to take print out from end user.
    from OWN SPOOL REQUEST displays all other programs........
    can any one give a right solution?
    reward will avail for use full answer.
    thanks in advance.
    regards,
    jai.m

    Hi Jai
    May be you can use this FM POPUP_WITH_TABLE_DISPLAY_OK with the list of spool number populated into internal table.
    If you are particulary looking for selection screen, then decalre your selection screen as below
    Selection-screen begin of screen 9000.
    Selection-screen end of screen.
    Then use the statement Call selection-screen 9000 starting at x y.
    Hope this helps !
    Regards
    Ranganath

  • Problem with user defined selection-screens

    Hi,
    in my case, i have a default selection screen and a user defined selection screen. Now, after selecting a radio button in default selection screen, the user defined selection screen is called. after executing it report output is displayed. now if i press f3 (back) it is going to default selection screen. here my requirement is, when i press f3 it should go to the user defined selection.
    Can u plz help me solve this.
    bye n regards
    sree

    Any modifications to screen 1000 will be lost the next time the program is generated.
    When the user hits the back key from the report output, your ABAP is restarted just like when you originally started it.  That is why you are getting the default selection screen again.
    Use the AT USER-COMMAND event.  When BACK is hit from the report, use the SUBMIT command to re-execute the program, passing it the selections from the default selection screen.  Leave out the RETURN option.
    For help on filling the selection screen during SUBMIT, help is available at
    http://help.sap.com/saphelp_470/helpdata/en/9f/dba51a35c111d1829f0000e829fbfe/frameset.htm

  • User defined selection screen

    Hi, In my program i used a default seelction screen and 5 user defined selection screen. Based on the selections made in default selection screen, it should go to the corresponding user defined screen.
    and the problem iam getting if i press enter jey insted of F8.
    ""Selection screen ZP2I_MASSCHANGE_TEMP1 1000 was
    not called using CALL SELECTION-SCREEN"""
    the code is as follows.
          A T   S E L E C T I O N-S C R E E N
    *AT SELECTION-SCREEN.
    AT SELECTION-SCREEN ON RADIOBUTTON GROUP rgp1.
    CHECK SY-UCOMM EQ 'ONLI' OR SY-UCOMM EQ 'CRET' .
    Download
      IF r_dwnld = c_check.
    Material Screen Call
        IF r_matplt = c_check.
          CLEAR p_werks7.
          sree = 'A'.
          CALL SELECTION-SCREEN 170.
          ENDIF.
    Material Storage Screen Call
        IF r_matstr = c_check.
          CLEAR p_werks1.
          sree = 'B'.
          CALL SELECTION-SCREEN 110.
        ENDIF.
    Material Handling Screen Call
        IF r_mathan = c_check.
          CLEAR p_werks2.
          sree = 'C'.
          CALL SELECTION-SCREEN 120.
        ENDIF.
    Material Pick/Up Delivery Screen Call
        IF r_pcdt = c_check.
          CLEAR p_werks3.
          sree = 'D'.
          CALL SELECTION-SCREEN 130.
        ENDIF.
    Material Inboundlogistics Screen Call
        IF r_inlogs = c_check.
          CLEAR p_werks4.
          sree = 'E'.
          CALL SELECTION-SCREEN 140.
        ENDIF.
    Material Packaging Screen Call
        IF r_pkng = c_check.
          CLEAR p_werks5.
          sree = 'F'.
          CALL SELECTION-SCREEN 150.
        ENDIF.
      ENDIF.
    Upload Screen Call
      IF r_upld = c_check.
        IF ( r_matplt = c_check OR
           r_matstr = c_check OR
           r_mathan = c_check OR
           r_pcdt   = c_check OR
           r_inlogs = c_check OR
           r_pkng   = c_check  ).
          CLEAR p_uload.
          sree = 'G'.
          CALL SELECTION-SCREEN 160.
        ENDIF.
      ENDIF.
         s T A R T - O F - S E L E C T I O N
    START-OF-SELECTION.
    DOWNLOAD
      CASE sree.
        WHEN 'A'.
    Select Material Details
          PERFORM get_material_data.
          IF NOT tbl_matplt[] IS INITIAL.
            IF p_dalv7 = c_check.
    Display list in ALV
              PERFORM setup_alv_report.
            ELSE.
    Download Storage data into local file
              PERFORM download_file USING  p_matdet.
            ENDIF.
          ELSE.
            MESSAGE s020.
          ENDIF.
          CALL SELECTION-SCREEN 170.
    Select Material storage data
        WHEN 'B'.
          PERFORM get_storage_data.
          IF NOT tbl_matstr[] IS INITIAL.
            IF p_dalv1 = c_check.
    Display list in ALV
              PERFORM setup_alv_report.
            ELSE.
    Download Storage data into local file
              PERFORM download_file USING  p_matstr.
            ENDIF.
          ELSE.
            MESSAGE s020.
          ENDIF.
          CALL SELECTION-SCREEN 110.
    Select Material Handling data
        WHEN 'C'.
          PERFORM get_materialhandling.
          IF NOT tbl_mathand[] IS INITIAL.
            IF p_dalv2 = c_check.
    Display list in ALV
              PERFORM setup_alv_report.
            ELSE.
    Download Material Handling data into local file
              PERFORM download_file USING  p_mathan.
            ENDIF.
          ELSE.
            MESSAGE s020.
          ENDIF.
          CALL SELECTION-SCREEN 120.
    Select Pick/Up DayTime data
        WHEN 'D'.
          PERFORM get_pickup_delivery.
          IF NOT tbl_pcdel[] IS INITIAL.
            IF p_dalv3 = c_check.
    Display list in ALV
              PERFORM setup_alv_report.
            ELSE.
    Download Pick/Up DayTime data into local file
              PERFORM download_file USING  p_pcdt.
            ENDIF.
          ELSE.
            MESSAGE s020.
          ENDIF.
          CALL SELECTION-SCREEN 130.
    Select Inbound Logistics data
        WHEN 'E'.
          PERFORM get_inboundlogistics.
          IF NOT tbl_inlog[] IS INITIAL.
            IF p_dalv4 = c_check.
    Display list in ALV
              PERFORM setup_alv_report.
            ELSE.
    Download Inbound Logistics data into local file
              PERFORM download_file USING  p_inlogs.
            ENDIF.
          ELSE.
            MESSAGE s020.
          ENDIF.
          CALL SELECTION-SCREEN 140.
    Select Packaging data
        WHEN 'F'.
          PERFORM get_packaging.
          IF NOT tbl_pkng[] IS INITIAL.
            IF p_dalv5 = c_check.
    Display list in ALV
              PERFORM setup_alv_report.
            ELSE.
    Download Packaging data into local file
              PERFORM download_file USING  p_pkng.
            ENDIF.
          ELSE.
            MESSAGE s020.
          ENDIF.
          CALL SELECTION-SCREEN 150.
        WHEN 'G'.
    Material Details data upload
          IF r_matplt = c_check.
    Free memory IDs corresponding to upload tables
            PERFORM free_memory.
    Upload Material details from local file
            PERFORM load_file USING p_uload.
    Prepare data
            PERFORM prepare_mat_data.
    Get actual Material Details from ZP2_MATPLT
            PERFORM get_old_material_data.
    Validate new data against database entries
            PERFORM validate_material_data.
    Check Plant authorization
    Move plants to itab.
            REFRESH tbl_plts.
            LOOP AT tbl_matplt.
              tbl_plts-werks = tbl_matplt-werks.
              APPEND tbl_plts.
              CLEAR  tbl_plts.
            ENDLOOP.
            DELETE ADJACENT DUPLICATES FROM tbl_plts
            COMPARING werks.
    Check authoriztions
            PERFORM check_plant_authorization1 TABLES tbl_plts.
            REFRESH tbl_plts.
            IF p_trun IS INITIAL.
    Modify material data
              PERFORM modify_zp2_matplt.
            ENDIF.
    Material Storage data upload
            IF r_matstr = c_check.
    Free memory IDs corresponding to upload tables
              PERFORM free_memory.
    Upload material storage data from local file
       PERFORM load_matstr_data USING p_uload.
              PERFORM load_file USING p_uload.
    Get the material storage data from database
              PERFORM get_old_storage_data.
    Get material plant data for the corresponding
    Storage data.
              PERFORM get_matplt_data_storage.
    Get data from table fields
              PERFORM get_tblfld_values.
    Validate data against database entries
              PERFORM validate_storage_data.
    Check Plant authorization
    Move plants to itab.
              REFRESH tbl_plts.
              LOOP AT tbl_matstr.
                tbl_plts-werks = tbl_matstr-werks.
                APPEND tbl_plts.
                CLEAR  tbl_plts.
              ENDLOOP.
              DELETE ADJACENT DUPLICATES FROM tbl_plts
              COMPARING werks.
    Check authoriztions
              PERFORM check_plant_authorization1 TABLES tbl_plts.
              REFRESH tbl_plts.
              IF p_trun IS INITIAL.
    Modify material storage data
                PERFORM modify_zp2matstr_table.
              ENDIF.
            ENDIF.
    Material Handling data upload
            IF r_mathan = c_check.
    Free memory IDs corresponding to upload tables
              PERFORM free_memory.
    Upload material Handling data from local file
              PERFORM load_file USING p_uload.
    Get the material Handling data from database
              PERFORM get_old_materialhandling.
    Get material plant data for the corresponding
    handling data.
              PERFORM get_matplt_data_handling.
    Validate data against database entries
              PERFORM validate_handling_data.
    Check Plant authorization
    Move plants to itab.
              REFRESH tbl_plts.
              LOOP AT tbl_mathand.
                tbl_plts-werks = tbl_mathand-werks.
                APPEND tbl_plts.
                CLEAR  tbl_plts.
              ENDLOOP.
              DELETE ADJACENT DUPLICATES FROM tbl_plts
              COMPARING werks.
    Check authoriztions
              PERFORM check_plant_authorization1 TABLES tbl_plts.
              REFRESH tbl_plts.
              IF p_trun IS INITIAL.
    Modify material handling data
                PERFORM modify_zp2mathand_table.
              ENDIF.
       ELSEIF sy-ucomm = c_s.
         LEAVE SCREEN.
            ENDIF.
    Material Pick/Up DayTime data upload
            IF r_pcdt = c_check.
    Free memory IDs corresponding to upload tables
              PERFORM free_memory.
    Upload Pick/Up DayTime file data from local file
              PERFORM load_file USING p_uload.
    Get the Pick/Up DayTime data from database
              PERFORM get_old_pickup_delivery.
    Get Inbound logistics data corresponding to handling
              PERFORM get_inlogs_pcdel.
    Validate data against database entries
              PERFORM validate_pcdel_data.
    Check Plant authorization
    Move plants to itab.
              REFRESH tbl_plts.
              LOOP AT tbl_pcdel.
                tbl_plts-werks = tbl_pcdel-werks.
                APPEND tbl_plts.
                CLEAR  tbl_plts.
              ENDLOOP.
              DELETE ADJACENT DUPLICATES FROM tbl_plts
              COMPARING werks.
    Check authoriztions
              PERFORM check_plant_authorization1 TABLES tbl_plts.
              REFRESH tbl_plts.
              IF p_trun IS INITIAL.
    Modify Pick/Up DayTime table
                PERFORM modify_zp2pcdt_table.
              ENDIF.
       ELSEIF sy-ucomm = c_s.
         LEAVE SCREEN.
            ENDIF.
    Material Inbound Logistics data upload
            IF r_inlogs = c_check.
    Free memory IDs corresponding to upload tables
              PERFORM free_memory.
    Upload Inbound Logistics file data from local file
              PERFORM load_file USING p_uload.
    Get the Inbound Logistics data from database
              PERFORM get_old_inboundlogistics.
    Get data from table fields
              PERFORM get_tblfld_values.
    Get Vendor data
              PERFORM get_vendor_inlog.
    Get material plant data for the corresponding
    Inboundlogistics data.
              PERFORM get_matplt_data_inlog.
    Validate data against database entries
              PERFORM validate_inlog_data.
    Check Plant authorization
    Move plants to itab.
              REFRESH tbl_plts.
              LOOP AT tbl_inlog.
                tbl_plts-werks = tbl_inlog-werks.
                APPEND tbl_plts.
                CLEAR  tbl_plts.
              ENDLOOP.
              DELETE ADJACENT DUPLICATES FROM tbl_plts
              COMPARING werks.
    Check authoriztions
              PERFORM check_plant_authorization1 TABLES tbl_plts.
              REFRESH tbl_plts.
              IF p_trun IS INITIAL.
    Modify Inbound Logistics table
                PERFORM modify_zp2inlog_table.
              ENDIF.
            ENDIF.
    Packaging data upload
            IF r_pkng = c_check.
    Free memory IDs corresponding to upload tables
              PERFORM free_memory.
    Upload Packaging file data from local file
              PERFORM load_file USING p_uload.
    Get the Packaging data from database
              PERFORM get_old_packaging.
    Get material plant data for the corresponding
    Packaging data.
              PERFORM get_matplt_data_pkng.
    Get Vendor data
              PERFORM get_vendor_pkng.
    Get data from table fields
              PERFORM get_tblfld_values.
    Load Primary container reference data
              PERFORM primary_container_data.
    Validate data against database entries
              PERFORM validate_packaging_data.
    Check Plant authorization
    Move plants to itab.
              REFRESH tbl_plts.
              LOOP AT tbl_pkng.
                tbl_plts-werks = tbl_pkng-werks.
                APPEND tbl_plts.
                CLEAR  tbl_plts.
              ENDLOOP.
              DELETE ADJACENT DUPLICATES FROM tbl_plts
              COMPARING werks.
    Check authoriztions
              PERFORM check_plant_authorization1 TABLES tbl_plts.
              REFRESH tbl_plts.
              IF p_trun IS INITIAL.
    Modify Packaging data
                PERFORM modify_zp2pckg_table.
              ENDIF.
            ENDIF.
          ENDIF.
       IF p_trun = c_check.
    Display the Error list
        PERFORM display_result.
          CALL SELECTION-SCREEN 160.
      ENDIF.
      ENDCASE.
    Another problem is If i press BACK on the report output, it is coming to the default selection screen. and my requirement is, it should come to the corressponding user defined selection screen and not the default selection screen.
    PLz help me in this regard.. Iam breaking my heading, but could not able to solve it.
    Thanks in advance
    sree

    Hello,
    You must have defined user command for the radio button. This is not required. Just try putting it in at selection screen. AT SELECTION-SCREEN ON RADIOBUTTON GROUP rgp1.
    the moment the user clicks the radio button it will go to this event and call the screen. Just use AT SELECTION-SCREEN.
    Regards,
    Shekhar Kulkarni

  • Text Box in Selection Screen

    Hi All,
    Is it Possible to provide a text box in the selection screen?
    My requirement is user needs to enter a paragraph in the selection screen and this should be displayed in the form.
    Note : Individual text fields are not required.
    Thanks
    parthi.

    Hi,
    Designe a screen in SE 51 and call that screen in your report program.
    To create a textbox in module pool look at [this|Custom Container in module pool program]
    Thanks,
    Sri.

  • Selection-screen validations

    Hi Experts ,
    I have module pool program there in first screen user have choice to select screen if user select the first screen .The selection will be displayed with two parameters using key word
    selection-screen begin of screen 2002.
    parameters : p_date type sy-datum,
                         p_num  type kunnr.
    selection-screen end of screen 2002.
    call screen '2003'.
    now i want to do validations on these parameters ,
    please let me know how can i validate these selection-screen fields  there i try chain and endchain in screen 2003 , it says no fields in screen 2003. screen 2002 was developed dynamically by systemplease let me know  how to do validations i search it i cant find it plz solve issue .

    hi
    i think there are two methods two create selection screen
    1.  using layout here we can create selection screen with screen painter
    here we can validate using chain end endchain.
    Plz try this on
    Selection Screen
    Defined within an ABAP program; called by the runtime environment or using the CALL SELECTION-SCREEN statement; processed in event blocks of the corresponding ABAP program.
    in main screen we have 3 selections for screen 2002 ,2004, 2006.
    if sy-ucomm = 2002.
    2 .  selection-screen begin of screen 2002.
    parameters : .........
          selection-screen end of screen 2002.
    call selection-screen '2002'.
    once this was triggered after entering vales it return to the next step then
    call screen 2003.
    then it goes to PBO and PAI events.
    endif.
    if sy-ucomm = 2003.
    selection-screen begin of screen 2003.
    parameters : .........
          selection-screen end of screen 2003.
    call selection-screen '2003'.
    once this was triggered after entering vales it return to the next step then
    call screen 2004.
    then it goes to PBO and PAI events.
    endif.
    all these are done in initial screen PBO . and those are created dynamically now i want to do validations on selection-screen fields. we can;t use at selection-screen in module end end module .
    plz let me know if you know any thing more.

Maybe you are looking for

  • Bash script to trim all filenames with special characters recursively?

    Hi, I have a 30 GB directory full of data I recovered from a friend's laptop after her Windows XP crashed. I'd like to burn that data, but I can't, because many of the filenames contain weird characters (spaces, accents, things even worse that my XTe

  • IPhone 3GS crashed, What can I do?

    First of, yes I know, I still have an iPhone 3GS!!!! Anyway, today I just recently updated it to IOS 6(Which I love the new layout). After a few hours of using it, I turned on my music and started temple run. It crashed! I've played temple run and li

  • Save DRAD from purchase order

    Hi, I'm trying to save the deleted and the added documents to an order position while/with saving the order. Therefor I found the function CV200_DB_DRAD_UPDATE which should save the DRAD delta to the db. But it seems to be highly unreliable. Hence i'

  • Verizon Edge not offered to longstanding Verizon customers.

    Why are current Verizon customers who are under contract and not eligible for an upgrade not eligible for Verizon Edge? It would seem to me that long standing Verizon customers should be rewarded with new plans instead of being held to current/out da

  • More trouble with Sync

    When I try to update and Sync new songs onto my Ipod (I click file scroll down and hit "Sync Ipod") On the top of my iTunes is flashes "Syncing iPod Do Not Disconnect" for about one second, and then it just says "iPod sync is complete OK to disconnec