Regarding execution of smartforms without a selection screen.

Hi ,
    I would like to know whether it is possible to generate a smart form, by calling a function module in a report program without the option of selection screen.Can anyone suggest me in this regard.
Thanks in advance,
Shwetha Korlepara.

Hi,
You can do if the smartform generated does not require any input from selection screen.
Check these links.
http://www.sap-basis-abap.com/sapsf001.htm
http://www.sap-img.com/smartforms/smartform-tutorial.htm
Get back in case of any clarifications.Kindly reward points by clicking the star on the left of reply,if it helps.

Similar Messages

  • Select criteria without using SELECTION SCREENs

    Hi everybody,
    I have a report with a single screen, 4 fields for search criteria and 2 alv grids for the output.
    I search db tables with a select statement.
    Is it possible to define a select statement that searches for 3 out of 4 criteria, if the fourth input field isn't filled it?
    Because right now the select statement doesn't return any data if I leave one parameter blank.
    And how can I provide the possibility to define more than one search criteria of one kind withour adding several input fields on the screen?
    For example: Data created on 20070101 and 20070105.
    I know that most of this can be done with selection screens, but is there a possibility to do this without a selection screen?
    Best regards
    Tobias

    You should use SELECT-OPTIONS on your selection screen.  This allows the user to enter all kinds of possiblities, including leaving something blank.  Then in your SELECT statement, you use the IN operator.
    select-options: s_datum for sy-datum.
    select * into table itab
               from ztable
                      where datum IN s_datum.
    If you truly do not want to use a Selection-screen, you could hard code values in the SELECT statement or create a range using the RANGE statement.  The RANGE statement works exactly like SELECT-OPTION statement but without the selection-screen.
    Regards,
    Rich Heilman

  • Report without a selection-screen, just a dynpro

    Hi experts,
    I wrote a small report, which reads out a file. After this I want to display it in a tablecontrol of my dynpro. In the dynpro there is a button to push the data of the tablecontrol in the R/3 via BDC.
    Now I have the problem of a automatic generated Selection-Screen. Which has some fields of my used variables (e.g. file-name, file-typ) and even maybe 10 fields (input-fields and checkboxes) from the BDC program.
    The fact is that it is not possible to use this code, simply without any "START-OF-SELECTION" statement:
    REPORT ZMM_REPORT01.
    TABLES: mseg.
    TYPES:  BEGIN of input_struk,
              matnr TYPE mseg-matnr,
              erfmg TYPE mseg-erfmg,
            END   of input_struk,
           tt_input TYPE TABLE OF input_struk.
    DATA: it_input TYPE tt_input.
    DATA: wa_input LIKE LINE OF it_input.
    CALL SCREEN 100.
    The error is: "Statement 'CALL SCREEN 100' couldnt be reached."
    If I use the program-type M for PROGRAM and not type 1 for REPORT. Then fails with the necessary INCLUDE statement of the BDC program.
    Regards,
    Steffen

    ok, if I decode your big letters, I have to put the CALL SCREEN at the end of my program.
    so I do that but I didn't work . error: the call-statement could be reached.
    REPORT ZMM_REPORT01.
    TABLES: mseg.
    TYPES:  BEGIN of input_struk,
              matnr TYPE mseg-matnr,
              erfmg TYPE mseg-erfmg,
            END   of input_struk,
           tt_input TYPE TABLE OF input_struk.
    DATA: it_input TYPE tt_input.
    DATA: wa_input LIKE LINE OF it_input.
    PARAMETERS: fname TYPE rlgrap-filename DEFAULT 'c:lagerver.dat',
                ftype TYPE rlgrap-filetype DEFAULT 'ASC',
                bwart TYPE MSEG-BWART DEFAULT 201,
                werks TYPE MSEG-WERKS DEFAULT 2000,
                lgort TYPE MSEG-LGORT DEFAULT 2500,
                kostl TYPE COBL-KOSTL DEFAULT 201300.
    START-OF-SELECTION.
    * PBO Module
    MODULE pbo_0100 OUTPUT.
      SET TITLEBAR 'TITLE_100'.
      SET PF-STATUS 'SCREEN_100'.
      PERFORM z_daten_input.
      PERFORM z_convert_dummy.
    ENDMODULE.
    * PAI Module
    MODULE pai_0100 INPUT.
      IF sy-ucomm = 'BACK' OR
         sy-ucomm = 'EXIT' OR
         sy-ucomm = 'CANCEL'.
         LEAVE PROGRAM.
      ELSE.
      DATA: l_date TYPE sy-datum.
      >THE BDC PROGRAM statements<
      ENDIF.
    ENDMODULE.
    FORM z_daten_input.
    DATA: filename TYPE string,   " UNICODE
          result   TYPE boolean.
          filename = fname.
    REFRESH: it_input.
    CALL METHOD cl_gui_frontend_services=>file_exist
      EXPORTING    file       = filename
      RECEIVING    RESULT     = result.
    CALL METHOD CL_GUI_FRONTEND_SERVICES=>GUI_UPLOAD
    EXPORTING
       filename                      = filename
       filetype                      = 'ASC'
       READ_BY_LINE                  = 'X'
       REPLACEMENT                   = '#'
    CHANGING
       data_tab                      = t_dummy[].
    ENDFORM.
    FORM z_convert_dummy.
      LOOP AT T_DUMMY.
        wa_input-matnr = T_DUMMY-VAR+0(11).
        wa_input-erfmg = T_DUMMY-VAR+33(5).
        APPEND wa_input TO it_input.
      ENDLOOP.
    ENDFORM.
    *&spwizard: declaration of tablecontrol 'TC_FILE' itself
    controls: TC_FILE type tableview using screen 0100.
    *&spwizard: output module for tc 'TC_FILE'. do not change this line!
    *&spwizard: update lines for equivalent scrollbar
    module TC_FILE_change_tc_attr output.
      describe table IT_INPUT lines TC_FILE-lines.
    endmodule.
    CALL SCREEN 100.

  • Is there a way to use 'GET PERNR' without the selection screens?

    I would like to use the GET PERNR event in a batch program without using the default selection screens.  I would like to be able to use my own selection screen and parameters, but only get them along with the default selection options for payroll period.  I've tried removing the screen number from the attributes screen, but still get these options.  Is this possible?

    hi Kiran,
    report Category is a Pushbutton on the Attributes popup, it only appears if you use PNP logical DB.
    this is from SAPHelp: "Report Category
    Category used for HR reports that use the PNP logical database. It controls the type and number of fields that appear on the selection screen of an evaluation report."
    hope this helps
    ec

  • Regarding ldb pch (include DBPCHSEL for selection screen)

    hi experts,
    i am developing report for training and event mgmt details for this i m using ldb pch and include DBPCHSEL for standard selection screen what i want that in this include extra parameters & select-options/selection fields for input  are already declared but i dnt want all of these plz help me how to  remove extra selection fields which i dnt want on my customized report i want only one to two selection fields.
    plz help me how to remove these extra fields

    dear amit,
    ven ever u use ldb "pch"  it is not asking for report category means it wnt allow u create a report category.then plz gve another solutions.

  • Working with LDB without selection screen

    can' we take input through file without any selection screen when we are working with LDB?
    Please focus on this.
    Regards
    vamsi.

    Hi,
    yes, u can make use of :
    SET PARAMETER ID command.
    SET PARAMETER ID pid FIELD dobj.
    Effect:
    This statement sets the content of the SPA/GPA parameter specified in pid to the content of the data object dobj. For pid, a flat character-type field is expected that can contain a maximum of 20 characters, which cannot be exclusively blank characters. pid is case-sensitive. For dobj, a flat, (as of release 6.10 character-type) field is expected, whose binary content is transferred in an unconverted format.
    If the SPA/GPA parameter specified for the current user in pid does not yet exist in the SAP memory, it is created. If the SPA/GPA parameter has already been created for the current user, its value is overwritten.
    In a program, SPA/GPA parameters can only be created or assigned values if a name exists for them in the table TPARA. The extended program check reports an error if it can statically determine that a name specified in pid is not contained in the database table TPARA. ist.

  • At selection-screen regarding

    hi all,
    i have a seletion screen in my report with two different blocks
    begin of block b1.
    select-options: s_date like sy-datum.
    end of block b1.
    and the date is in the format like 200801
    and i have another block
    begin of block b2.
    parameters : p_date as checkbox default no.
    select-options: o_print like pbed-perxx.
    end of block b2.
    and the requirement is like when i enter the date in s_date in 200801 format then the last two values should be automatically
    filled in o_print.
    like as follows
    s_date      200801   to  200812
    o_print      01      to     12
    please help me in this regard i have tried with at selection-screen output but its not relevent.
    thanks in advance.
    anupama

    Hi,
    Use the below code.
    data: v_date(6) type n.
    SELECTION-SCREEN BEGIN OF BLOCK B1 with frame.
    SELECT-OPTIONS: S_DATE FOR v_date.
    SELECTION-SCREEN END OF BLOCK B1.
    SELECTION-SCREEN BEGIN OF BLOCK B2 with frame.
    parameters : p_date as checkbox user-command rusr.
    SELECT-OPTIONS: O_PRINT FOR PBED-PERXX.
    SELECTION-SCREEN END OF BLOCK B2.
    AT SELECTION-SCREEN OUTPUT.
    if p_date = 'X'.
      IF NOT S_DATE[] IS INITIAL.
        O_PRINT-SIGN  = 'I'.
        O_PRINT-OPTION  = 'BT'.
        O_PRINT-LOW = S_DATE-LOW+4(2).
        O_PRINT-HIGH  = S_DATE-HIGH+4(2).
        APPEND O_PRINT.
        CLEAR O_PRINT.
      ENDIF.
    else.
       refresh o_print.
    endif.
    Note: After entering the dates in S_DATE, select the check box
    then only you can see the values in o_print. if you deselect the check box then the values in o_print will be deleted

  • Selection Screen getting refreshed after execution..

    Hello All,
    I have a strange problem..
    My selection-screen values are getting refreshed after execution and come back to selection screen. I am using normal ALV Fm to display the values. Can some suggest a possible reason?
    Many thanks,
    V Nair

    No .. I have checked it..Selection variables are not getting refreshed.
    My Code Below
    REPORT  yhr_icm_exception_report.
    Type Pool declarations
    TYPE-POOLS: slis,                                     "For AlV
                sdydo,                                    "Dynamic Documents
                icon.                                     "For ICON
    Table declarations
    TABLES : yhr_icm_exp_log,                             "ICM Exceptions Log
             yhr_icm_exp_hist.                            "ICM Exception History
    Include Constants
    INCLUDE   yhr_icm_constants .                         "Program to hold constants
    Types declarations
    *-To hold return field
    TYPES: BEGIN OF ty_returntab.
            INCLUDE STRUCTURE ddshretval.                 "Interface Structure
    TYPES: END OF ty_returntab.
    *-To hold deletion records
    TYPES : BEGIN OF ty_icm_del,
               tab_name      TYPE yhr_tabname,            "Internal table name
               objid         TYPE hrobjid,                "Object ID
               begda         TYPE begda,                  "Begin Date
               otype         TYPE otype,                  "Object Type
            END OF ty_icm_del.
    *-Message details to be displayed
    TYPES : BEGIN OF ty_message,
              msgnr          TYPE  msgno,                 "System message number
              text           TYPE  yhr_icm_exp_log-msgxx, "Message Text
            END OF ty_message.
    *-To hold exception log
    TYPES : BEGIN OF ty_icm_exp_log,
             msgno           TYPE msgnr,                  "Message number
             run_id          TYPE yhr_icm_erun_id,        "Exception Run ID
             delta_id        TYPE yhr_icm_run_id,         "Run ID
             record_type     TYPE yhr_icm_exp_type,       "Record Type
             otype           TYPE yhr_otype,              "Object Type
             objid           TYPE hrobjid,                "Object ID
             begda           TYPE begda,                  "Begin Date
             msgxx           TYPE msgxx,                  "Message
             status          TYPE yhr_icm_icon,           "Status
             delta_relevance TYPE yhr_delta_rel,          "Delta Relevance
            END OF ty_icm_exp_log.
    *-To hold email attachment
    TYPES: BEGIN OF ty_attach,
               text(500)     TYPE c,                      "Text
    END OF ty_attach.
    *To hold object type & text
    TYPES :BEGIN OF ty_objid_text,
              objid          TYPE objid,                  "Object ID
              text           TYPE emnam,                  "Object Text
           END OF ty_objid_text.
    *-To hold counter values - Exp , Del & historical
    TYPES :BEGIN OF ty_count,
              exp(10)        TYPE c,                      "Exceptions
              del(10)        TYPE c,                      "Deletions
              hist(10)       TYPE c,                      "Historical Deletions
           END OF ty_count.
    *- To hold lock details
    TYPES : BEGIN OF ty_lock,
              live           TYPE c,                      "Live Callidus Program
              genr           TYPE c,                      "Generation Program
              exp            TYPE c,                      "Exception Program
            END OF ty_lock.
    Range Declarations
    RANGES :
           gr_objid          FOR hrp1001-objid,           "Range for Object ID
           gr_pernr          FOR pa0000-pernr.            "Range for Employee number
    Internal Table Declarations
    DATA : gt_records        TYPE STANDARD TABLE OF yhr_icm_exp_report,
           gt_objid_text     TYPE STANDARD TABLE OF ty_objid_text,
           gt_icm_exp_log    TYPE STANDARD TABLE OF ty_icm_exp_log,
           gt_returntab      TYPE STANDARD TABLE OF ty_returntab,
           gt_t777o          TYPE STANDARD TABLE OF t777o,
           gt_diff_tab       TYPE STANDARD TABLE OF yhr_icm_diff,
           gt_del_tab        TYPE STANDARD TABLE OF ty_icm_del, "#EC *
           gt_iattach        TYPE STANDARD TABLE OF ty_attach,
           gt_message        TYPE STANDARD TABLE OF ty_message,
           gt_fieldcat       TYPE slis_t_fieldcat_alv,
           gt_heading        TYPE slis_t_listheader,
           gt_exceptions     TYPE yhr_icm_exp_list_t,
           gt_events         TYPE slis_t_event.
    Structure Declarations
    DATA : gs_objid_text     TYPE ty_objid_text,
           gs_icm_exp_log    TYPE ty_icm_exp_log,
           gs_records        TYPE yhr_icm_exp_report,
           gs_exceptions     TYPE yhr_icm_exp_list,
           gs_count          TYPE ty_count,
           gs_fieldcat       TYPE slis_fieldcat_alv,            "#EC *
           gs_returntab      TYPE ty_returntab,
           gs_icm_exp_hist   TYPE yhr_icm_exp_hist,
           gs_iattach        TYPE ty_attach,
           gs_message        TYPE ty_message,                   "#EC *
           gs_layout         TYPE slis_layout_alv,
           gs_t777o          TYPE t777o,
           gs_lock           TYPE ty_lock.
    Constant declarations
    CONSTANTS:
           c_yes             TYPE string        VALUE 'YES',
           c_no              TYPE string        VALUE 'NO',
           c_true            TYPE c             VALUE 'X',
           c_deletions       TYPE c             VALUE 'D',
           c_delta_no        TYPE c             VALUE 'N',
           c_delta_yes       TYPE c             VALUE 'Y',
           c_historical      TYPE c             VALUE 'H',
           c_a               TYPE c             VALUE 'A',
           c_error           TYPE c             VALUE 'E',
           c_equal(2)        TYPE c             VALUE 'EQ',
           c_participants    TYPE c             VALUE 'P',
           c_include         TYPE c             VALUE 'I',
           c_position        TYPE c             VALUE 'S',
           c_organization    TYPE c             VALUE 'O',
           c_runlock         TYPE string        VALUE 'RUN_LOCK',
           c_parameter       TYPE string        VALUE 'P',
           c_selfield        TYPE string        VALUE 'SEL_FIELD' ,
           c_type            TYPE string        VALUE 'TYPE',
           c_topofpage       TYPE string        VALUE 'TOP_OF_PAGE',
           c_rectype         TYPE string        VALUE ' S_RECTYPE',
           c_objectkey       TYPE string        VALUE 'OBJECTKEY1',
           c_icon_green      TYPE string        VALUE '@08@',
           c_icon_red        TYPE string        VALUE '@0A@',
           c_icon_amber      TYPE string        VALUE '@09@',
           c_green           TYPE string        VALUE 'GREEN',
           c_amber           TYPE string        VALUE 'AMBER',
           c_red             TYPE string        VALUE 'RED',
           c_tabname         TYPE slis_tabname  VALUE 'GT_RECORDS',
           c_structname      TYPE dd02l-tabname VALUE 'YHR_ICM_EXP_REPORT' ,     
           c_siwb_wallpaper  TYPE sdydo_key     VALUE 'SIWB_WALLPAPER',
           c_user_command    TYPE slis_formname VALUE 'F01_ALV_EVENT_USER_COMMAND',
           c_genname         TYPE trdir-name    VALUE 'YHR_ICM_GENERATE_EXCEPTIONS',
           c_expname         TYPE trdir-name    VALUE 'YHR_ICM_EXCEPTION_REPORT',
           c_pf_status       TYPE slis_formname VALUE 'SET_PF_STATUS',
           c_msg_class       TYPE string        VALUE 'YHR_ICM'.
    Global Variable Declarations
    DATA:  gv_email_error    TYPE c,
           gv_email_sent     TYPE c,
           gv_exit           TYPE c.
    Selection Screen - Block I
    SELECTION-SCREEN:   BEGIN OF BLOCK b3 WITH FRAME TITLE text-s07.
    SELECT-OPTIONS:
    *-  Run ID
        s_run_id             FOR yhr_icm_exp_hist-run_id,
    *-  Exception Type
        s_rectyp             FOR yhr_icm_exp_log-record_type NO INTERVALS,
    *-  Object Type
        s_otype              FOR yhr_icm_exp_log-otype NO INTERVALS,
    *-  Object ID
        s_objid              FOR yhr_icm_exp_log-objid NO INTERVALS,
    *-  Start Date
        s_begda              FOR yhr_icm_exp_log-begda,
    *-  Message number
        s_msgno              FOR yhr_icm_exp_log-msgno,
    *-  Message Text
        s_msgxx              FOR yhr_icm_exp_log-msgxx.
    SELECT-OPTIONS:
    *- Delta Relevance
       s_relv                FOR yhr_icm_exp_log-delta_relevance NO INTERVALS.
    PARAMETERS:
    *- Long Text
       p_ltext               AS   CHECKBOX DEFAULT ' '.
    SELECTION-SCREEN:   END OF BLOCK b3.
    Selection Screen - Block II
    SELECTION-SCREEN:   BEGIN OF BLOCK b2 WITH FRAME TITLE text-s08.
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 1(14) text-033.
    *-Sucess
    PARAMETERS:
      p_stat_s               AS CHECKBOX.                  "D11K917251
    SELECTION-SCREEN COMMENT 24(14) text-034.
    *-Warning
    PARAMETERS:
      p_stat_w               AS CHECKBOX.                  "D11K917251
    SELECTION-SCREEN COMMENT 48(15) text-035.
    PARAMETERS:
    *-Error
      p_stat_e               AS CHECKBOX .                 "D11K917251
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN:   END OF BLOCK b2.
    Selection Screen - Block III
    SELECTION-SCREEN:   BEGIN OF BLOCK b4 WITH FRAME TITLE text-s09.
    *-Email Details
    PARAMETERS:
      p_email(128)            TYPE c.
    SELECTION-SCREEN:   END OF BLOCK b4.
                 Selection Screen on value request.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_msgno-low.
      PERFORM f4_message.
                 Selection Screen Output.
    AT SELECTION-SCREEN OUTPUT.
      CHECK gt_returntab[] IS NOT INITIAL.
      REFRESH s_msgno.
      s_msgno-option = c_equal.
      s_msgno-sign = c_include.
      LOOP AT gt_returntab INTO gs_returntab.
        s_msgno-low = gs_returntab-fieldval.
        s_msgno-high = space.
        APPEND s_msgno.
      ENDLOOP.
    At Selection Screen for Validation
    AT SELECTION-SCREEN.
      CLEAR gv_email_error.
    *-Validate Object Type
      PERFORM validate_objecttype.
    *-Validate Exception ID
      PERFORM fetch_exp_header.
    *-Validate Exception Type
      PERFORM validate_exptype.
    *-Validate Message Number
      PERFORM validate_msgno.
    *-Validate Message Type
      PERFORM validate_msgtype.
    *-Validate Delta
      PERFORM validate_delta.
    *-Validate Email ID
      PERFORM validate_email USING p_email
                             CHANGING gv_email_error.
      IF gv_email_error IS NOT INITIAL.
        MESSAGE e000(yhr_icm) WITH text-027.
      ENDIF.
    Initialization
    INITIALIZATION.
    Initialization
      PERFORM initialization.
    Start Of Selection
    START-OF-SELECTION.
      CLEAR : gv_email_error,
              gv_email_sent,
              gv_exit,
              gs_lock.
    Try locking the main program
      PERFORM lock_generation_program.
      CHECK gs_lock IS INITIAL.
    *-Fetch the messages stored in table
      PERFORM fetch_item_records.
    Read object type text.
      PERFORM read_text.
    Get Object Text
      PERFORM get_object_text.
    *-Fetch the current SAP messages
      PERFORM fetch_records.
    *-Update Delta Flag
      PERFORM update_delta_flag.
    *-Compare messages in table & in SAP
      PERFORM compare_message.
    If receiver is not blank, try sending out mail
      PERFORM send_mail USING p_email.
    End Of Selection
    END-OF-SELECTION.
      IF gv_exit IS NOT INITIAL.
        EXIT.
      ENDIF.
    *-Display ALV
      PERFORM display_alv.
    *-Build the event table for ALV display
      PERFORM build_eventtab CHANGING gt_events[].
    *-Fill the layout details
      PERFORM layout_build .
    Release all locks
      PERFORM release_locks.
    *-Finally call the grid display
      PERFORM display_data.
    *&      Form  set_pf_status
          text
         -->RT_EXTAB   text
    FORM set_pf_status USING rt_extab TYPE slis_t_extab.        "#EC *
    Set PF Status
      SET PF-STATUS 'STANDARD'.
    ENDFORM. "Set_pf_status
    *&      Form  DISPLAY_ALV
          text
    -->  p1        text
    <--  p2        text
    FORM display_alv .
    *- Use FM to create field catalog
      CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
        EXPORTING
          i_program_name         = sy-repid
          i_internal_tabname     = c_tabname
          i_structure_name       = c_structname
        CHANGING
          ct_fieldcat            = gt_fieldcat
        EXCEPTIONS
          inconsistent_interface = 1
          program_error          = 1
          OTHERS                 = 1.
      IF sy-subrc = 1.
        MESSAGE i000(yhr_icm) WITH text-001.
        EXIT.
      ENDIF.
    *- Remove SEL Field Column as it is not required
      DELETE gt_fieldcat WHERE fieldname = c_selfield.
    *-If user chooses long text, activate icon
      IF p_ltext IS INITIAL.
        LOOP AT gt_fieldcat INTO gs_fieldcat WHERE fieldname = c_type.
          gs_fieldcat-icon = c_true.
        ENDLOOP.
      ENDIF.
    ENDFORM.                    " DISPLAY_ALV
    *&      Form  BUILD_EVENTTAB
          text
         <--P_GT_EVENTS[]  text
    FORM build_eventtab CHANGING    p_events  TYPE slis_t_event.
      DATA: ls_event TYPE slis_alv_event.
    *-Get the list of event for alv
      CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
        EXPORTING
          i_list_type = 0
        IMPORTING
          et_events   = p_events.
    *-Add top of page event to event list
      READ TABLE p_events
            WITH KEY name = slis_ev_top_of_page
             INTO ls_event.
      IF sy-subrc = 0.
        MOVE c_topofpage TO ls_event-form.
        APPEND ls_event TO p_events.
      ENDIF.
    ENDFORM.                    " BUILD_EVENTTAB
    *&      Form  LAYOUT_BUILD
          text
    -->  p1        text
    <--  p2        text
    FORM layout_build .
      gs_layout-zebra                = c_true.
      gs_layout-colwidth_optimize    = c_true.
      gs_layout-detail_popup         = c_true.
      gs_layout-detail_initial_lines = c_true.
      gs_layout-detail_titlebar      = text-044.
      gs_layout-box_fieldname        = c_selfield.
    ENDFORM.                    " LAYOUT_BUILD
    *&      Form  DISPLAY_DATA
          text
    -->  p1        text
    <--  p2        text
    FORM display_data .
    *-Display ALV display
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
          i_callback_user_command  = c_user_command
          i_background_id          = c_siwb_wallpaper
          i_callback_program       = sy-repid
          i_callback_pf_status_set = c_pf_status
          i_default                = c_true
          i_save                   = c_a
          is_layout                = gs_layout
          it_fieldcat              = gt_fieldcat
          it_events                = gt_events
        TABLES
          t_outtab                 = gt_records.
    ENDFORM.                    " DISPLAY_DATA
    *&      Form  FETCH_RECORDS
          text
    -->  p1        text
    <--  p2        text
    FORM fetch_records .
      REFRESH : gt_diff_tab,
                gt_del_tab,
                gr_pernr,
                gt_exceptions.
      CLEAR:    gs_icm_exp_log.
    *-Get Employee details
      PERFORM get_person_data.
    *-Get Position Details
      PERFORM get_position_data.
    *-Get Organization Details
      PERFORM get_org_data.
    *-Get Exception current SAP exception list.
      PERFORM get_exception_list.
    *-Add deletion records
      PERFORM filter_deletions.
    ENDFORM.                    " FETCH_RECORDS
    *&      Form  top_of_page
          text
    FORM top_of_page.                                           "#EC *
      PERFORM build_comment   USING    gt_heading.
    *-Display Use FM to display Top Of Page
      CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
        EXPORTING
          it_list_commentary = gt_heading[].
      CLEAR gt_heading.
    ENDFORM.                    "TOP_OF_PAGE
    *&      Form  build_comment
          text
         -->P_HEADING  text
    FORM build_comment USING p_heading TYPE slis_t_listheader.
      DATA: ls_hline     TYPE slis_listheader,
            lv_text(120) TYPE c.
    *-Display report title
      ls_hline-typ  = c_historical.
      WRITE text-006 TO lv_text.
      ls_hline-info = lv_text.
      APPEND ls_hline TO p_heading.
      CLEAR ls_hline.
      ls_hline-typ  = c_s.
    *-Remove leading & trailing spaces
      CONDENSE : gs_count-del,  gs_count-exp,  gs_count-hist.
    *-If the count is space then pass 0
      IF gs_count-del = space.
        gs_count-del = 0.
      ENDIF.
      IF gs_count-exp = space.
        gs_count-exp = 0.
      ENDIF.
      IF gs_count-hist = space.
        gs_count-hist = 0.
      ENDIF.
      IF gs_lock IS INITIAL.
    *-Display Deletion, Exception, Historical Count
        CONCATENATE  text-037 gs_count-del
                     text-032 gs_count-exp
                     text-039 gs_count-hist
                INTO ls_hline-info SEPARATED BY space.
      ELSEIF gs_lock-live IS NOT INITIAL.
        ls_hline-info = text-007.
      ELSEIF gs_lock-genr IS NOT INITIAL.
        ls_hline-info = text-008.
      ELSEIF gs_lock-exp IS NOT INITIAL.
        ls_hline-info = text-009.
      ENDIF.
      APPEND ls_hline TO p_heading.
      CLEAR ls_hline.
    ENDFORM.                    "BUILD_COMMENT
    *&      Form  INITIALIZATION
          text
    -->  p1        text
    <--  p2        text
    FORM initialization .
    Read Previous run
    SELECT MAX( run_id )
       INTO s_run_id-low
       FROM yhr_icm_exp_hist.                                  "#EC *
    s_run_id-option = c_equal.
    s_run_id-sign = c_include.
    APPEND s_run_id.
    s_rectyp-option = c_equal.
    s_rectyp-sign = c_include.
    s_rectyp-low = c_error.
    APPEND s_rectyp.
    s_rectyp-low = c_deletions.
    APPEND s_rectyp.
      PERFORM restrict_selections.
    *Get the message from Message Class YHR_ICM
      SELECT msgnr
             text
        FROM t100
        INTO TABLE gt_message
       WHERE arbgb = c_msg_class  AND
             msgnr GT '000'.                                    "#EC *
    ENDFORM.                    " INITIALIZATION
    *&      Form  F4_MESSAGE
          text
         <--P_P_MSGNO  text
    FORM f4_message.
    F4 Help - Display all messages
      CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
        EXPORTING
          retfield        = 'MSGNR'
          dynpprog        = sy-cprog
          dynpnr          = sy-dynnr
          dynprofield     = 'S_MSGNR'
          window_title    = text-045
          value_org       = c_s
          multiple_choice = c_true
        TABLES
          value_tab       = gt_message
          return_tab      = gt_returntab
        EXCEPTIONS
          parameter_error = 1
          no_values_found = 2
          OTHERS          = 1.
      IF sy-subrc = 1.
        MESSAGE i000(yhr_icm) WITH text-002.
        EXIT.
      ELSEIF sy-subrc = 2.
        MESSAGE i000(yhr_icm) WITH text-003.
        EXIT.
      ENDIF.
    ENDFORM.                    " F4_MESSAGE
    *&      Form  VALIDATE_OBJECTTYPE
          text
    -->  p1        text
    <--  p2        text
    FORM validate_objecttype .
      CHECK s_otype-low IS NOT INITIAL.
      CONDENSE s_otype-low.
    Validate object type to check whether user has entered only S, P or O
      IF  s_otype-low NE c_organization AND
            s_otype-low NE c_position AND
              s_otype-low NE c_participants  .
        MESSAGE e000(yhr_icm) WITH 'Enter either S(Position), P(Person) or O(Org Unit)'(021).
      ENDIF.
    ENDFORM.                    " VALIDATE_OBJECTTYPE
    *&      Form  VALIDATE_OBJECTTYPE
    FORM f01_alv_event_user_command USING r_ucomm LIKE sy-ucomm
                                          rs_selfield TYPE slis_selfield."#EC *
      DATA : lv_answer TYPE c,
             lt_fields TYPE STANDARD TABLE OF sval,
             ls_fields TYPE sval.
    *-Get the row user has selected in ALV list
      READ TABLE gt_records INTO gs_records INDEX rs_selfield-tabindex.
      CASE r_ucomm.
        WHEN 'DISP'.
          CASE gs_records-otype.
            WHEN 'S'.
              SET PARAMETER ID 'POT' FIELD gs_records-otype.
              SET PARAMETER ID 'PON' FIELD gs_records-objid.
              CALL TRANSACTION 'PP01_DISP' AND SKIP FIRST SCREEN.
            WHEN 'P'.
              SET PARAMETER ID 'PER' FIELD gs_records-objid.
              CALL TRANSACTION 'PA20' AND SKIP FIRST SCREEN.
            WHEN 'O'.
              SET PARAMETER ID 'POT' FIELD gs_records-otype.
              SET PARAMETER ID 'PON' FIELD gs_records-objid.
              CALL TRANSACTION 'PP01_DISP' AND SKIP FIRST SCREEN.
          ENDCASE.
        WHEN 'CHNG'.
          CASE gs_records-otype.
            WHEN 'S'.
              SET PARAMETER ID 'POT' FIELD gs_records-otype.
              SET PARAMETER ID 'PON' FIELD gs_records-objid.
              CALL TRANSACTION 'PP01' AND SKIP FIRST SCREEN.
            WHEN 'P'.
              SET PARAMETER ID 'PER' FIELD gs_records-objid.
              CALL TRANSACTION 'PA30' AND SKIP FIRST SCREEN.
            WHEN 'O'.
              SET PARAMETER ID 'POT' FIELD gs_records-otype.
              SET PARAMETER ID 'PON' FIELD gs_records-objid.
              CALL TRANSACTION 'PP01' AND SKIP FIRST SCREEN.
          ENDCASE.
        WHEN 'EMAIL'.
    *-    Check whether email has already been sent
          IF  gv_email_sent = c_true.
    *-      If yes, then display pop up to confirm for mailing again
            CALL FUNCTION 'POPUP_TO_CONFIRM'
              EXPORTING
                text_question  = text-041
                text_button_1  = text-042
                text_button_2  = text-043
              IMPORTING
                answer         = lv_answer
              EXCEPTIONS
                text_not_found = 1
                OTHERS         = 1.
            IF sy-subrc = 1.
              MESSAGE i000(yhr_icm) WITH text-004.
              EXIT.
            ENDIF.
    *-     Continue only if user has selected Yes
            CHECK lv_answer = '1'.
          ENDIF.
    *-      Add Email Field & Table
          ls_fields-tabname = 'SZA5_D0700'.
          ls_fields-fieldname =  'SMTP_ADDR'.
          APPEND ls_fields TO lt_fields.
    *-      Use FM to get new Email ID
          CALL FUNCTION 'POPUP_GET_VALUES'
            EXPORTING
              popup_title     = text-s09
              start_column    = '5'
              start_row       = '5'
            TABLES
              fields          = lt_fields
            EXCEPTIONS
              error_in_fields = 1
              OTHERS          = 1.
          IF sy-subrc = 1.
            MESSAGE i000(yhr_icm) WITH text-004.
            EXIT.
          ENDIF.
    *-    Get the Email user has entered
          READ TABLE lt_fields INTO ls_fields INDEX 1.
    *-      Validate Email ID
          PERFORM validate_email USING ls_fields-value
                         CHANGING gv_email_error.
    *-    If the flag is not initial, indicates possible error
          IF  gv_email_error IS NOT INITIAL.
            MESSAGE i000(yhr_icm) WITH text-027.
            EXIT.
          ELSE.
          If no error, then try ending email
            PERFORM send_mail USING ls_fields-value.
          ENDIF.
        WHEN 'REFRESH'.
    *-    Fetch the current SAP messages
          PERFORM fetch_records.
    *-    Update Delta Flag
          PERFORM update_delta_flag.
    *-    Compare messages in table & in SAP
          PERFORM compare_message.
    *-    Refresh alv which is already displayed
          rs_selfield-refresh = c_true.
      ENDCASE.
    ENDFORM.                    "F01_ALV_EVENT_USER_COMMAND
    *&      Form  RESTRICT_SELECTIONS
          text
    -->  p1        text
    <--  p2        text
    FORM restrict_selections .
      TYPE-POOLS sscr.
      STATICS: lt_restrict TYPE sscr_restrict,
               lt_opt_list TYPE sscr_opt_list,
               ls_***      TYPE sscr_***.
    Restrict the wage type selection so the user can only enter
    values with the 'EQ' clause.
      CLEAR lt_opt_list.
      MOVE c_objectkey TO lt_opt_list.
      MOVE c_true TO: lt_opt_list-options-eq,
                      lt_opt_list-options-bt,
                      lt_opt_list-options-cp,
                      lt_opt_list-options-eq,
                      lt_opt_list-options-ge,
                      lt_opt_list-options-gt,
                      lt_opt_list-options-le,
                      lt_opt_list-options-lt.
      APPEND lt_opt_list TO lt_restrict-opt_list_tab.
      MOVE: c_s         TO ls_***-kind,
            c_rectype   TO ls_***-name,
            c_include         TO ls_***-sg_main,
            space       TO ls_***-sg_addy,
            c_objectkey TO ls_***-op_main.
      APPEND ls_***     TO lt_restrict-***_tab.
    *-Restrict the values OTYPE
      MOVE  'S_OTYPE'    TO ls_***-name.
      APPEND ls_***      TO lt_restrict-***_tab.
    *-Restrict the values OBJID
      MOVE    'S_OBJID'  TO ls_***-name.
      APPEND ls_***      TO lt_restrict-***_tab.
    *-Use FM to restrict the values
      CALL FUNCTION 'SELECT_OPTIONS_RESTRICT'
        EXPORTING
          restriction = lt_restrict.
    ENDFORM.                    " RESTRICT_SELECTIONS
    *&      Form  GET_PERSON_DATA
          text
    -->  p1        text
    <--  p2        text
    FORM get_person_data .
      DATA : lt_del_tab TYPE STANDARD TABLE OF yhr_icm_diff.
      SORT gt_icm_exp_log BY msgno .
      gr_pernr-sign = c_include.
      gr_pernr-option = c_equal.
      LOOP AT gt_icm_exp_log INTO gs_icm_exp_log WHERE otype = c_participants AND
                                                       record_type = c_error.
    *-  Sort the table based on msgno and collect pernr
        gr_pernr-sign = c_include.
        gr_pernr-option = c_equal.
        gr_pernr-low = gs_icm_exp_log-objid.
        APPEND gr_pernr.
        CLEAR gr_pernr-low.
        AT END OF msgno.                                        "#EC *
    *-    For the list of Pernr having same PERNR get the current exp details
          IF  gs_icm_exp_log-msgno = c_msg_100.
    *-      Export the pernr list to memory id & import in the below FM
    *-      Selection of records should be based on values exported from here
            EXPORT gr_pernr TO MEMORY ID 'PERNR_0001'.
          Get Org Assignment 0001 Data
            CALL FUNCTION 'Y_HR_DIFF_PERNR_0001_DATA'
              EXPORTING
                period_begda = gs_icm_exp_hist-begda
                period_endda = gs_icm_exp_hist-endda
                refresh      = space
                UPDATE       = space
              TABLES
                diff_tab     = gt_diff_tab
                del_tab      = lt_del_tab.
        ELSEIF  gs_icm_exp_log-msgno = c_msg_101. "Y_HR_DIFF_PERNR_0001_ORG_DATA
          ELSEIF  gs_icm_exp_log-msgno = c_msg_102 .
            EXPORT gr_pernr TO MEMORY ID 'PERNR_0000'.
          Get Actions 0000 Data
            CALL FUNCTION 'Y_HR_DIFF_PERNR_0000_DATA'
              EXPORTING
                period_begda = gs_icm_exp_hist-begda
                period_endda = gs_icm_exp_hist-endda
                refresh      = space
                UPDATE       = space
              TABLES
                diff_tab     = gt_diff_tab
                del_tab      = lt_del_tab.
          ELSEIF  gs_icm_exp_log-msgno = c_msg_103.
            EXPORT gr_pernr TO MEMORY ID 'PERNR_0002'.
          Get Personal Details 0002 Data
            CALL FUNCTION 'Y_HR_DIFF_PERNR_0002_DATA'
              EXPORTING
                period_begda = gs_icm_exp_hist-begda
                period_endda = gs_icm_exp_hist-endda
                refresh      = space
                UPDATE       = space
              TABLES
                diff_tab     = gt_diff_tab
                del_tab      = lt_del_tab.
          ELSEIF  gs_icm_exp_log-msgno = c_msg_104.
            EXPORT gr_pernr TO MEMORY ID 'PERNR_0004'.
          Get Disability 0004 Data
            CALL FUNCTION 'Y_HR_DIFF_PERNR_0004_DATA'
              EXPORTING
                period_begda = gs_icm_exp_hist-begda
                period_endda = gs_icm_exp_hist-endda
                refresh      = space
                UPDATE       = space
              TABLES
                diff_tab     = gt_diff_tab
                del_tab      = lt_del_tab.
          ELSEIF  gs_icm_exp_log-msgno = c_msg_105.
            EXPORT gr_pernr TO MEMORY ID 'PERNR_0006'.
          Get Addresses 0006 Data
            CALL FUNCTION 'Y_HR_DIFF_PERNR_0006_DATA'
              EXPORTING
                period_begda = gs_icm_exp_hist-begda
                period_endda = gs_icm_exp_hist-endda
                refresh      = space
                UPDATE       = space
              TABLES
                diff_tab     = gt_diff_tab
                del_tab      = lt_del_tab.
          ELSEIF  gs_icm_exp_log-msgno = c_msg_106.
            EXPORT gr_pernr TO MEMORY ID 'PERNR_0007'.
          Get Planned Time 0007 Data
            CALL FUNCTION 'Y_HR_DIFF_PERNR_0007_DATA'
              EXPORTING
                period_begda = gs_icm_exp_hist-begda
                period_endda = gs_icm_exp_hist-endda
                refresh      = space
                UPDATE       = space
              TABLES
                diff_tab     = gt_diff_tab
                del_tab      = lt_del_tab.
          ELSEIF  gs_icm_exp_log-msgno = c_msg_107.
            EXPORT gr_pernr TO MEMORY ID 'PERNR_0016'.
          Get Contract Element 0016 Data
            CALL FUNCTION 'Y_HR_DIFF_PERNR_0016_DATA'
              EXPORTING
                period_begda = gs_icm_exp_hist-begda
                period_endda = gs_icm_exp_hist-endda
                refresh      = space
                UPDATE       = space
              TABLES
                diff_tab     = gt_diff_tab
                del_tab      = lt_del_tab.
          ELSEIF  gs_icm_exp_log-msgno = c_msg_108.
            EXPORT gr_pernr TO MEMORY ID 'PERNR_0077'.
          Get Additional Personal 0077 Data
            CALL FUNCTION 'Y_HR_DIFF_PERNR_0077_DATA'
              EXPORTING
                period_begda = gs_icm_exp_hist-begda
                period_endda = gs_icm_exp_hist-endda
                refresh      = space
                UPDATE       = space
              TABLES
                diff_tab     = gt_diff_tab
                del_tab      = lt_del_tab.
          ELSEIF  gs_icm_exp_log-msgno = c_msg_109 .
            EXPORT gr_pernr TO MEMORY ID 'PERNR_0105'.
          Get Communications 0105 Data
            CALL FUNCTION 'Y_HR_DIFF_PERNR_0105_DATA'
              EXPORTING
                period_begda = gs_icm_exp_hist-begda
                period_endda = gs_icm_exp_hist-endda
                refresh      = space
                UPDATE       = space
              TABLES
                diff_tab     = gt_diff_tab
                del_tab      = lt_del_tab.
          ELSEIF  gs_icm_exp_log-msgno = c_msg_110.
            EXPORT gr_pernr TO MEMORY ID 'PERNR_2001'.
          Get Absences 2001 Data
            CALL FUNCTION 'Y_HR_DIFF_PERNR_2001_DATA'
              EXPORTING
                period_begda = gs_icm_exp_hist-begda
                period_endda = gs_icm_exp_hist-endda

  • Too many Parameters in the Selection Screen

    Hi all,
          I have a requirement to include too many parameters in the selection screen. Let me explain the scenario.
      1.  There is an option for Output File name previously. But now i need to provide fields for 5 to 8 file names in the same  Selection Screen.
      2.  There will be 8 more check boxes coming to the selection screen. Could you please provide me the best & Optimal way to incorporate them in the same selection screen.
    Already the screen is overcrowded with many fields & What need is that 'Is there any option to utilise the Screen at most without using Tab Strip?'
    Pleas Help me in this crucial regard.
    Thanks & Best Regards,
    Vishnu

    Hi,
    Use the below logic.
    selection-screen: begin of block blk1 with frame.
    selection-screen: begin of line.
    parameters: p_chk1 as checkbox.
    SELECTION-SCREEN COMMENT 4(5) comm1.
    selection-screen position 10.
    parameters: p_file1 like rlgrap-filename.
    selection-screen: end of line.
    selection-screen: begin of line.
    parameters: p_chk2 as checkbox.
    SELECTION-SCREEN COMMENT 4(5) comm2.
    selection-screen position 10.
    parameters: p_file2 like rlgrap-filename.
    selection-screen: end of line.
    selection-screen: begin of line.
    parameters: p_chk3 as checkbox.
    SELECTION-SCREEN COMMENT 4(5) comm3.
    selection-screen position 10.
    parameters: p_file3 like rlgrap-filename.
    selection-screen: end of line.
    selection-screen: begin of line.
    parameters: p_chk4 as checkbox.
    SELECTION-SCREEN COMMENT 4(5) comm4.
    selection-screen position 10.
    parameters: p_file4 like rlgrap-filename.
    selection-screen: end of line.
    selection-screen: begin of line.
    parameters: p_chk5 as checkbox.
    SELECTION-SCREEN COMMENT 4(5) comm5.
    selection-screen position 10.
    parameters: p_file5 like rlgrap-filename.
    selection-screen: end of line.
    selection-screen: begin of line.
    parameters: p_chk6 as checkbox.
    SELECTION-SCREEN COMMENT 4(5) comm6.
    selection-screen position 10.
    parameters: p_file6 like rlgrap-filename.
    selection-screen: end of line.
    selection-screen: begin of line.
    parameters: p_chk7 as checkbox.
    SELECTION-SCREEN COMMENT 4(5) comm7.
    selection-screen position 10.
    parameters: p_file7 like rlgrap-filename.
    selection-screen: end of line.
    selection-screen: begin of line.
    parameters: p_chk8 as checkbox.
    SELECTION-SCREEN COMMENT 4(5) comm8.
    selection-screen position 10.
    parameters: p_file8 like rlgrap-filename.
    selection-screen: end of line.
    selection-screen: end of block blk1.
    initialization.
    comm1 = 'File1'.
    comm2 = 'File2'.
    comm3 = 'File3'.
    comm4 = 'File4'.
    comm5 = 'File5'.
    comm6 = 'File6'.
    comm7 = 'File7'.
    comm8 = 'File8'.

  • Select-options on selection-screen type char100 problem

    Hi friends! I created on selection-screen a select-options:
    SELECT-OPTIONS: zzcduc     FOR      equi-ZZCDUC.
    The field  equi-ZZCDUC is a CHAR100 field. The problem is when I run program, in this field user can't input more of 46 characters. This is a serial number with 100 characters, why I can input 100 characters?
    Thanks for any help.

    Hi, this is copied from SELECT-OPTION documentation:
    The LOW and HIGH fields of a selection option are displayed in a length up to 18 bytes long (scrollable up to 45 bytes). If you define a length longer than 45, fields are truncated on the selection screen after the 45th character. This affects the first line of the SELECT-OPTIONS table. You can, however, use SUBMIT to pass longer selection options to a report if they are specified with the addition NO-DISPLAY and thus do not appear on the selection screen. Without NO-DISPLAY, the fields are then truncated whenever the selection screen is processed in the background ( SUBMIT without VIA SELECTION-SCREEN).
    regards,

  • AUTHORITY-CHECK before Selection-screen?

    Hi,
    i want to check the authority before the selection-screen. I do it in this way:
    AT SELECTION-SCREEN OUTPUT.
      AUTHORITY-CHECK OBJECT 'Z_REPORT'
               ID 'PROGRAM' FIELD SY-REPID
               ID 'ACTVT'   FIELD '16'. "Ausführen
      IF SY-SUBRC <> 0.
        MESSAGE E010 WITH 'Keine Berechtigung für Programm: '
        SY-REPID.
      ENDIF.
    But the selection appears without any parameters.
    Is there a way to check without the selection-screen?
    thanks.
    regards, Dieter

    Hi Dieter,
    Please check the below code for at selection screen authorization check.
    Handling selection screen events
    AT SELECTION-SCREEN ON p_carrid.
      IF p_carrid IS INITIAL.
        MESSAGE 'Please enter a value' TYPE 'E'.
      ENDIF.
      AUTHORITY-CHECK OBJECT 'S_CARRID'
                          ID 'CARRID' FIELD p_carrid
                          ID 'ACTVT'  FIELD '03'.
      IF sy-subrc = 4.
        MESSAGE 'No authorization for carrier' TYPE 'E'.
      ELSEIF sy-subrc <> 0.
        MESSAGE 'Error in authority check' TYPE 'A'.
      ELSE.
        IF sy-ucomm = 'ONLI'.
          CALL SELECTION-SCREEN '0500'.
        ENDIF.
      ENDIF.
    Regards,
    Md Ziauddin

  • Creating push button on Selection screen application toolbar

    Hi Friends,
    this is a HR-ABAP report. I have to create a push button on Selection screen. when user clicks on that push button 'MODAL DIALOG BOX' has to be displayed containing some data.
    plz kindly give some sample code to do this.
    Regards,
    Radhika Dasharatha.

    Hi,
    1)Use SELECTION-SCREEN  PUSHBUTTON /10(20) PUSH USER-
      COMMAND 'ABC'. in selection screen.
    2) Give the static name to button in INITIALIZATION event like PUSH = 'PRESS'.
    3) At selection screen.
      if sy-ucomm eq 'ABC'.
    call FM HR_BE_GE_MODAL_DIALOG
    endif.
    Thanks
    Sandeep
    Reward if useful

  • Error which validating selection screen data in subroutine

    Hi,this is my code
    selection-screen begin of block b_selection with frame title text-001.
    SELECT-OPTIONS: s_belnr for  rbkp-belnr,                                         "Invoice number
                    s_gjahr for rbkp-gjahr NO-EXTENSION NO INTERVALS,               "Fiscal year
                    s_stat  for  rbkp-rbstat OBLIGATORY NO-EXTENSION DEFAULT c_status, "Invoice status
                    s_blart for rbkp-blart OBLIGATORY DEFAULT c_doc_type,              "Document type
                    s_lifnr for rbkp-lifnr.                                          "Vendor
    selection-screen end of block b_selection.
    at selection-screen.
    select belnr gjahr from rbkp into table i_inv_data
                           where belnr  IN s_belnr
                           and   gjahr  IN s_gjahr
                           and   blart  IN s_blart
                           and   rbstat IN s_stat.
                           and   lifnr  IN s_lifnr.
      if i_inv_data[] is initial.
      message e000 with 'No record matching the search criteria'(001).
      endif.
    This is working fine...now when I try to modularise it, it is nt working
    selection-screen begin of block b_selection with frame title text-001.
    SELECT-OPTIONS: s_belnr for  rbkp-belnr,                                         "Invoice number
                    s_gjahr for rbkp-gjahr NO-EXTENSION NO INTERVALS,               "Fiscal year
                    s_stat  for  rbkp-rbstat OBLIGATORY NO-EXTENSION DEFAULT c_status, "Invoice status
                    s_blart for rbkp-blart OBLIGATORY DEFAULT c_doc_type,              "Document type
                    s_lifnr for rbkp-lifnr.                                          "Vendor
    selection-screen end of block b_selection.
    at selection-screen.
    perform sub_validate_data.
    FORM SUB_VALIDATE_DATA.
    select belnr gjahr from rbkp into table i_inv_data
                           where belnr  IN s_belnr
                           and   gjahr  IN s_gjahr
                           and   blart  IN s_blart
                           and   rbstat IN s_stat.
                           and   lifnr  IN s_lifnr.
      if i_inv_data[] is initial.
      message e000 with 'No record matching the search criteria'(001).
      endif.
    ENDFORM.                    " SUB_VALIDATE_DATA
    the error which I m getting is ' IN s_belnr should be followd by an internal table'Please tell how can I modularize this code and put the checking part in subroutine

    If I remove the period after s_stat your code is compiling without problems:
    SELECTION-SCREEN BEGIN OF BLOCK b_selection WITH FRAME TITLE text-001.
    SELECT-OPTIONS: s_belnr FOR  rbkp-belnr,
                    s_gjahr FOR rbkp-gjahr NO-EXTENSION NO INTERVALS,
                    s_stat  FOR  rbkp-rbstat OBLIGATORY NO-EXTENSION DEFAULT 'X',
                    s_blart FOR rbkp-blart OBLIGATORY DEFAULT 'X',
                    s_lifnr FOR rbkp-lifnr.
    SELECTION-SCREEN END OF BLOCK b_selection.
    AT SELECTION-SCREEN.
      PERFORM sub_validate_data.
    *&      Form  SUB_VALIDATE_DATA
    *       text
    FORM sub_validate_data.
      SELECT belnr gjahr FROM rbkp INTO TABLE i_inv_data
                         WHERE belnr  IN s_belnr
                         AND   gjahr  IN s_gjahr
                         AND   blart  IN s_blart
                         AND   rbstat IN s_stat
                         AND   lifnr  IN s_lifnr.
      IF i_inv_data[] IS INITIAL.
        MESSAGE e000(oo) WITH 'No record matching the search criteria'(001).
      ENDIF.
    ENDFORM.                    " SUB_VALIDATE_DATA
    Check, if you have an additional period somewhere else, or any other subtle differenec.
    Michael

  • Need to generate dynamic selection screen

    Hi,
    'am looking for a requirement in ABAP Programming which is <b>feasible</b>!
      While executing my report, std. selection screen ( 1000) gets displayed and it gives the output list which consists of only one field that will have TABLE NAMES. Once the user selects any one of the record on this output list, I need to display another screen ( selection screen ) with all the key fields of that table that got seleted.
      <b>How do I populate a dynamic selection screen by passing <i>TABLE NAME</i> as parameter with all the <i>keyfields of that table as select-options</i>.</b>
      Awaiting your quick positive reply..
    Regards,
    Kriss.

    hii
    check this one
    SELECTION-SCREEN BEGIN OF BLOCK blk.
    PARAMETERS : p_rb1 TYPE c RADIOBUTTON GROUP rad1 DEFAULT 'X' USER-COMMAND FC,
                 p_rb2 TYPE c RADIOBUTTON GROUP rad1.
    SELECTION-SCREEN END OF BLOCK blk.
    SELECTION-SCREEN BEGIN OF BLOCK blk_1 WITH FRAME.
    PARAMETERS : p_werks1 TYPE werks_d MODIF ID bk1.
    SELECTION-SCREEN END OF BLOCK blk_1.
    SELECTION-SCREEN BEGIN OF BLOCK blk_2 WITH FRAME.
    PARAMETERS : p_werks2 TYPE werks_d MODIF ID bk2,
                 p_matnr2 TYPE matnr   MODIF ID bk2.
    SELECTION-SCREEN END OF BLOCK blk_2.
    AT SELECTION-SCREEN OUTPUT.
      IF p_rb1 = 'X'.
        LOOP AT SCREEN.
          IF screen-group1 = 'BK1'.
            screen-active = 0.
            MODIFY SCREEN.
          ELSE.
            screen-active = 1.
            MODIFY SCREEN.
          ENDIF.
        ENDLOOP.
      ELSE.
        LOOP AT SCREEN.
          IF screen-group1 = 'BK2'.
            screen-active = 0.
            MODIFY SCREEN.
          ELSE.
            screen-active = 1.
            MODIFY SCREEN.
          ENDIF.
        ENDLOOP.
      ENDIF.
    Regards
    Naresh

  • Different Report Output based on different tabstrips on selection screen

    Hi all,
    I have a selection screen which has 3 tabstrips.
    The screen nos are 101,102  and 103.
    Now in each tab there are different input parameters and based on each tab there will be 3 different outputs.
    i.e when I click on tab1 and give the required inputs i will get 1 report output.
    similarly I will get different ouput in the other 2 tabs.
    Can any one suggest some solution how to achieve this.
    Thanks and Regards
    Nazmul Azad

    Look for documentation at [SELECTION-SCREEN - TABBED BLOCK |http://help.sap.com/abapdocu/en/ABAPSELECTION-SCREEN_TABBED.htm]
    Adapgt the sample provided, and in the START-OF-SELECTON event add a CASE/WHEN to execute whichever report you want based on mytab-dynnr value.
    Regards,
    Raymond

Maybe you are looking for

  • Problem with html:select or html:options tags using struts,jsp and tomcat

    Hi I'm updating a Struts-Project to a new layout and therefore rework all jsp Sites. I'm also using a new Folder-Structure and update therefore my struts-config file. My Problem now is: Till now, we had a select-field with a code like this: < html:fo

  • FILE DOWNLOAD CLASS?

    Hi I am working on a webpage that allows the user to download files from the server. However i am not sure how to modify the code to show the download status so the user knows its actually download sumthing - i was under the impression that this is s

  • Populating BW datasource with data using Webservice without PI (=XI)

    Hi all, I have got BW datasource and I want to be able to use external Webservice's method to populate my data source with data. I have created client proxy in BW ( se80 --> Enterprise Services --> Client Proxy ) for my wsdl and logical port in SOAMA

  • InDesign CC Error 11

    I just installed creative cloud onto my computer, and when I tried to open InDesign it gave me an "error 11" message and prompted me to delete and re-install. All other applications have worked fine so far... After I deleted InDesign, I restarted my

  • Dbcontrol 10.2.0.1

    Hi, I have two Oracle database 10.2.0.1 on two different machines with OS Windows Machine 1 -- TEST SERVER (10g) Machine 2 -- LOCAL MACHINE (10g) Now, when i open the dbcontrol for database on machine 1 then it dosent show the statistics of that data