Related to ALV

Hi,
My requirement is to ..
disply output in an ALV list (List display).. Place cursor on a row and select particular data and  this must take U to the FB02 transaction( NOT initial screen but directly to long text screen) . Then user will do ener some text in this transaction..
When it is saved it must come back to the ALV list (from where U called the transaction FB02.)
How to call particular screen and save the text fo diffrent line items.
Please help me in resolving this issue.

Hi,
Check this example..This will satisfy your requirement..IF you double click on the line in the ALV..It will directly take you to the long text screen..
TYPE-POOLS: slis.
Data declaration.
DATA: bdcdata LIKE bdcdata OCCURS 0 WITH HEADER LINE.
DATA: BEGIN OF wa,
        belnr LIKE bkpf-belnr,
        gjahr LIKE bkpf-gjahr,
        bukrs LIKE bkpf-bukrs,
      END OF wa.
DATA: v_repid TYPE syrepid.
v_repid = sy-repid.
DATA: itab LIKE wa OCCURS 0 WITH HEADER LINE.
DATA: t_fieldcatalog TYPE slis_t_fieldcat_alv.
DATA: s_fieldcatalog TYPE slis_fieldcat_alv.
START-OF-SELECTION.
get the data.
  SELECT belnr gjahr bukrs UP TO 10 ROWS
         FROM bkpf
         INTO TABLE itab.
get the field catalog.
  CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
       EXPORTING
            i_program_name     = v_repid
            i_internal_tabname = 'WA'
            i_inclname         = v_repid
       CHANGING
            ct_fieldcat        = t_fieldcatalog.
display alv.
  CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
       EXPORTING
            i_callback_program      = v_repid
            i_callback_user_command = 'USER_COMMAND'
            it_fieldcat             = t_fieldcatalog
       TABLES
            t_outtab                = itab.
FORM user_command USING ucomm LIKE sy-ucomm
selfield TYPE slis_selfield.
  IF ucomm = '&IC1'.
    READ TABLE itab INDEX selfield-tabindex.
    IF sy-subrc = 0.
      PERFORM bdc USING itab-belnr itab-gjahr itab-bukrs.
    ENDIF.
  ENDIF.
ENDFORM.
FORM bdc USING belnr gjahr bukrs.
  REFRESH bdcdata.
  PERFORM bdc_dynpro USING 'SAPMF05L' '0100'.
  PERFORM bdc_field USING 'BDC_CURSOR'
  'RF05L-BELNR'.
  PERFORM bdc_field USING 'BDC_OKCODE'
  '=AZ'.
  PERFORM bdc_field USING 'RF05L-BELNR'
  belnr.
  PERFORM bdc_field USING 'RF05L-BUKRS'
  bukrs.
  PERFORM bdc_field USING 'RF05L-GJAHR'
  gjahr.
  PERFORM bdc_dynpro USING 'SAPMF05L' '0301'.
  PERFORM bdc_field USING 'BDC_CURSOR'
  'BSEG-ZUONR'.
  PERFORM bdc_field USING 'BDC_OKCODE'
  '=LTXT'.
  PERFORM bdc_field USING 'BDC_OKCODE'
  '=LTXT'.
  CALL TRANSACTION 'FB02' USING bdcdata
  MODE 'E'.
ENDFORM.
FORM bdc_dynpro USING program dynpro.
  CLEAR bdcdata.
  bdcdata-program = program.
  bdcdata-dynpro = dynpro.
  bdcdata-dynbegin = 'X'.
  APPEND bdcdata.
ENDFORM.
FORM bdc_field USING fnam fval.
  CLEAR bdcdata.
  bdcdata-fnam = fnam.
  bdcdata-fval = fval.
  APPEND bdcdata.
ENDFORM.
Thanks,
Naren

Similar Messages

  • Material  relating to ALV

    Hi folks,
    plz send me the material relating to ALV, to my mail id [email protected]
    it's very urgent.
    Thanks & Regards
    pabitra

    Hi,
    I am sending sample program for alv.
    Kindly check it.
    REPORT:
    REPORT  YMS_COLOURALV NO STANDARD PAGE HEADING.
    TYPE-POOLS: SLIS, ICON.
    DATA: FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.
    DATA: BEGIN OF IMARA OCCURS 0,
              LIGHT(4) TYPE C,
              MATNR TYPE MARA-MATNR,
              MTART TYPE MARA-MTART,
              MAKTX TYPE MAKT-MAKTX,
              COLOR_LINE(4) TYPE C,
              TCOLOR TYPE SLIS_T_SPECIALCOL_ALV,  "cell
          END OF IMARA.
    DATA: XCOLOR TYPE SLIS_SPECIALCOL_ALV.
    START-OF-SELECTION.
      PERFORM GET_DATA.
      PERFORM WRITE_REPORT.
    Get_Data
    FORM GET_DATA.
      WRITE ICON_GREEN_LIGHT AS ICON TO IMARA-LIGHT.
          IMARA-MATNR = 'ABC'.
          IMARA-MTART = 'ZCFG'.
          IMARA-MAKTX = 'This is description for ABC'.
      APPEND IMARA.
      WRITE ICON_YELLOW_LIGHT AS ICON TO IMARA-LIGHT.
          IMARA-MATNR = 'DEF'.
          IMARA-MTART = 'ZCFG'.
          IMARA-MAKTX = 'This is description for DEF'.
      APPEND IMARA.
      WRITE ICON_RED_LIGHT AS ICON TO IMARA-LIGHT.
          IMARA-MATNR = 'GHI'.
          IMARA-MTART = 'ZCFG'.
          IMARA-MAKTX = 'This is description for GHI'.
      APPEND IMARA.
      LOOP AT IMARA.
        IF SY-TABIX = 1.
          IMARA-COLOR_LINE = 'C410'.     " color line
        ENDIF.
        IF SY-TABIX = 2.                "  color CELL
          CLEAR XCOLOR.
          XCOLOR-FIELDNAME = 'MTART'.
          XCOLOR-COLOR-COL = '3'.
          XCOLOR-COLOR-INT = '1'.       " Intensified on/off
          XCOLOR-COLOR-INV = '0'.
          APPEND XCOLOR TO IMARA-TCOLOR.
        ENDIF.
        MODIFY IMARA.
      ENDLOOP.
    ENDFORM.                    "get_data
    WRITE_REPORT
    FORM WRITE_REPORT.
      DATA: LAYOUT TYPE  SLIS_LAYOUT_ALV.
      LAYOUT-COLTAB_FIELDNAME = 'TCOLOR'.
      LAYOUT-INFO_FIELDNAME = 'COLOR_LINE'.
      PERFORM BUILD_FIELD_CATALOG.
    CALL ABAP LIST VIEWER (ALV)
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
          IS_LAYOUT   = LAYOUT
          IT_FIELDCAT = FIELDCAT
        TABLES
          T_OUTTAB    = IMARA.
    ENDFORM.                    "write_report
    BUILD_FIELD_CATALOG
    FORM BUILD_FIELD_CATALOG.
      DATA: FC_TMP TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE.
      CLEAR: FIELDCAT. REFRESH: FIELDCAT.
      CLEAR: FC_TMP.
      FC_TMP-REPTEXT_DDIC    = 'Status'.
      FC_TMP-FIELDNAME  = 'LIGHT'.
      FC_TMP-TABNAME   = 'IMARA'.
      FC_TMP-OUTPUTLEN  = '4'.
      FC_TMP-ICON       = 'X'.
      APPEND FC_TMP TO FIELDCAT.
      CLEAR: FC_TMP.
      FC_TMP-REPTEXT_DDIC    = 'Material Number'.
      FC_TMP-FIELDNAME  = 'MATNR'.
      FC_TMP-TABNAME   = 'IMARA'.
      FC_TMP-OUTPUTLEN  = '18'.
      APPEND FC_TMP TO FIELDCAT.
      CLEAR: FC_TMP.
      FC_TMP-REPTEXT_DDIC    = 'Material Type'.
      FC_TMP-FIELDNAME  = 'MTART'.
      FC_TMP-TABNAME   = 'IMARA'.
      FC_TMP-OUTPUTLEN  = '10'.
      APPEND FC_TMP TO FIELDCAT.
      CLEAR: FC_TMP.
      FC_TMP-REPTEXT_DDIC    = 'Material'.
      FC_TMP-FIELDNAME  = 'MAKTX'.
      FC_TMP-TABNAME   = 'IMARA'.
      FC_TMP-OUTPUTLEN  = '40'.
      FC_TMP-EMPHASIZE = 'C610'.   " color column
      APPEND FC_TMP TO FIELDCAT.
    ENDFORM.                    "build_field_catalog
    Thanks,
    Shankar

  • Related to ALV Report

    Hi All,
    I have a doubt in ALV report.
    there is an output which consists of four fields.
    1.Employee
    2.Organizational Unit
    3.Required Compliance Training Not Completed (the specific course (D))
    4.% Compliant*
    Output should be:
       1        2            3               4
    1.a        b            c               d
                              e
                               f
    I mean there is a single row  for 4 fields.
    and in only 3 rd column  there are again 3 rows.
    how to display this.
    1..4 are columns
    a...f are data .
    Please tell me.
    Thanks,
    Geetha.

    Hi All,
    I have a doubt in ALV report.
    there is an output which consists of four fields.
    1.Employee
    2.Organizational Unit
    3.Required Compliance Training Not Completed (the specific course (D))
    4.% Compliant*
    Output should be:
       1        2            3               4
    1.a        b            c               d
                              e
                               f
    I mean there is a single row  for 4 fields.
    and in only 3 rd column  there are again 3 rows.
    how to display this.
    1..4 are columns
    a...f are data .
    Please tell me.
    Thanks,
    Geetha.

  • Pdf and docu related to alv grid

    Hi all,
    Can any body please tell me how to get PDF and documents *of theory of alv grid display.* I have sample program of alv but not decent theory which can explain funcanality of function module and the parameters used in those fn module.please help me

    hi,
    already there is lot of material in SDn regarding everything,
    the thing is u need to search in SDN.
    regarding the ALV reports there is one intresting website just check in..
    www.alvrobot.com.ar

  • Query related to alv

    Hi Abap gurus,
    I need a blank ALV to display with 6 coulumns,where the enduser will fill the details in the alv row wise and he clicks on a button which will save in the z-table with the entries done in alv (edit mode) and then it should export to excel file..
    Is it possible to display balnk alv and I need dynamic rows..& my columns are fixed(6)
    awaiting for all u r ideas...
    Thanks & Regards
    Ravi V Ganji

    If the data doesnot exist in the internal table you are using for displaying the ALV, you can display a empty ALV. Then you can click on the toolbar buttons to add empty rows which the user can fill in.
    Take a look at BCALVEDIT* programs.
    BCALV_EDIT_01   
    BCALV_EDIT_02   
    BCALV_EDIT_03   
    BCALV_EDIT_04   
    BCALV_EDIT_05   
    BCALV_EDIT_06   
    BCALV_EDIT_07   
    BCALV_EDIT_08   
    Regards,
    Ravi
    Note : Please mark all the helpful answers
    Message was edited by: Ravikumar Allampallam

  • RELATED TO ALV GRID

    hi all,
    In alv reports which r done using object oriented concepts, im able to print all the fields
    of a table by passing  LFA1 table  to the parameter I_STRUCTUE_NAME of  method
    SET TABLEFOR_FIRST_DISPLAY and IT_OUTTAB as ITAB.
    I declared ITAB as...DATA:ITAB TYPE TABLE OF VBAK .
    Now, the problem is...if i want to declare my ITAB with only few fields then wat is the method i have to use to display and wat r the parameters i have to pass...so that my output will have only the columns i declared and not the whole structure of LFA1.

    Hello Aturi
    Do not create the fieldcatalog manually but use the function module LVC_FIELDCATALOG_MERGE.
    If you need only a few fields out of a structure you could use the following coding:
    DATA:
      gs_fcat   TYPE lvc_s_fcat,
      gt_fcat    TYPE lvc_t_fcat.
      CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
        EXPORTING
          i_structure_name = 'LFA1'
        CHANGING
          ct_fieldcat           = gt_fcat.
      gs_fcat-no_out = 'X'.  " column is visible neither on ALV list nor in the layout
      MODIFY gt_fcat FROM gs_fcat
        TRANSPORTING FIELD no_out
      WHERE ( no_out ne 'X' ).
    " Make all required columns visible again...
      LOOP AT gt_fcat INTO gs_fcat
                                WHERE ( fieldname = 'required column'    AND
                                               fieldname = ... ).
        gs_fcat-no_out = ' '.
        MODIFY gt_fcat FROM gs_fcat.
      ENDLOOP.
    If you need fields from different tables you can repeatedly call the function module and use the logic above. To distinguish between fields of different tables simply add:
      LOOP AT gt_fcat INTO gs_fcat
                                WHERE ( ref_table = 'LFA1' )
                                AND      ( fieldname = ... ).
      ENDLOOP.
    Regards
      Zwe

  • Hi Question Related To  ALV'S

    Hi  Abapers ,
                             I am having a requirement the which are displayed in the first ALV needed to be selected and to be displayed in the Second ALV , this is code which i have written ....... the check-box is not updating ....
    TYPE-POOLS:SLIS.
    TABLES:KNA1,VBAK.
    PARAMETERS:P_KUNNR TYPE KNA1-kunnr.
    TYPES:BEGIN OF TY_VBAK,
          CHECK TYPE C,
          VBELN TYPE VBELN_VA,
          ERDAT TYPE ERDAT,
          ERZET TYPE ERZET,
          ERNAM TYPE ERNAM,
          ANGDT TYPE ANGDT_V,
          BNDDT TYPE BNDDT,
          AUDAT TYPE AUDAT,
          VBTYP TYPE VBTYP,
          END OF TY_VBAK.
    TYPES:TY_T_VBAK TYPE STANDARD TABLE OF TY_VBAK.
    DATA:T_VBAK TYPE STANDARD TABLE OF TY_VBAK ,
         W_VBAK TYPE  TY_VBAK ,
         T_FIELDCAT TYPE slis_t_fieldcat_alv ,
         W_FIELDCAT TYPE SLIS_FIELDCAT_ALV,
         W_LAYOUT   TYPE SLIS_LAYOUT_ALV,
         T_VBAK1 TYPE STANDARD TABLE OF TY_VBAK.
    FORM set_pf_status USING extab TYPE slis_t_extab.
    SET PF-STATUS 'Y1VBAK'.
    ENDFORM.
    FORM USER_COMMAND USING U_COMM TYPE SY-UCOMM CHANGING SEL_FIELD TYPE SLIS_SELFIELD.
    CASE U_COMM.
    WHEN 'KEY'.
    LOOP AT T_VBAK INTO W_VBAK  WHERE  CHECK = 'X'.
    APPEND W_VBAK TO T_VBAK1.
    CLEAR W_VBAK.
    ENDLOOP.
    IF T_VBAK1 IS NOT INITIAL.
    PERFORM ALVLIST_DISPLAY1.
    ENDIF.
    WHEN 'BACK'.
    LEAVE PROGRAM.
    ENDCASE.
    ENDFORM.
    START-OF-SELECTION.
    PERFORM SUB_FIELDCAT.
    SELECT VBELN
           ERDAT
           ERZET
           ERNAM
           ANGDT
           BNDDT
           AUDAT
           VBTYP
           FROM
           VBAK INTO CORRESPONDING FIELDS OF
           TABLE T_VBAK WHERE KUNNR = P_KUNNR.
    END-OF-SELECTION.
    PERFORM ALVLIST_DISPLAY.
    ***&      Form  SUB_FIELDCAT
          text
    -->  p1        text
    <--  p2        text
    FORM SUB_FIELDCAT .
    CLEAR:W_FIELDCAT.
    *W_FIELDCAT-col_pos = '1'.
    *W_FIELDCAT-fieldname = 'ICON'.
    *W_FIELDCAT-seltext_l = 'Status'.
    *W_FIELDCAT-icon = 'X'.
    *APPEND W_FIELDCAT TO t_fieldcat.
    W_FIELDCAT-col_pos = '1' .
    W_FIELDCAT-fieldname = 'CHECK'.
    W_FIELDCAT-CHECKBOX = 'X'.
    W_FIELDCAT-tabname = 'T_VBAK'.
    W_FIELDCAT-edit = 'X'.
    APPEND W_FIELDCAT TO T_FIELDCAT.
    CLEAR:W_FIELDCAT.
    W_FIELDCAT-col_pos = '2' .
    W_FIELDCAT-fieldname = 'VBELN'.
    APPEND W_FIELDCAT TO T_FIELDCAT.
    CLEAR:W_FIELDCAT.
    W_FIELDCAT-col_pos = '3' .
    W_FIELDCAT-fieldname = 'ERDAT'.
    W_FIELDCAT-no_out = 'X'.
    APPEND W_FIELDCAT TO T_FIELDCAT.
    CLEAR:W_FIELDCAT.
    W_FIELDCAT-col_pos = '4' .
    W_FIELDCAT-fieldname = 'ERZET'.
    APPEND W_FIELDCAT TO T_FIELDCAT.
    CLEAR:W_FIELDCAT.
    W_FIELDCAT-col_pos = '5' .
    W_FIELDCAT-fieldname = 'ERNAM'.
    APPEND W_FIELDCAT TO T_FIELDCAT.
    CLEAR:W_FIELDCAT.
    W_FIELDCAT-col_pos = '6' .
    W_FIELDCAT-fieldname = 'ANGDT'.
    APPEND W_FIELDCAT TO T_FIELDCAT.
    CLEAR:W_FIELDCAT.
    W_FIELDCAT-col_pos = '7' .
    W_FIELDCAT-fieldname = 'BNDDT'.
    W_FIELDCAT-edit = 'X'.
    APPEND W_FIELDCAT TO T_FIELDCAT.
    CLEAR:W_FIELDCAT.
    W_FIELDCAT-col_pos = '8' .
    W_FIELDCAT-fieldname = 'AUDAT'.
    APPEND W_FIELDCAT TO T_FIELDCAT.
    CLEAR:W_FIELDCAT.
    W_FIELDCAT-col_pos = '9' .
    W_FIELDCAT-fieldname = 'VBTYP'.
    APPEND W_FIELDCAT TO T_FIELDCAT.
    CLEAR:W_FIELDCAT.
    W_layout-box_fieldname = 'CHECK'.
    *W_LAYOUT-edit  = 'X'.
    ENDFORM.                    " SUB_FIELDCAT
    FORM ALVLIST_DISPLAY.
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      I_INTERFACE_CHECK                 = ' '
      I_BYPASSING_BUFFER                = ' '
      I_BUFFER_ACTIVE                   = ' '
        I_CALLBACK_PROGRAM                = SY-REPID
        I_CALLBACK_PF_STATUS_SET          =  'SET_PF_STATUS'
        I_CALLBACK_USER_COMMAND           = 'USER_COMMAND'
      I_CALLBACK_TOP_OF_PAGE            = ' '
      I_CALLBACK_HTML_TOP_OF_PAGE       = ' '
      I_CALLBACK_HTML_END_OF_LIST       = ' '
      I_STRUCTURE_NAME                  =
      I_BACKGROUND_ID                   = ' '
      I_GRID_TITLE                      =
      I_GRID_SETTINGS                   =
        IS_LAYOUT                         = W_LAYOUT
        IT_FIELDCAT                       = T_FIELDCAT
      IT_EXCLUDING                      =
      IT_SPECIAL_GROUPS                 =
      IT_SORT                           =
      IT_FILTER                         =
      IS_SEL_HIDE                       =
      I_DEFAULT                         = 'X'
      I_SAVE                            = ' '
      IS_VARIANT                        =
      IT_EVENTS                         =
      IT_EVENT_EXIT                     =
      IS_PRINT                          =
      IS_REPREP_ID                      =
      I_SCREEN_START_COLUMN             = 0
      I_SCREEN_START_LINE               = 0
      I_SCREEN_END_COLUMN               = 0
      I_SCREEN_END_LINE                 = 0
      I_HTML_HEIGHT_TOP                 = 0
      I_HTML_HEIGHT_END                 = 0
      IT_ALV_GRAPHICS                   =
      IT_HYPERLINK                      =
      IT_ADD_FIELDCAT                   =
      IT_EXCEPT_QINFO                   =
      IR_SALV_FULLSCREEN_ADAPTER        =
    IMPORTING
      E_EXIT_CAUSED_BY_CALLER           =
      ES_EXIT_CAUSED_BY_USER            =
      TABLES
        T_OUTTAB                          = T_VBAK
    EXCEPTIONS
      PROGRAM_ERROR                     = 1
      OTHERS                            = 2
    IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
    EXPORTING
      I_INTERFACE_CHECK              = ' '
      I_BYPASSING_BUFFER             =
      I_BUFFER_ACTIVE                = ' '
       I_CALLBACK_PROGRAM             = SY-REPID
       I_CALLBACK_PF_STATUS_SET       = 'Y1VBAK'
       I_CALLBACK_USER_COMMAND        = 'USER_COMMAND'
      I_STRUCTURE_NAME               =
      IS_LAYOUT                      =
       IT_FIELDCAT                    =  T_FIELDCAT
      IT_EXCLUDING                   =
      IT_SPECIAL_GROUPS              =
      IT_SORT                        =
      IT_FILTER                      =
      IS_SEL_HIDE                    =
      I_DEFAULT                      = 'X'
      I_SAVE                         = ' '
      IS_VARIANT                     =
      IT_EVENTS                      =
      IT_EVENT_EXIT                  =
      IS_PRINT                       =
      IS_REPREP_ID                   =
      I_SCREEN_START_COLUMN          = 0
      I_SCREEN_START_LINE            = 0
      I_SCREEN_END_COLUMN            = 0
      I_SCREEN_END_LINE              = 0
      IR_SALV_LIST_ADAPTER           =
      IT_EXCEPT_QINFO                =
      I_SUPPRESS_EMPTY_DATA          = ABAP_FALSE
    IMPORTING
      E_EXIT_CAUSED_BY_CALLER        =
      ES_EXIT_CAUSED_BY_USER         =
    TABLES
       T_OUTTAB                       = T_VBAK
    EXCEPTIONS
      PROGRAM_ERROR                  = 1
      OTHERS                         = 2
    *IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    *ENDIF.
    ENDFORM.                    " ALVLIST_DISPLAY
    FORM ALVLIST_DISPLAY1.
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      I_INTERFACE_CHECK                 = ' '
      I_BYPASSING_BUFFER                = ' '
      I_BUFFER_ACTIVE                   = ' '
        I_CALLBACK_PROGRAM                = SY-REPID
        I_CALLBACK_PF_STATUS_SET          =  'SET_PF_STATUS'
        I_CALLBACK_USER_COMMAND           = 'USER_COMMAND'
      I_CALLBACK_TOP_OF_PAGE            = ' '
      I_CALLBACK_HTML_TOP_OF_PAGE       = ' '
      I_CALLBACK_HTML_END_OF_LIST       = ' '
      I_STRUCTURE_NAME                  =
      I_BACKGROUND_ID                   = ' '
      I_GRID_TITLE                      =
      I_GRID_SETTINGS                   =
        IS_LAYOUT                         = W_LAYOUT
        IT_FIELDCAT                       = T_FIELDCAT
      IT_EXCLUDING                      =
      IT_SPECIAL_GROUPS                 =
      IT_SORT                           =
      IT_FILTER                         =
      IS_SEL_HIDE                       =
      I_DEFAULT                         = 'X'
      I_SAVE                            = ' '
      IS_VARIANT                        =
      IT_EVENTS                         =
      IT_EVENT_EXIT                     =
      IS_PRINT                          =
      IS_REPREP_ID                      =
      I_SCREEN_START_COLUMN             = 0
      I_SCREEN_START_LINE               = 0
      I_SCREEN_END_COLUMN               = 0
      I_SCREEN_END_LINE                 = 0
      I_HTML_HEIGHT_TOP                 = 0
      I_HTML_HEIGHT_END                 = 0
      IT_ALV_GRAPHICS                   =
      IT_HYPERLINK                      =
      IT_ADD_FIELDCAT                   =
      IT_EXCEPT_QINFO                   =
      IR_SALV_FULLSCREEN_ADAPTER        =
    IMPORTING
      E_EXIT_CAUSED_BY_CALLER           =
      ES_EXIT_CAUSED_BY_USER            =
      TABLES
        T_OUTTAB                          = T_VBAK1
    EXCEPTIONS
      PROGRAM_ERROR                     = 1
      OTHERS                            = 2
    IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    ENDFORM.
    Thanks & Regards
    Bhaskar Rao.M

    Hi Bhaskar,
    Check the sample code below and compare it with u r code...
    Just set the PF-STATUS...
    TYPE-POOLS: SLIS.
    DATA: FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
           FIELDCAT_LN LIKE LINE OF FIELDCAT,
           SORTCAT          TYPE SLIS_T_SORTINFO_ALV,
           LAYOUT           TYPE SLIS_LAYOUT_ALV,
           SORTCAT_LN       LIKE LINE OF SORTCAT,
           EVENTCAT         TYPE SLIS_T_EVENT,
           EVENTCAT_LN      LIKE LINE OF EVENTCAT,
           COUNT TYPE I,
            COLCELL TYPE SLIS_FIELDNAME VALUE 'MATNR'.
    DATA: COL_POS TYPE I,
            W_FNAME TYPE DD03L-FIELDNAME.
    ******Declare Data Areas for List Viewer (End)**************
    ******Declare Internal Table to Store Selected Data (Begin)*
    DATA LS_CELLCOLOR TYPE SLIS_T_SPECIALCOL_ALV  WITH HEADER LINE.
    DATA:  BEGIN OF TSPFLI OCCURS 10 ,
              CHECK TYPE SLIS_FIELDNAME,
              COLOR(3),
              COLCELLS TYPE SLIS_T_SPECIALCOL_ALV.
             INCLUDE STRUCTURE SPFLI.
    DATA : END OF TSPFLI.
    *Declare Internal Table to Store Selected Data (Begin) For sflight*
    DATA:
       W_SPFLI LIKE LINE OF TSPFLI.
    DATA : BEGIN OF FS_SFLIGHT,
              CHECK TYPE SLIS_FIELDNAME,
              COLOR(3).
             INCLUDE STRUCTURE SFLIGHT.
    DATA : END OF FS_SFLIGHT.
    DATA
       T_SFLIGHT LIKE
        STANDARD TABLE
              OF FS_SFLIGHT.
    *Declare Internal Table to Store Selected Data (Begin) For sbook*
    DATA:
    W_SFLIGHT LIKE LINE OF T_SFLIGHT.
    DATA : BEGIN OF FS_SBOOK,
              CHECK TYPE SLIS_FIELDNAME.
             INCLUDE STRUCTURE SBOOK.
    DATA : END OF FS_SBOOK.
    DATA
       T_SBOOK LIKE
        STANDARD TABLE
              OF FS_SBOOK.
    ******Declare Internal Table to Store Selected Data (End)***
    *******Select Data into Internal Table (Begin) ***************
    SELECT *
             INTO CORRESPONDING FIELDS OF TSPFLI
            FROM SPFLI.
       APPEND TSPFLI.
       CLEAR TSPFLI.
    ENDSELECT.
    Select Data into Internal Table (End) ****************
    PERFORM BUILD_FIELDCAT4.
    PERFORM BUILD_FIELDCAT6.
    PERFORM BUILD_FIELDCAT7.
    PERFORM BUILD_LISTCAT.
    PERFORM BUILD_EVENTCAT.
    PERFORM START_LIST_VIEWER.
    *&      Form  build_fieldcat4
          text
    FORM BUILD_FIELDCAT4.
       FIELDCAT_LN-FIELDNAME = 'CHECK'.
       APPEND FIELDCAT_LN TO FIELDCAT.
       CLEAR FIELDCAT_LN.
    ENDFORM.                    "BUILD_FIELDCAT4
    *&      Form  build_fieldcat6
          text
    FORM BUILD_FIELDCAT6.
       FIELDCAT_LN-FIELDNAME = 'COLOR'.
       FIELDCAT_LN-OUTPUTLEN = 4.
       APPEND FIELDCAT_LN TO FIELDCAT.
       CLEAR FIELDCAT_LN.
    ENDFORM.                    "build_fieldcat6
    *&      Form  BUILD_FIELDCAT7
          text
    FORM BUILD_FIELDCAT7.
       FIELDCAT_LN-FIELDNAME = 'COLCELLS'.
       APPEND FIELDCAT_LN TO FIELDCAT.
       CLEAR FIELDCAT_LN.
    ENDFORM.                    "build_fieldcat6
    *&      Form  build_listcat
          text
    FORM BUILD_LISTCAT.
       LAYOUT-BOX_FIELDNAME    = 'CHECK'.
       LAYOUT-INFO_FIELDNAME   = 'COLOR'.
       LAYOUT-COLTAB_FIELDNAME = 'COLCELLS'.
    ENDFORM.                    "build_listcat
    *&      Form  BUILD_EVENTCAT
          text
    FORM BUILD_EVENTCAT.
       EVENTCAT_LN-NAME = 'PF_STATUS_SET'.
       EVENTCAT_LN-FORM = 'STATUSSET'.
       APPEND EVENTCAT_LN TO EVENTCAT.
       EVENTCAT_LN-NAME = 'USER_COMMAND'.
       EVENTCAT_LN-FORM = 'USERCOMM'.
       APPEND EVENTCAT_LN TO EVENTCAT.
    ENDFORM.                    "BUILD_EVENTCAT
    *&      Form  STATUSSET
          text
         -->RT_EXTAB   text
    FORM STATUSSET
        USING RT_EXTAB TYPE SLIS_T_EXTAB.
       DATA
         W_EXTAB TYPE SLIS_EXTAB.
       CLEAR RT_EXTAB[].
       W_EXTAB-FCODE = 'SBOOK'.
       APPEND W_EXTAB TO RT_EXTAB.
       SET PF-STATUS 'STATUS' EXCLUDING RT_EXTAB.
    ENDFORM.                    "STATUSSET
    *&      Form  START_LIST_VIEWER
          text
    FORM START_LIST_VIEWER.
       DATA: PGM LIKE SY-REPID.
       PGM = SY-REPID.
       CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
           EXPORTING
              I_CALLBACK_PROGRAM       = PGM
              i_callback_pf_status_set = ' '
            I_CALLBACK_USER_COMMAND  = 'USER_COMMAND'
                I_STRUCTURE_NAME         = 'SPFLI'
                  IS_LAYOUT                = LAYOUT
              IS_VARIANT               = ' '
                IT_EVENTS                = EVENTCAT
              IT_EVENT_EXIT            =
            TABLES
                 T_OUTTAB                 = TSPFLI
            EXCEPTIONS
                 PROGRAM_ERROR            = 1
                 OTHERS                   = 2.
    ENDFORM.                    "START_LIST_VIEWER
    *&      Form  USERCOMM
          text
         -->UCOMM      text
         -->SELFIELD   text
    FORM USERCOMM USING UCOMM LIKE SY-UCOMM
                         SELFIELD TYPE SLIS_SELFIELD.
       CLEAR FIELDCAT[].
       CASE UCOMM.
         WHEN 'SFLIGHT'.
           CLEAR T_SFLIGHT[].
           LOOP AT TSPFLI INTO W_SPFLI.
             IF W_SPFLI-CHECK EQ 'X'.
               SELECT *
                 FROM SFLIGHT
            APPENDING CORRESPONDING FIELDS OF TABLE T_SFLIGHT
                WHERE CARRID = W_SPFLI-CARRID
                  AND CONNID = W_SPFLI-CONNID.
               W_SPFLI-CHECK = '1'.
               W_SPFLI-COLOR = 'C21'.
               MODIFY TSPFLI FROM W_SPFLI TRANSPORTING CHECK COLOR.
             ENDIF.
           ENDLOOP.
           PERFORM BUILD_FIELDCAT9.
           PERFORM BUILD_EVENTCAT1.
           PERFORM START_LIST_VIEWER1.
       ENDCASE.
       SELFIELD-REFRESH = 'X'.
    ENDFORM.                    "USERCOMM
    *&      Form  START_LIST_VIEWER1
          text
    FORM START_LIST_VIEWER1.
       DATA: PGM LIKE SY-REPID.
       PGM = SY-REPID.
       CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
        EXPORTING
          I_INTERFACE_CHECK              = ' '
           I_CALLBACK_PROGRAM             = PGM
          I_CALLBACK_PF_STATUS_SET       = ' '
          I_CALLBACK_USER_COMMAND        = ' '
          I_STRUCTURE_NAME               = 'SFLIGHT'
                IS_LAYOUT                = LAYOUT
           IT_FIELDCAT                    = FIELDCAT
          IT_SORT                        =
           IT_EVENTS                      =  EVENTCAT
         TABLES
           T_OUTTAB                       = T_SFLIGHT
        EXCEPTIONS
          PROGRAM_ERROR                  = 1
          OTHERS                         = 2
       IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
       ENDIF.
    ENDFORM.                    "START_LIST_VIEWER1
    *&      Form  BUILD_EVENTCAT1
          text
    FORM BUILD_EVENTCAT1.
       CLEAR EVENTCAT[].
       EVENTCAT_LN-NAME = 'PF_STATUS_SET'.
       EVENTCAT_LN-FORM = 'STATUSSET1'.
       APPEND EVENTCAT_LN TO EVENTCAT.
       CLEAR EVENTCAT_LN.
       EVENTCAT_LN-NAME = 'USER_COMMAND'.
       EVENTCAT_LN-FORM = 'USERCOMM1'.
       APPEND EVENTCAT_LN TO EVENTCAT.
    ENDFORM.                    "BUILD_EVENTCAT
    *&      Form  STATUSSET1
          text
         -->RT_EXTAB   text
    FORM STATUSSET1
        USING RT_EXTAB TYPE SLIS_T_EXTAB.
       DATA
         W_EXTAB TYPE SLIS_EXTAB.
       CLEAR RT_EXTAB[].
       W_EXTAB-FCODE = 'SFLIGHT'.
       APPEND  W_EXTAB TO RT_EXTAB.
       SET PF-STATUS 'STATUS' EXCLUDING RT_EXTAB.
    ENDFORM.                    "STATUSSET
    *.................................USERCOMM1..................
    FORM USERCOMM1 USING UCOMM LIKE SY-UCOMM
                         SELFIELD TYPE SLIS_SELFIELD.
       CLEAR FIELDCAT[].
       CASE UCOMM.
         WHEN 'SBOOK'.
           CLEAR T_SBOOK[].
           LOOP AT T_SFLIGHT INTO W_SFLIGHT.
             IF W_SFLIGHT-CHECK EQ 'X'.
               SELECT *
                 FROM SBOOK
            APPENDING CORRESPONDING FIELDS OF TABLE T_SBOOK
                WHERE CARRID = W_SFLIGHT-CARRID
                  AND CONNID = W_SFLIGHT-CONNID
               AND FLDATE = W_SFLIGHT-FLDATE.
               W_SFLIGHT-CHECK = '1'.
               W_SFLIGHT-COLOR = 'C81'.
               MODIFY T_SFLIGHT FROM W_SFLIGHT TRANSPORTING CHECK COLOR.
             ENDIF.
           ENDLOOP.
           PERFORM BUILD_FIELDCAT9.
           PERFORM BUILD_EVENTCAT2.
           PERFORM START_LIST_VIEWER2.
       ENDCASE.
       SELFIELD-REFRESH = 'X'.
    ENDFORM.                                                   " USERCOMM1
    *&      Form  BUILD_FIELDCAT9
          text
    FORM BUILD_FIELDCAT9.
       CLEAR FIELDCAT[].
       FIELDCAT_LN-FIELDNAME = 'CHECK'.
       APPEND FIELDCAT_LN TO FIELDCAT.
       CLEAR FIELDCAT_LN.
       LAYOUT-BOX_FIELDNAME    = 'CHECK'.
    ENDFORM.                    "BUILD_FIELDCAT8
    *&      Form  START_LIST_VIEWER2
          text
    FORM START_LIST_VIEWER2.
       DATA: PGM LIKE SY-REPID.
       PGM = SY-REPID.
       CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
        EXPORTING
          I_INTERFACE_CHECK              = ' '
          I_BYPASSING_BUFFER             =
          I_BUFFER_ACTIVE                = ' '
           I_CALLBACK_PROGRAM             = PGM
          I_CALLBACK_PF_STATUS_SET       = ' '
          I_CALLBACK_USER_COMMAND        = ' '
          I_STRUCTURE_NAME               = 'SBOOK'
           IS_LAYOUT                      = LAYOUT
           IT_FIELDCAT                    = FIELDCAT
          IT_SORT                        =
          IT_FILTER                      =
          IS_SEL_HIDE                    =
           IT_EVENTS                      = EVENTCAT
         TABLES
           T_OUTTAB                       = T_SBOOK
        EXCEPTIONS
          PROGRAM_ERROR                  = 1
          OTHERS                         = 2
       IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
       ENDIF.
    ENDFORM.                    "START_LIST_VIEWER1
    *&      Form  BUILD_EVENTCAT2
          text
    FORM BUILD_EVENTCAT2.
       CLEAR EVENTCAT[].
       EVENTCAT_LN-NAME = 'PF_STATUS_SET'.
       EVENTCAT_LN-FORM = 'STATUSSET2'.
       APPEND EVENTCAT_LN TO EVENTCAT.
    ENDFORM.                    "BUILD_EVENTCAT
    *&      Form  STATUSSET1
          text
         -->RT_EXTAB   text
    FORM STATUSSET2
        USING RT_EXTAB TYPE SLIS_T_EXTAB.
       DATA
         W_EXTAB TYPE SLIS_EXTAB.
       CLEAR RT_EXTAB[].
       W_EXTAB-FCODE = 'SFLIGHT'.
       APPEND  W_EXTAB TO RT_EXTAB.
       W_EXTAB-FCODE = 'SBOOK'.
       APPEND  W_EXTAB TO RT_EXTAB.
       SET PF-STATUS 'STATUS' EXCLUDING RT_EXTAB.
    ENDFORM.                    "STATUSSET
    Reward if it is helpful...
    Regards,
    Omkar..
    Message was edited by:
            Omkaram Yanamala

  • Problem related to ALV dispaly

    Hi Gurus,
    Actually i need to display records in ALV and i am using 
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
          it_fieldcat = lt_fieldcat[]
        TABLES
          t_outtab    = lt_zca_serv_techlog
    but since my internal table will be carrying millions of records so it will fail in production.
    I am taking all these records from a databas table. Please tell me the solution so that i can display all the records without the table failing.
    Regards,
    Nikesh Kumar

    You can add code to allow the ALV to be run in background. That way if you have a background job for your program, your ALV results will be written to the spool in the classic format.
    * Grid definitions
    DATA: gr_alv      TYPE REF TO cl_gui_alv_grid,
          g_container TYPE REF TO cl_gui_custom_container.
    * Background container
    DATA: g_dock TYPE REF TO cl_gui_docking_container.    
        IF cl_gui_alv_grid=>offline( ) IS INITIAL.   
    * Create custom container instance
          CREATE OBJECT g_container
             EXPORTING
              container_name  = 'G_CONTAINER'.
    * Create ALV instance whole screen
          CREATE OBJECT gr_alv
            EXPORTING
              i_parent  = g_container.
    ELSE.
    * Create ALV instance for totals in background
          CREATE OBJECT gr_alv
            EXPORTING i_parent = g_dock.
        ENDIF.       
    * Call grid for first time
        CALL METHOD gr_alv->set_table_for_first_display
          EXPORTING
            is_layout                  = gs_layout
            it_toolbar_excluding = gt_exclude
          CHANGING
            it_outtab            = gt_report
            it_fieldcatalog      = gt_fieldcat
            it_sort                  = gt_sort.
    Give it a try,
    Regards
    Larissa Maryniuk

  • Related to ALV font size

    How to increase size of font in ALV grid display for all the rows.

    Hi
    you can't increase the fonts
    Only thing is you can give different colors to the fileds/cells
    see this sample code
    REPORT zsharad_test1.
    TABLES: ekko.
    TYPE-POOLS: slis. "ALV Declarations
    *Data Declaration
    TYPES: BEGIN OF t_ekko,
    ebeln TYPE ekpo-ebeln,
    ebelp TYPE ekpo-ebelp,
    statu TYPE ekpo-statu,
    aedat TYPE ekpo-aedat,
    matnr TYPE ekpo-matnr,
    menge TYPE ekpo-menge,
    meins TYPE ekpo-meins,
    netpr TYPE ekpo-netpr,
    peinh TYPE ekpo-peinh,
    line_color(4) TYPE c, "Used to store row color attributes
    END OF t_ekko.
    DATA: it_ekko TYPE STANDARD TABLE OF t_ekko INITIAL SIZE 0,
    wa_ekko TYPE t_ekko.
    *ALV data declarations
    DATA: fieldcatalog TYPE slis_t_fieldcat_alv WITH HEADER LINE,
    gd_tab_group TYPE slis_t_sp_group_alv,
    gd_layout TYPE slis_layout_alv,
    gd_repid LIKE sy-repid.
    *Start-of-selection.
    START-OF-SELECTION.
    PERFORM data_retrieval.
    PERFORM build_fieldcatalog.
    PERFORM build_layout.
    PERFORM display_alv_report.
    *& Form BUILD_FIELDCATALOG
    Build Fieldcatalog for ALV Report
    FORM build_fieldcatalog.
    There are a number of ways to create a fieldcat.
    For the purpose of this example i will build the fieldcatalog manualy
    by populating the internal table fields individually and then
    appending the rows. This method can be the most time consuming but can
    also allow you more control of the final product.
    Beware though, you need to ensure that all fields required are
    populated. When using some of functionality available via ALV, such as
    total. You may need to provide more information than if you were
    simply displaying the result
    I.e. Field type may be required in-order for
    the 'TOTAL' function to work.
    fieldcatalog-fieldname = 'EBELN'.
    fieldcatalog-seltext_m = 'Purchase Order'.
    fieldcatalog-col_pos = 0.
    fieldcatalog-outputlen = 10.
    fieldcatalog-emphasize = 'X'.
    fieldcatalog-key = 'X'.
    fieldcatalog-do_sum = 'X'.
    fieldcatalog-no_zero = 'X'.
    APPEND fieldcatalog TO fieldcatalog.
    CLEAR fieldcatalog.
    fieldcatalog-fieldname = 'EBELP'.
    fieldcatalog-seltext_m = 'PO Item'.
    fieldcatalog-col_pos = 1.
    APPEND fieldcatalog TO fieldcatalog.
    CLEAR fieldcatalog.
    fieldcatalog-fieldname = 'STATU'.
    fieldcatalog-seltext_m = 'Status'.
    fieldcatalog-col_pos = 2.
    APPEND fieldcatalog TO fieldcatalog.
    CLEAR fieldcatalog.
    fieldcatalog-fieldname = 'AEDAT'.
    fieldcatalog-seltext_m = 'Item change date'.
    fieldcatalog-col_pos = 3.
    APPEND fieldcatalog TO fieldcatalog.
    CLEAR fieldcatalog.
    fieldcatalog-fieldname = 'MATNR'.
    fieldcatalog-seltext_m = 'Material Number'.
    fieldcatalog-col_pos = 4.
    APPEND fieldcatalog TO fieldcatalog.
    CLEAR fieldcatalog.
    fieldcatalog-fieldname = 'MENGE'.
    fieldcatalog-seltext_m = 'PO quantity'.
    fieldcatalog-col_pos = 5.
    APPEND fieldcatalog TO fieldcatalog.
    CLEAR fieldcatalog.
    fieldcatalog-fieldname = 'MEINS'.
    fieldcatalog-seltext_m = 'Order Unit'.
    fieldcatalog-col_pos = 6.
    APPEND fieldcatalog TO fieldcatalog.
    CLEAR fieldcatalog.
    fieldcatalog-fieldname = 'NETPR'.
    fieldcatalog-seltext_m = 'Net Price'.
    fieldcatalog-col_pos = 7.
    fieldcatalog-outputlen = 15.
    fieldcatalog-datatype = 'CURR'.
    APPEND fieldcatalog TO fieldcatalog.
    CLEAR fieldcatalog.
    fieldcatalog-fieldname = 'PEINH'.
    fieldcatalog-seltext_m = 'Price Unit'.
    fieldcatalog-col_pos = 8.
    APPEND fieldcatalog TO fieldcatalog.
    CLEAR fieldcatalog.
    ENDFORM. " BUILD_FIELDCATALOG
    *& Form BUILD_LAYOUT
    Build layout for ALV grid report
    FORM build_layout.
    gd_layout-no_input = 'X'.
    gd_layout-colwidth_optimize = 'X'.
    gd_layout-totals_text = 'Totals'(201).
    Set layout field for row attributes(i.e. color)
    gd_layout-info_fieldname = 'LINE_COLOR'.
    gd_layout-totals_only = 'X'.
    gd_layout-f2code = 'DISP'. "Sets fcode for when double
    "click(press f2)
    gd_layout-zebra = 'X'.
    gd_layout-group_change_edit = 'X'.
    gd_layout-header_text = 'helllllo'.
    ENDFORM. " BUILD_LAYOUT
    *& Form DISPLAY_ALV_REPORT
    Display report using ALV grid
    FORM display_alv_report.
    gd_repid = sy-repid.
    CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
    EXPORTING
    i_callback_program = gd_repid
    i_callback_top_of_page = 'TOP-OF-PAGE' "see FORM
    i_callback_user_command = 'USER_COMMAND'
    i_grid_title = outtext
    is_layout = gd_layout
    it_fieldcat = fieldcatalog[]
    it_special_groups = gd_tabgroup
    IT_EVENTS = GT_XEVENTS
    i_save = 'X'
    is_variant = z_template
    TABLES
    t_outtab = it_ekko
    EXCEPTIONS
    program_error = 1
    OTHERS = 2.
    IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    ENDFORM. " DISPLAY_ALV_REPORT
    *& Form DATA_RETRIEVAL
    Retrieve data form EKPO table and populate itab it_ekko
    FORM data_retrieval.
    DATA: ld_color(1) TYPE c.
    SELECT ebeln ebelp statu aedat matnr menge meins netpr peinh
    UP TO 10 ROWS
    FROM ekpo
    INTO TABLE it_ekko.
    *Populate field with color attributes
    LOOP AT it_ekko INTO wa_ekko.
    Populate color variable with colour properties
    Char 1 = C (This is a color property)
    Char 2 = 3 (Color codes: 1 - 7)
    Char 3 = Intensified on/off ( 1 or 0 )
    Char 4 = Inverse display on/off ( 1 or 0 )
    i.e. wa_ekko-line_color = 'C410'
    ld_color = ld_color + 1.
    Only 7 colours so need to reset color value
    IF ld_color = 8.
    ld_color = 1.
    ENDIF.
    CONCATENATE 'C' ld_color '10' INTO wa_ekko-line_color.
    wa_ekko-line_color = 'C410'.
    MODIFY it_ekko FROM wa_ekko.
    ENDLOOP.
    ENDFORM. " DATA_RETRIEVAL
    Regards
    Anji

  • Query related to alv grid and sap script

    Hi All,
    I have a requirement where i should read the values which are selected on the alv grid list output and those values i need to display on the script(layout).
    Help me out guru's its an urgency...
    thanks in advance .
    regards
    ravi ganji

    Hi Ravi,
    I have done it exactly like your requirement. This program contains ALV and Smartform.
    But whatever may be, both are layouts and having driver program. So just finish your driver program and Script layout and then use this program.
    I have written this code to print contact letters from VA42. So, modify this code to insert your transaction code.
    Let me know if you have any questions.
    Here is the code.
    REPORT ILETTER MESSAGE-ID CM.
    TYPE POOLS (ALV)
      TYPE-POOLS:
                slis.
    Customized Types
      TYPES:
            BEGIN OF ty_cntrt,
              box(1)   TYPE c,
              kunnr    TYPE kunag,
              vbeln    TYPE vbeln_va,
              vbeln1   TYPE vbeln_va,
              vposn    TYPE posnr,
              vuntdat  TYPE vudat_veda,
              vbegdat  TYPE vbdat_veda,
              vdemdat  TYPE vddat_veda,
              venddat  TYPE vndat_veda,
            END   OF ty_cntrt,
          single line TYPES
            BEGIN OF ty_vkorg,
             vkorg    TYPE vkorg,
            END   OF ty_vkorg.
    Constants
      CONSTANTS:
         c_sform  TYPE char10             VALUE 'SMARTFORMS',
         c_tcode  TYPE sy-tcode           VALUE 'VA42',
         c_mode   TYPE c                  VALUE 'N',
         c_updat  TYPE c                  VALUE 'A',
         c_batch  TYPE sy-callr           VALUE 'BATCH',
         c_dclick TYPE char10             VALUE '&IC1'.
    Internal tables
      DATA: it_cntrt TYPE TABLE OF ty_cntrt,
            it_bdc   TYPE TABLE OF bdcdata,
            it_mesg  TYPE TABLE OF bdcmsgcoll,
            it_const TYPE TABLE OF /SIE/SSG_XCM_CUC,
            it_vkorg TYPE TABLE OF ty_vkorg.
    Work areas
      DATA: wa_cntrt TYPE ty_cntrt,
            wa_bdc   TYPE bdcdata,
            wa_const TYPE /SIE/SSG_XCM_CUC,
            w_vbak   TYPE vbak,
            w_veda   TYPE veda,
            w_xcm_pr TYPE /sie/ssg_xcm_pr,
            w_vkorg  TYPE ty_vkorg.
    Variables
      DATA: l_repid    TYPE sy-repid,
            l_vakey    TYPE vakey,
            l_variant  TYPE varid-variant,
            l_vbeln    TYPE i,
            l_vkorg    TYPE i,
            l_vkbur    TYPE i,
            l_vkgrp    TYPE i,
            l_ckappl(40)   TYPE c,
            l_ckschl(40)   TYPE c,
            l_cauart(40)   TYPE c.
    Program Constants
      DATA: c_kappl    TYPE kappl,
            c_kschl    TYPE kschl,
            c_auart    TYPE auart,
            c_repco    TYPE /sie/ssg_xcm_const,
            c_value    TYPE /sie/ssg_xcm_value.
    ALV data declarations
      DATA:
          gt_fieldcat  TYPE slis_t_fieldcat_alv,
          gt_tab_group TYPE slis_t_sp_group_alv,
          gs_layout    TYPE slis_layout_alv,
          gs_repid     TYPE sy-repid,
          gs_sort      TYPE TABLE OF slis_sortinfo_alv.
    Selection screen
      SELECTION-SCREEN BEGIN OF BLOCK indletter WITH FRAME TITLE text-001.
      skip one line
        SELECTION-SCREEN SKIP.
        SELECT-OPTIONS:
                     contract
                       so_vbeln FOR w_vbak-vbeln,
                     category
                       so_auart FOR w_vbak-auart NO-DISPLAY,
                     Sales Org
                       so_vkorg FOR w_vbak-vkorg OBLIGATORY,
                     Dis Channel
                       so_vtweg FOR w_vbak-vtweg,
                     Division
                       so_spart FOR w_vbak-spart,
                     Sales Group
                       so_vkgrp FOR w_vbak-vkgrp,
                     Sales Office
                       so_vkbur FOR w_vbak-vkbur OBLIGATORY,
                     Cancellation Procedure
                       so_vkues FOR w_veda-vkuesch OBLIGATORY,
                     Contract Signed Date
                       so_vuntd FOR w_veda-vuntdat,
                     created by
                       so_ernam FOR w_vbak-ernam,
                     Fixed Indexation formula
                       so_fnum  FOR w_xcm_pr-fnum OBLIGATORY.
      skip one line
        SELECTION-SCREEN SKIP.
      Indexation letter
        PARAMETERS: rb_index  RADIOBUTTON GROUP radi USER-COMMAND usr.
      Follow up report
        PARAMETERS: rb_follo  RADIOBUTTON GROUP radi.
      skip one line
        SELECTION-SCREEN SKIP.
      Manual processing checkbox
        PARAMETERS:    p_manpr AS CHECKBOX.
      SELECTION-SCREEN END   OF BLOCK indletter.
    Printer block
      SELECTION-SCREEN BEGIN OF BLOCK blk_par WITH FRAME TITLE text-002.
      Printer
        PARAMETERS:     p_print  LIKE nast-ldest DEFAULT 'LOCL' OBLIGATORY.
      SELECTION-SCREEN END OF BLOCK blk_par.
    User selection data validation
      AT SELECTION-SCREEN ON so_vkorg.
    Ragne for sales org
      RANGES: r_vkorg FOR vbak-vkorg.
      REFRESH: it_const, r_vkorg.
      CLEAR   wa_const.
    Proceed for execution only for Sales Orgs in /SIE/SSG_XCM_CUC
      LOOP AT so_vkorg.
       r_vkorg-sign = 'I'.
       r_vkorg-option = 'EQ'.
       r_vkorg-low    = so_vkorg-low.
       APPEND r_vkorg.
    Check Sales Org intervals entered in the selection screen
       IF NOT so_vkorg-high IS INITIAL.
    Get all Sales Org for interval
         SELECT vkorg FROM tvko INTO TABLE it_vkorg
           WHERE vkorg BETWEEN so_vkorg-low AND so_vkorg-high.
         IF sy-subrc = 0.
         Add all Sales org into one internal table
           LOOP AT it_vkorg INTO w_vkorg.
             r_vkorg-low = w_vkorg-vkorg.
             APPEND r_vkorg.
             CLEAR: w_vkorg.
           ENDLOOP.
         delete repeated records
           DELETE ADJACENT DUPLICATES FROM r_vkorg COMPARING low.
         ENDIF.
       ENDIF.
       CLEAR r_vkorg.
      ENDLOOP.
    Get Sales Org entries maintained in /SIE/SSG_XCM_CUC
      l_repid = sy-repid.
    Check Sales Org is maintained for Renewal Letter?
      LOOP AT r_vkorg.
      concatenate constant with Sales Org
        CONCATENATE 'INX_LETTER_CREATE_' r_vkorg-low INTO c_repco.
      Get constant
        SELECT SINGLE value
          FROM /sie/ssg_xcm_cuc
          INTO c_value
         WHERE repid = l_repid
           AND const = c_repco
           AND vkorg EQ so_vkorg-low.
      Check alerady maintained?
        IF sy-subrc <> 0 OR
          ( sy-subrc = 0 AND c_value <> 'X' ).
        Issue massage 'Sales Org no permitted for renewal Letter'.
          MESSAGE E012.
          CLEAR: c_repco, r_vkorg.
          EXIT.
        ENDIF.
        CLEAR: c_repco, r_vkorg.
      ENDLOOP.
      AT SELECTION-SCREEN.
    Read single Sales Org
       READ TABLE so_vkorg INDEX 1.
       IF sy-subrc = 0.
         CLEAR: l_ckappl, l_ckschl, l_cauart, c_kappl, c_kschl, c_auart.
       for application
         CONCATENATE 'INX_LETTER_V1_' so_vkorg-low INTO l_ckappl.
       for output type
         CONCATENATE 'INX_LETTER_Y6C4_' so_vkorg-low INTO l_ckschl.
       document type
         CONCATENATE 'INX_LETTER_AUART_' so_vkorg-low INTO l_cauart.
       Get application
         SELECT SINGLE value FROM /sie/ssg_xcm_cuc
           INTO c_kappl WHERE repid = sy-repid AND const LIKE l_ckappl.
       Get output type
         SELECT SINGLE value FROM /sie/ssg_xcm_cuc
           INTO c_kschl WHERE repid = sy-repid AND const LIKE l_ckschl.
       Get document type
         SELECT SINGLE value FROM /sie/ssg_xcm_cuc
           INTO c_auart WHERE repid = sy-repid AND const LIKE l_cauart.
       ENDIF.
    find no of Sales org entries entered in the selection screen
       DESCRIBE TABLE so_vkorg LINES l_vkorg.
    find no of Sales office entries entered in the selection screen
       DESCRIBE TABLE so_vkbur LINES l_vkbur.
    find no of Sales Group entries entered in the selection screen
       DESCRIBE TABLE so_vkgrp LINES l_vkgrp.
    Check if enterred more than one entry
       IF l_vkorg = 1 AND l_vkbur = 1.
         add Sales Org, Sales office, Sales group for key
         IF NOT so_vkgrp[] IS INITIAL.
           CONCATENATE so_vkorg-low so_vkbur-low so_vkgrp-low INTO l_vakey.
         ELSE.
           CONCATENATE so_vkorg-low so_vkbur-low '%' INTO l_vakey.
         ENDIF.
         CONDENSE l_vakey.
       Get printer name for selection.
         SELECT SINGLE ldest FROM nach INTO p_print
          WHERE kappl = c_kappl AND kschl = c_kschl AND vakey LIKE l_vakey.
       ENDIF.
    Manual processing is possible for Renewal Letter in advance only
      IF p_manpr = 'X' AND rb_follo = 'X'.
        MESSAGE E017.
      ENDIF.
    Main Processing
    START-OF-SELECTION.
      Check for the Follow up report
        IF rb_follo = 'X'.
        Call Follow up report with Selection criteria
          SUBMIT /SIE/SWE_XCM_INDEX_FOLLOWUP
           USING SELECTION-SET l_variant
            WITH so_vbeln IN so_vbeln
            WITH so_vkorg IN so_vkorg
            WITH so_vtweg IN so_vtweg
            WITH so_spart IN so_spart
            WITH so_vkgrp IN so_vkgrp
            WITH so_vkbur IN so_vkbur
            WITH so_vkues IN so_vkues
            WITH so_vuntd IN so_vuntd
            WITH so_ernam IN so_ernam
            WITH so_fnum  IN so_fnum
            WITH p_kappl  EQ c_kappl
            WITH p_kschl  EQ c_kschl
            WITH p_auart  EQ c_auart
          AND RETURN.
        ELSE.
        Process for Indexation Report
          gs_repid = sy-repid.
        Get data.
          PERFORM get_data.
        Filter data based on Siemens France rules
          PERFORM process_data.
        Check contract data is available for selection criteria
          IF NOT it_cntrt[] IS INITIAL.
          create ALV output header
            PERFORM alv_fieldcat USING gt_fieldcat[].
          create ALV layout
            PERFORM alv_layout CHANGING gs_layout.
          Sort ALV output
            PERFORM alv_sort.
          display filtered contract data
            PERFORM output_data.
          ELSE.
          Display a message 'No records found'.
            MESSAGE I011.
            EXIT.
          ENDIF.
        ENDIF.
    *&      Form  get_data
          Retrieve contracts data from tables
    -->  p1        text
    <--  p2        text
    FORM get_data.
    Get contract data from VBAK and VEDA.
      SELECT avbeln   aaudat   a~kunnr
             bvuntdat bvbegdat
             bvdemdat bvenddat
        INTO CORRESPONDING FIELDS OF TABLE it_cntrt
        FROM vbak AS a INNER JOIN veda AS b
          ON avbeln = bvbeln
       WHERE a~vbeln   IN so_vbeln
         AND a~auart   EQ c_auart
         AND a~vkorg   IN so_vkorg
         AND a~vtweg   IN so_vtweg
         AND a~spart   IN so_spart
         AND a~vkgrp   IN so_vkgrp
         AND a~vkbur   IN so_vkbur
         AND a~ernam   IN so_ernam
         AND b~vposn   = '000000'
         AND b~vkuesch IN so_vkues
         AND b~vuntdat IN so_vuntd.
    ENDFORM.                    " get_data
    *&      Form  process_data
          text
    -->  p1        text
    <--  p2        text
    FORM process_data.
    Internal tables
      DATA: l_nast   TYPE TABLE OF nast,
            it_pr    TYPE TABLE OF /sie/ssg_xcm_pr.
    Work areas
      DATA: w_nast   TYPE nast,
            wa_pr    TYPE /sie/ssg_xcm_pr.
    local Variables
      DATA: l_datum1 TYPE sy-datum,
            l_datum2 TYPE sy-datum,
            l_d3last TYPE sy-datum,
            l_d3next TYPE sy-datum.
    current date.
      l_datum1 = sy-datum.
    Calcuate date after 3 months.
      CALL FUNCTION 'DATE_CREATE'
        EXPORTING
          ANZAHL_MONATE        = 3
          DATUM_EIN            = l_datum1
        IMPORTING
          DATUM_AUS            = l_datum2.
      l_datum2 = l_datum2 - 1.
      SORT it_cntrt BY KUNNR VBELN.
    Get corresponding records from /SIE/SSG_XCM_PR.
      SELECT vbeln posnr fnum
          FROM /SIE/SSG_XCM_PR
          INTO CORRESPONDING FIELDS OF TABLE it_pr
           FOR ALL ENTRIES IN it_cntrt
         WHERE vbeln = it_cntrt-vbeln
          AND posnr = it_cntrt-vposn
           AND fnum IN so_fnum.
    clear workarea
      CLEAR wa_cntrt.
    filter contracts agaist the table /SIE/SSG_XCM_PR records.
      LOOP AT it_cntrt INTO wa_cntrt.
        CLEAR wa_pr.
      check contracts available in table /SIE/SSG_XCM_PR
        READ TABLE it_pr INTO wa_pr WITH KEY vbeln = wa_cntrt-vbeln.
        IF sy-subrc <> 0.
            DELETE it_cntrt.
            CLEAR wa_pr.
            CONTINUE.
        ELSEIF sy-subrc = 0 AND NOT wa_pr-fnum IN so_fnum.
      if not available, do not consider this contract
            DELETE it_cntrt.
            CLEAR wa_pr.
            CONTINUE.
        ENDIF.
         Dont consider contracts expires before today and after 3 months.
        IF wa_cntrt-vdemdat > l_datum1.   "current date
               IF wa_cntrt-vdemdat(6) > l_datum2(6). "AND   "after 3 months
               delete contract
                 DELETE it_cntrt.
                 CLEAR wa_cntrt.
                 CONTINUE.
               ENDIF.
        ELSE.
            DELETE it_cntrt.
            CLEAR wa_cntrt.
            CONTINUE.
        ENDIF.
      Is contract renewal letter has been sent already?
      Get all records from NAST to find letter sent?
        SELECT kappl objky kschl nacha datvr
          FROM NAST
          INTO CORRESPONDING FIELDS OF TABLE l_nast
         WHERE kappl = c_kappl
           AND objky = wa_cntrt-vbeln
           AND kschl = c_kschl
           AND nacha = '1'.
        IF sy-subrc = 0.
           sort renewal letter sent dates by latest is first
             SORT l_nast BY datvr DESCENDING.
           Get latest nast record
             READ TABLE l_nast INTO w_nast INDEX 1.
             IF sy-subrc = 0.
                IF p_manpr <> 'X'.  " ignore 3 month logic
                    l_d3next = wa_cntrt-vdemdat(06).
                    l_d3next+6(2) = '01'.
                  Calcuate date after 3 months.
                    CALL FUNCTION 'DATE_CREATE'
                      EXPORTING
                        ANZAHL_MONATE        = -3
                        DATUM_EIN            = l_d3next
                      IMPORTING
                        DATUM_AUS            = l_d3last.
                    l_d3last = l_d3last + 1.
                  Check letter already sent year equals current year
                    IF w_nast-datvr BETWEEN l_d3last AND wa_cntrt-vdemdat.
                     do not consider it
                       DELETE it_cntrt.
                       CLEAR: l_d3last, wa_cntrt, w_nast, l_d3next.
                       CONTINUE.
                    ENDIF.
                ENDIF.
             ENDIF.
        ENDIF.
      no leading zeros to contract
        WRITE wa_cntrt-vbeln TO wa_cntrt-vbeln1 NO-ZERO.
      modify internal table
        MODIFY it_cntrt FROM wa_cntrt.
        CLEAR: l_nast, w_nast.
      ENDLOOP.
    ENDFORM.                    " process_data
    *&      Form  output_data
          text
    -->  p1        text
    <--  p2        text
    FORM output_data.
    Display output in a ALV Grid
       CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
           I_CALLBACK_PROGRAM                = gs_repid
           I_CALLBACK_PF_STATUS_SET          = 'ALV_STATUS'
           I_CALLBACK_USER_COMMAND           = 'USER_COMMAND'
           IS_LAYOUT                         = gs_layout
           IT_FIELDCAT                       = gt_fieldcat
           IT_SORT                           = gs_sort
           I_SAVE                            = 'A'
         TABLES
           T_OUTTAB                          = it_cntrt
         EXCEPTIONS
           PROGRAM_ERROR                     = 1
           OTHERS                            = 2
       IF SY-SUBRC <> 0.
           MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                   WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
       ENDIF.
    ENDFORM.                    " output_data
    *&      Form  alv_header
          text
    -->  p1        text
    <--  p2        text
    FORM alv_fieldcat USING gs_fieldcat TYPE slis_t_fieldcat_alv.
      DATA: ls_fieldcat TYPE slis_fieldcat_alv.
    Sold-to Party header
      ls_fieldcat-col_pos = 1.
      ls_fieldcat-fieldname = 'KUNNR'.
      ls_fieldcat-seltext_m = 'Sold-to Party'.
      ls_fieldcat-outputlen = 14.
      ls_fieldcat-datatype  = 'CHAR'.
      ls_fieldcat-key       = 'X'.
      APPEND ls_fieldcat TO gs_fieldcat.
      CLEAR ls_fieldcat.
    Contract number
      ls_fieldcat-col_pos = 2.
      ls_fieldcat-fieldname = 'VBELN'.
      ls_fieldcat-seltext_m = 'Contract Number'.
      ls_fieldcat-outputlen = 20.
      ls_fieldcat-datatype  = 'CHAR'.
      APPEND ls_fieldcat TO gs_fieldcat.
      CLEAR ls_fieldcat.
    Contract Signed Date
      ls_fieldcat-col_pos = 3.
      ls_fieldcat-fieldname = 'VUNTDAT'.
      ls_fieldcat-seltext_m = 'Contract signed date'.
      ls_fieldcat-outputlen = 20.
      ls_fieldcat-datatype  = 'DATS'.
      APPEND ls_fieldcat TO gs_fieldcat.
      CLEAR ls_fieldcat.
    Contract Start Date
      ls_fieldcat-col_pos = 4.
      ls_fieldcat-fieldname = 'VBEGDAT'.
      ls_fieldcat-seltext_m = 'Contract start date'.
      ls_fieldcat-outputlen = '20'.
      ls_fieldcat-datatype  = 'DATS'.
      APPEND ls_fieldcat TO gs_fieldcat.
      CLEAR ls_fieldcat.
    Dismantling date
      ls_fieldcat-col_pos = 5.
      ls_fieldcat-fieldname = 'VDEMDAT'.
      ls_fieldcat-seltext_m = 'Dismantling date'.
      ls_fieldcat-outputlen = 14.
      ls_fieldcat-datatype  = 'DATS'.
      APPEND ls_fieldcat TO gs_fieldcat.
      CLEAR ls_fieldcat.
    ENDFORM.                    " alv_header
    *&      Form  alv_layout
          text
    -->  p1        text
    <--  p2        text
    FORM alv_layout USING ls_layout TYPE slis_layout_alv.
    No input
      ls_layout-no_input          = 'X'.
    Column width is flexible
    ls_layout-colwidth_optimize = 'X'.
      ls_layout-box_fieldname = 'BOX'.
      ls_layout-info_fieldname = 'LINE_COLOR'.
      ls_layout-zebra = 'X'.
      ls_layout-get_selinfos = 'X'.
      ls_layout-reprep = 'X'.
    ENDFORM.                    " alv_layout
    *&      Form  alv_status
          text
    -->  p1        text
    <--  p2        text
    FORM alv_status USING rt_extab TYPE slis_t_extab.
    GUI Status and Application Toolbar
      SET PF-STATUS '/SIE/SWE_XCM_INDEXLE'.
    ENDFORM.
    *&      Form  user_command
          text
    -->  p1        text
    <--  p2        text
    FORM user_command USING l_ucomm      LIKE sy-ucomm
                            l_selfield   TYPE slis_selfield.
      RANGES: r_kappl FOR nast-kappl,
              r_objky FOR nast-objky,
              r_kschl FOR nast-kschl,
              r_nacha FOR nast-nacha.
      DATA: l_jobname  TYPE TBTCJOB-JOBNAME,
            l_jobcount TYPE TBTCJOB-JOBCOUNT,
            l_repid    TYPE sy-repid,
            l_print_params TYPE PRI_PARAMS,
            l_arc_params   TYPE ARC_PARAMS,
            l_valid        TYPE c,
            l_retcode      TYPE sy-subrc,
            l_blines       TYPE i.
      CASE l_ucomm.
      Process button seleted
        WHEN c_sform.
        process selected records.
          LOOP AT it_cntrt INTO wa_cntrt.
             IF wa_cntrt-box = 'X'.
              place output type in the contract
                PERFORM bdc_output USING wa_cntrt
                                   CHANGING l_retcode.
                IF l_retcode = 0.
                add record for jobground job
                  r_objky-sign   = 'I'.
                  r_objky-option = 'EQ'.
                  r_objky-low    = wa_cntrt-vbeln.
                  APPEND r_objky.
                ENDIF.
                CLEAR: wa_cntrt, l_retcode, r_objky.
             ENDIF.
          ENDLOOP.
        WHEN c_dclick.
        set contract number id with the selected contract
          SET PARAMETER ID 'AUN' FIELD l_selfield-value.
          SET PARAMETER ID 'KTN' FIELD l_selfield-value.
        call va42 tcode when double click on contract
          CALL TRANSACTION c_tcode AND SKIP FIRST SCREEN.
      ENDCASE.
      DESCRIBE TABLE r_objky LINES l_blines.
    IF NOT r_objky[] IS INITIAL.
      IF l_blines > 0.
        Background job name.
          CONCATENATE 'XCM_INDEXATION' sy-uname '_' sy-uzeit
                 INTO l_jobname.
        Application
          r_kappl-sign   = 'I'.
          r_kappl-option = 'EQ'.
          r_kappl-low    = 'V1'.
          APPEND r_kappl.
        Message Type
          r_kschl-sign   = 'I'.
          r_kschl-option = 'EQ'.
          r_kschl-low    = c_kschl.
          APPEND r_kschl.
        Message transmission medium
          r_nacha-sign   = 'I'.
          r_nacha-option = 'EQ'.
          r_nacha-low    = '1'.
          APPEND r_nacha.
          l_repid = sy-repid.
        Print Parameters
          CALL FUNCTION 'GET_PRINT_PARAMETERS'
            EXPORTING
              DESTINATION                  = p_print
              MODE                         = c_batch
              NO_DIALOG                    = 'X'
              REPORT                       = l_repid
              EXPIRATION                   = 2
              IMMEDIATELY                  = 'X'
              NEW_LIST_ID                  = 'X'
            IMPORTING
              OUT_ARCHIVE_PARAMETERS       = l_arc_params
              OUT_PARAMETERS               = l_print_params
              VALID                        = l_valid
            EXCEPTIONS
              ARCHIVE_INFO_NOT_FOUND       = 1
              INVALID_PRINT_PARAMS         = 2
              INVALID_ARCHIVE_PARAMS       = 3
              OTHERS                       = 4.
          IF SY-SUBRC <> 0.
             MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                      WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
          ENDIF.
        opening the job
          CALL FUNCTION 'JOB_OPEN'
            EXPORTING
              JOBNAME                = l_jobname
            IMPORTING
              JOBCOUNT               = l_jobcount
           EXCEPTIONS
             CANT_CREATE_JOB        = 1
             INVALID_JOB_DATA       = 2
             JOBNAME_MISSING        = 3
             OTHERS                 = 4.
          IF SY-SUBRC <> 0.
           MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                   WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
          ENDIF.
        Job submit
          SUBMIT /sie/swe_xcm_index_rsnast00 TO SAP-SPOOL
                          USER sy-uname
                          WITH s_kappl IN r_kappl
                          WITH s_objky IN r_objky
                          WITH s_kschl IN r_kschl
                          WITH s_nacha IN r_nacha
                          WITH p_print  EQ p_print
             VIA JOB l_jobname NUMBER l_jobcount
             SPOOL PARAMETERS l_print_params
             WITHOUT SPOOL DYNPRO
             AND RETURN.
          IF sy-subrc <> 0.
          display message when error in scheduling background job
            MESSAGE E016 WITH 'Error scheduling Job'.
          ENDIF.
        Job close
          CALL FUNCTION 'JOB_CLOSE'
            EXPORTING
              JOBCOUNT                          = l_jobcount
              JOBNAME                           = l_jobname
              STRTIMMED                         = 'X'
           EXCEPTIONS
             CANT_START_IMMEDIATE              = 1
             INVALID_STARTDATE                 = 2
             JOBNAME_MISSING                   = 3
             JOB_CLOSE_FAILED                  = 4
             JOB_NOSTEPS                       = 5
             JOB_NOTEX                         = 6
             LOCK_FAILED                       = 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.
      ENDIF.
    ENDFORM.
    *&      Form  bdc_output
          text
    -->  p1        text
    <--  p2        text
    FORM bdc_output USING    wa_cntrt  TYPE ty_cntrt
                    CHANGING l_retcode TYPE sy-subrc.
    DATA: l_nast TYPE TABLE OF nast,
           it_nast TYPE TABLE OF nast,
           w_nast TYPE nast,
           l_cellno(2) TYPE n,
           l_vbelv TYPE vbfa-vbelv,
           l_vbpa  TYPE vbpa,
           l_yes(1),
           l_temp(40) TYPE c,
           l_lines    TYPE i,
           l_lesscnt  TYPE i,
           l_less(1),
           l_lines1(2) TYPE n.
        REFRESH: it_nast, l_nast, it_bdc.
        CLEAR: l_nast, w_nast, l_yes, l_cellno,
               it_nast, l_nast, it_bdc.
        PERFORM dyn_scr USING 'SAPMV45A' '0102' 'X'.
          PERFORM dyn_fld USING 'VBAK-VBELN' wa_cntrt-vbeln.
          PERFORM dyn_fld USING 'BDC_OKCODE' '/00'.
        PERFORM dyn_scr USING 'SAPMV45A' '4001' 'X'.
          PERFORM dyn_fld USING 'BDC_OKCODE' '=HEAD'.
        PERFORM dyn_scr USING 'SAPMV45A' '4002' 'X'.
          PERFORM dyn_fld USING 'BDC_OKCODE' '=KDOK'.
        SELECT *
          FROM nast
          INTO CORRESPONDING FIELDS OF TABLE l_nast
         WHERE kappl = c_kappl
           AND objky = wa_cntrt-vbeln.
        IF sy-subrc = 0.
            SORT l_nast BY kschl vstat.
            DESCRIBE TABLE l_nast LINES l_lines.
            LOOP AT l_nast INTO w_nast.
                l_cellno = sy-tabix.
                IF w_nast-kschl = c_kschl AND w_nast-vstat = 0.
                  EXIT.
                ENDIF.
                IF w_nast-kschl > c_kschl OR
                   ( w_nast-kschl = c_kschl AND w_nast-vstat <> 0 ).
                   IF l_less = space.
                     l_cellno = l_cellno - 1.
                   ENDIF.
                   CLEAR l_less.
                  IF l_cellno = 0.
                     l_cellno = 1.
                  ENDIF.
                  l_lines = l_lines + 1.
                  l_lines1 = l_lines.
                  PERFORM dyn_scr USING 'SAPDV70A' '0100' 'X'.
                    CONCATENATE 'DNAST-KSCHL(' l_lines1 ')' INTO l_temp.
                    CONDENSE l_temp.
                    PERFORM dyn_fld USING l_temp 'Y6C4'.
                    CLEAR: l_temp, l_lines, l_lines1.
                    PERFORM dyn_fld USING 'BDC_OKCODE' '/00'.
                  EXIT.
                ELSEIF w_nast-kschl < c_kschl.
                  l_less = 'X'.
                  l_lesscnt = l_lesscnt + 1.
                ENDIF.
            ENDLOOP.
        ELSE.
            l_cellno = '01'.
            PERFORM dyn_scr USING 'SAPDV70A' '0100' 'X'.
              CONCATENATE 'DNAST-KSCHL(' l_cellno ')' INTO l_temp.
              CONDENSE l_temp.
              PERFORM dyn_fld USING l_temp 'Y6C4'.
              CLEAR l_temp.
              PERFORM dyn_fld USING 'BDC_OKCODE' '/00'.
        ENDIF.
        IF l_less = 'X'.
            l_lesscnt = l_lesscnt + 1.
                  l_cellno = l_lesscnt.
                  l_lines = l_lines + 1.
                  l_lines1 = l_lines.
                  PERFORM dyn_scr USING 'SAPDV70A' '0100' 'X'.
                    CONCATENATE 'DNAST-KSCHL(' l_lines1 ')' INTO l_temp.
                    CONDENSE l_temp.
                    PERFORM dyn_fld USING l_temp 'Y6C4'.
                    CLEAR: l_temp, l_lines, l_lines1.
                    PERFORM dyn_fld USING 'BDC_OKCODE' '/00'.
        ENDIF.
        PERFORM dyn_scr USING 'SAPDV70A' '0100' 'X'.
          CONCATENATE 'DV70A-SELKZ(' l_cellno ')' INTO l_temp.
          CONDENSE l_temp.
          PERFORM dyn_fld USING l_temp 'X'.
          CLEAR l_temp.
          PERFORM dyn_fld USING 'BDC_OKCODE' '=V70P'.
        PERFORM dyn_scr USING 'SAPDV70A' '0101' 'X'.
          PERFORM dyn_fld USING 'NAST-LDEST' p_print.
          PERFORM dyn_fld USING 'NAST-DIMME' 'X'.
          PERFORM dyn_fld USING 'NAST-TDARMOD' '1'.
          PERFORM dyn_fld USING 'BDC_OKCODE' '=V70B'.
        PERFORM dyn_scr USING 'SAPDV70A' '0100' 'X'.
          CONCATENATE 'DV70A-SELKZ(' l_cellno ')' INTO l_temp.
          CONDENSE l_temp.
          PERFORM dyn_fld USING l_temp 'X'.
          CLEAR l_temp.
          PERFORM dyn_fld USING 'BDC_OKCODE' '=V70I'.
        PERFORM dyn_scr USING 'SAPDV70A' '0102' 'X'.
          PERFORM dyn_fld USING 'NAST-VSZTP' '1'.
          PERFORM dyn_fld USING 'BDC_OKCODE' '=V70B'.
        PERFORM dyn_scr USING 'SAPDV70A' '0100' 'X'.
          PERFORM dyn_fld USING 'BDC_OKCODE' '=V70S'.
        CALL TRANSACTION c_tcode USING it_bdc
                                 MODE c_mode     "'N'
                                 UPDATE c_updat  "'A'
                                 MESSAGES INTO it_mesg.
        IF sy-subrc = 0.
          l_retcode = 0.
        ENDIF.
    ENDFORM.                    " bdc_output
    *&      Form  dyn_scr
          text
         -->P_0642   text
         -->P_0643   text
         -->P_0644   text
    FORM dyn_scr USING    P_0642
                          P_0643
                          P_0644.
        MOVE:  p_0642 TO wa_bdc-program,
               p_0643 TO wa_bdc-dynpro,
               p_0644 TO wa_bdc-dynbegin.
        APPEND wa_bdc TO it_bdc.
        CLEAR wa_bdc.
    ENDFORM.                    " dyn_scr
    *&      Form  dyn_fld
          text
         -->P_0654   text
         -->P_0655  text
    FORM dyn_fld USING    P_0654
                          P_0655.
       MOVE: p_0654 TO wa_bdc-fnam,
             p_0655 TO wa_bdc-fval.
       APPEND wa_bdc TO it_bdc.
       CLEAR wa_bdc.
    ENDFORM.                    " dyn_fld
    *&      Form  alv_sort
          text
    FORM alv_sort.
      DATA: wa_sortcat  TYPE slis_sortinfo_alv.
      WA_SORTCAT-SPOS      = 1.
      WA_SORTCAT-FIELDNAME = 'KUNNR'.
      WA_SORTCAT-UP        = 'X'.
      WA_SORTCAT-EXPA      = 'X'.
    Appending gd_sortcat-tabname
      APPEND WA_SORTCAT TO gs_sort.
      CLEAR wa_sortcat.
      WA_SORTCAT-SPOS      = 2.
      WA_SORTCAT-FIELDNAME = 'VBELN'.
      WA_SORTCAT-UP        = 'X'.
      WA_SORTCAT-EXPA      = 'X'.
    Appending gd_sortcat-tabname
      APPEND WA_SORTCAT TO gs_sort.
      WA_SORTCAT-SPOS      = 3.
      WA_SORTCAT-FIELDNAME = 'VUNTDAT'.
      WA_SORTCAT-UP        = 'X'.
      WA_SORTCAT-EXPA      = 'X'.
    Appending gd_sortcat-tabname
      APPEND WA_SORTCAT TO gs_sort.
    ENDFORM.                    " alv_sort

  • My question is related to alv

    hi friends..............
           i want to know whether it is possible to create a dialog box on the front of alv grid which is open with a new table alv grid
        by just clicking on one of the cell of a current alv grid screen.................
        if any dont understand my question then let me know by reply in this thread................
    thanks friend..............

    anything is possble besides the impossible ones )
    you are lucky since your problem is first category. You can code an eventhandler for your ALV and add on-click events.
    Probably on a column.
    Now you just have to define the coding for the event, which can be anything, in your case probably a "CALL SCREEN XXXX".
    if you now need to display an ALV on that screen you need to implement the coding for that somewhere in PBO of your new screen that you call on click of desired column.

  • My query is related to ALV GRID control

    hello friends .........
      plz anyone help me for displaying data in report program ..........
    i hv used a function namely 'REUSE_ALV_GRID_DISPLAY' but it does not display any data on output screen.
    whole code for it as .................................
    REPORT Z_SIMPLE1 .
    type-pools slis.
    data: fieldcat type slis_t_fieldcat_alv with header line,
          gd_tab_group type slis_t_sp_group_alv,
          gd_layout    type slis_layout_alv,
          gd_repid     like sy-repid.
    data:  begin of abcv occurs 0,
             int type i,
             char(10) type c,
          end of abcv.
    data: it_tab like table of abcv.
      abcv-int = 32.
       abcv-char = 'dfdf'.
       append abcv to it_tab.
       clear abcv.
        abcv-int = 33.
       abcv-char = 'defeffdf'.
       append abcv to it_tab.
       clear abcv.
        abcv-int = 322.
       abcv-char = 'deetgefdf'.
       append abcv to it_tab.
       clear abcv.
        abcv-int = 312.
       abcv-char = 'dergrhthjytfdf'.
       append abcv to it_tab.
       clear abcv.
    *********field catalog entry***********************
          fieldcat-fieldname = 'int'.
          fieldcat-outputlen = 50.
          fieldcat-col_pos = 4.
          fieldcat-tabname   = 'it_tab'.
          append fieldcat to fieldcat.
          clear fieldcat.
          fieldcat-fieldname = 'char'.
          fieldcat-outputlen = 50.
          fieldcat-tabname   = 'it_tab'.
          append fieldcat to fieldcat.
    *****layout**************    
    gd_layout-no_input          = 'X'.
      gd_layout-colwidth_optimize = 'X'.
      gd_layout-totals_text       = 'Totals'(201).
      gd_repid = sy-repid.
      call function 'REUSE_ALV_GRID_DISPLAY'
           exporting
                i_callback_program      = gd_repid
               i_callback_top_of_page   = 'TOP-OF-PAGE'  "see FORM
               i_callback_user_command = 'USER_COMMAND'
               i_grid_title           = outtext
                is_layout               = gd_layout
                it_fieldcat             = fieldcat[]
               it_special_groups       = gd_tabgroup
               IT_EVENTS                = GT_XEVENTS
                i_save                  = 'u'
               is_variant              = z_template
                 i_grid_title            = 'OUTPUT'
           tables
                t_outtab                = it_tab.
    so-- plz anyone help what changes r requried in it to display the data  and  how i use double click event on any coll. key  in it without making any screen for  for it ...................................

    Hi,
    Quick one is here, (You can search for more threads on this, there's lot more info on SDN on this topic)
    It would be a hotspot like this:
    fieldcat-fieldname = 'CHAR'.
    fieldcat-hotspot = 'X'.           " Add in Field catlog
    then add this in you call to AlV Grid (exporting parmeter):
    i_callback_user_command = 'USER_COMMAND'
    Create  new Subroutine:
    FORM user_command USING r_ucomm       LIKE sy-ucomm
                            rs_selfield   TYPE slis_selfield.
    " rs_selfield-tabindex field will give you index clicked,
    ENDFORM. 
    Cheers!

  • Query related to alv grid

    Hi All,
    I want to read the sub total amount which is displayed on the grid when i double click on it or I want to read the whole line where the subtotal amount is displayed.
    Help me out guru's....
    Thanks in advance.
    Regards,
    Ravi Ganji

    just try once and check rs_selfield-value in debug mode
    U can transfer the rs_selfield-value to another temp variable... this will give the subtotal into another internal table
    form status using p_extab type slis_t_extab.
      set pf-status 'STATUS' excluding p_extab.
    endform.                    "STATUS
    *&      Form  USER_COMMAND
          text
         -->R_UCOMM      text
         -->RS_SELFIELD  text
    form user_command using r_ucomm     like sy-ucomm
                                   rs_selfield type slis_selfield.
      case r_ucomm.
        when 'BACK' or 'CANC' or 'EXIT'.
          leave to screen 0.
        when '&IC1'.
          if rs_selfield-fieldname = 'VBELN'.
            call function 'CONVERSION_EXIT_ALPHA_INPUT'
              exporting
                input  = rs_selfield-value
              importing
                output = temp_vbeln.
         TEMP_VBELN = RS_SELFIELD-VALUE.
            perform get_data_vbrp.
            perform get_second_screen_display.
          endif.
      endcase.
    endform.                    "USER_COMMAND

  • Quetion related to ALVs

    hello experts,
    I created an interactive report...the basic list will display some details of the vendor...the first secondary list will display some detilas of the EKKO table based on LIFNR number...so, my problem is...the vendor number in the table is with two initial zeros (eg.0022234435)...but when i click on the basic list my program is comparing 22234435 with 0022234435 and no data is getting displayed in the secondary list...
    so, now tell me how can i overcome this problem?
    This is my program...
    TABLES:lfa1,ekko.
    SELECT-OPTIONS:vno FOR lfa1-lifnr.
    DATA:BEGIN OF itab OCCURS 0,
         lifnr LIKE lfa1-lifnr,
         name1 LIKE lfa1-name1,
         END OF itab.
    DATA:BEGIN OF jtab OCCURS 0,
         ebeln LIKE ekko-ebeln,
         aedat LIKE ekko-aedat,
         END OF jtab.
    TYPE-POOLS:slis.
    DATA:repid LIKE sy-repid.
    DATA:f_lfa11 TYPE slis_t_fieldcat_alv,
             f_lfa1 TYPE slis_fieldcat_alv,
             f_ekko1 TYPE slis_t_fieldcat_alv,
             f_ekko TYPE slis_fieldcat_alv.
    DATA:i_events TYPE slis_t_event,
             s_events TYPE slis_alv_event.
    repid = sy-repid.
    PERFORM col_head.
    START-OF-SELECTION.
      SELECT lifnr name1 FROM lfa1 INTO TABLE itab WHERE lifnr IN vno.
      CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
       EXPORTING
      I_INTERFACE_CHECK              = ' '
      I_BYPASSING_BUFFER             =
      I_BUFFER_ACTIVE                = ' '
         i_callback_program             = repid
      I_CALLBACK_PF_STATUS_SET       = ' '
      I_CALLBACK_USER_COMMAND        = ' '
      I_STRUCTURE_NAME               =
      IS_LAYOUT                      =
         it_fieldcat                    = f_lfa11
      IT_EXCLUDING                   =
      IT_SPECIAL_GROUPS              =
      IT_SORT                        =
      IT_FILTER                      =
      IS_SEL_HIDE                    =
      I_DEFAULT                      = 'X'
      I_SAVE                         = 'A'
      IS_VARIANT                     =
         it_events                      = i_events
      IT_EVENT_EXIT                  =
      IS_PRINT                       =
      IS_REPREP_ID                   =
      I_SCREEN_START_COLUMN          = 0
      I_SCREEN_START_LINE            = 0
      I_SCREEN_END_COLUMN            = 0
      I_SCREEN_END_LINE              = 0
    IMPORTING
      E_EXIT_CAUSED_BY_CALLER        =
      ES_EXIT_CAUSED_BY_USER         =
        TABLES
          t_outtab                       = itab
    EXCEPTIONS
      PROGRAM_ERROR                  = 1
      OTHERS                         = 2
      IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    FORM col_head.
      f_lfa1-fieldname = 'LIFNR'.
      f_lfa1-ref_tabname = 'LFA1'.
      f_lfa1-ref_fieldname = 'LIFNR'.
      APPEND f_lfa1 TO f_lfa11.
      CLEAR f_lfa1.
      f_lfa1-fieldname = 'NAME1'.
      f_lfa1-ref_tabname = 'LFA1'.
      f_lfa1-ref_fieldname = 'NAME1'.
      APPEND f_lfa1 TO f_lfa11.
      CLEAR f_lfa1.
      f_ekko-fieldname = 'EBELN'.
      f_ekko-ref_tabname = 'EKKO'.
      f_ekko-ref_fieldname = 'EBELN'.
      APPEND f_ekko TO f_ekko1.
      CLEAR f_ekko.
      f_ekko-fieldname = 'AEDAT'.
      f_ekko-ref_tabname = 'EKKO'.
      f_ekko-ref_fieldname = 'AEDAT'.
      APPEND f_ekko TO f_ekko1.
      CLEAR f_ekko.
      s_events-name = 'USER_COMMAND'.
      s_events-form = 'VAL'.
      APPEND s_events TO i_events.
    ENDFORM.                    "COL_HEAD
    FORM val USING user_command LIKE sy-ucomm
                   sel TYPE slis_selfield.
      DATA:v_lifnr(15) TYPE c.
      DATA:v_ebeln(15) TYPE c.
      DATA:v_matnr(15) TYPE c.
      v_lifnr = sel-value.
      SELECT EBELN AEDAT FROM EKKO INTO TABLE jtab WHERE LIFNR =  v_lifnr.
      CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
       EXPORTING
      I_INTERFACE_CHECK              = ' '
      I_BYPASSING_BUFFER             =
      I_BUFFER_ACTIVE                = ' '
         i_callback_program             = repid
      I_CALLBACK_PF_STATUS_SET       = ' '
      I_CALLBACK_USER_COMMAND        = ' '
      I_STRUCTURE_NAME               =
      IS_LAYOUT                      =
         it_fieldcat                    = f_ekko1
      IT_EXCLUDING                   =
      IT_SPECIAL_GROUPS              =
      IT_SORT                        =
      IT_FILTER                      =
      IS_SEL_HIDE                    =
      I_DEFAULT                      = 'X'
      I_SAVE                         = ' '
      IS_VARIANT                     =
         it_events                      = i_events
      IT_EVENT_EXIT                  =
      IS_PRINT                       =
      IS_REPREP_ID                   =
      I_SCREEN_START_COLUMN          = 0
      I_SCREEN_START_LINE            = 0
      I_SCREEN_END_COLUMN            = 0
      I_SCREEN_END_LINE              = 0
    IMPORTING
      E_EXIT_CAUSED_BY_CALLER        =
      ES_EXIT_CAUSED_BY_USER         =
        TABLES
          t_outtab                       = jtab
    EXCEPTIONS
      PROGRAM_ERROR                  = 1
      OTHERS                         = 2
      IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    ENDFORM.                    "VAL

    Hi Vinil
    Try to use the statement
    DATA: ALPHABET(15) VALUE '     ABCDEFGHIJ',
          M1(4)        VALUE 'ABCD',
          M2(6)        VALUE 'BJJCA '.
    SHIFT ALPHABET LEFT DELETING LEADING M1.
    The field
    ALPHABET
    remains unchanged.
    SHIFT ALPHABET LEFT DELETING LEADING SPACE.
    The field ALPHABET now has the following contents:
    'ABCDEFGHIJ     '.
    SHIFT ALPHABET RIGHT DELETING TRAILING M2.
    ALPHABET now has the following contents:
    '      ABCDEFGHI'.
    <u><b>IN CHARACTER MODE</b></u>
    <b>Effect</b>
    This is the default setting (see above), and the addition is therefore optional.
    <b>Note
    Performance:</b>
    For performance reasons, you should avoid using SHIFT in WHILE loops.
    The runtime required to shift a field with length 10 by one character to the right or left requires about 5 msn (standardized microseconds). A cyclical shift requires around 7 msn. The runtime for the ...
    LEFT DELETING LEADING
    ... variant is around 3.5 msn, for ...
    RIGHT DELETING TRAILING
    ... around 4.5 msn.
    Reward all helpfull answers
    Regards
    Pavan

  • Regarding alv

    hi experts,
    i have naver used alv in my report programming..can u plz suggest me how could i start using alv in my reports..can u give me some related examples..can u send me some reports related to alv..i would b thankful if u send 3-4 reports.
    regards,
    raman.

    HI,
    Go thru these programs they may help u to try on some hands on
    ALV Demo program
    BCALV_DEMO_HTML
    BCALV_FULLSCREEN_DEMO ALV Demo: Fullscreen Mode
    BCALV_FULLSCREEN_DEMO_CLASSIC ALV demo: Fullscreen mode
    BCALV_GRID_DEMO Simple ALV Control Call Demo Program
    BCALV_TREE_DEMO Demo for ALV tree control
    BCALV_TREE_SIMPLE_DEMO
    BC_ALV_DEMO_HTML_D0100
    See this sample Example.
    TABLES : ekko,
             ekpo.
    SELECT-OPTIONS: s_ebeln FOR ekko-ebeln.
    TYPE-POOLS: slis.
    DATA: BEGIN OF headertab OCCURS 0,
           ebeln LIKE ekko-ebeln,
           bstyp LIKE ekko-bstyp,
           bsart LIKE ekko-bsart,
           statu LIKE ekko-statu,
          END OF headertab.
    DATA: BEGIN OF itemtab OCCURS 0,
           ebeln LIKE ekpo-ebeln,
           ebelp LIKE ekpo-ebelp,
           matnr LIKE ekpo-matnr,
           werks LIKE ekpo-werks,
           menge LIKE ekpo-menge,
           netpr LIKE ekpo-netpr,
           peinh LIKE ekpo-peinh,
           netwr LIKE ekpo-netwr,
          END OF itemtab.
    DATA: BEGIN OF level2 OCCURS 0,
             ebeln LIKE ekpo-ebeln,
             ebelp LIKE ekpo-ebelp,
             matnr LIKE ekpo-matnr,
             werks LIKE ekpo-werks,
             menge LIKE ekpo-menge,
             netpr LIKE ekpo-netpr,
             peinh LIKE ekpo-peinh,
             netwr LIKE ekpo-netwr,
            END OF level2.
    DATA: i_fieldcat  TYPE slis_t_fieldcat_alv,
          i_fieldcat1 TYPE slis_t_fieldcat_alv.
    DATA: v_repid LIKE sy-repid,
          v_layout TYPE slis_layout_alv,
          v_events TYPE slis_t_event,
          v_print TYPE slis_print_alv,
          l_fieldcat TYPE slis_fieldcat_alv.
    START-OF-SELECTION.
      v_repid = sy-repid.
      SELECT ebeln bstyp bsart statu
         INTO TABLE headertab
         FROM ekko
         WHERE ebeln IN s_ebeln.
      IF NOT headertab[] IS INITIAL.
        SELECT ebeln ebelp matnr werks menge netpr peinh netwr
           INTO TABLE itemtab
           FROM ekpo
           FOR ALL ENTRIES IN headertab
           WHERE ebeln = headertab-ebeln.
      ENDIF.
      CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
        EXPORTING
          i_program_name               =  v_repid
          i_internal_tabname           = 'HEADERTAB'
        I_STRUCTURE_NAME             =
        I_CLIENT_NEVER_DISPLAY       = 'X'
          i_inclname                   = v_repid
          i_bypassing_buffer           = 'X'
          i_buffer_active              = ' '
        CHANGING
          ct_fieldcat                  = i_fieldcat
        EXCEPTIONS
          inconsistent_interface       = 1
          program_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.
      ENDIF.
      LOOP AT i_fieldcat INTO l_fieldcat.
        CASE l_fieldcat-fieldname.
          WHEN 'EBELN'.
            l_fieldcat-hotspot = 'X'.
            MODIFY i_fieldcat FROM l_fieldcat.
        ENDCASE.
      ENDLOOP.
      CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
        EXPORTING
        I_INTERFACE_CHECK              = ' '
          i_bypassing_buffer             = 'X'
          i_buffer_active                = ' '
          i_callback_program             = v_repid
        I_CALLBACK_PF_STATUS_SET       = ' '
         i_callback_user_command        = 'USER_COMMAND'
        I_STRUCTURE_NAME               =
        IS_LAYOUT                      =
          it_fieldcat                    = i_fieldcat
        IT_EXCLUDING                   =
        IT_SPECIAL_GROUPS              =
        IT_SORT                        =
        IT_FILTER                      =
        IS_SEL_HIDE                    =
        I_DEFAULT                      = 'X'
          i_save                         = 'A'
        IS_VARIANT                     =
        IT_EVENTS                      =
        IT_EVENT_EXIT                  =
        IS_PRINT                       =
        IS_REPREP_ID                   =
        I_SCREEN_START_COLUMN          = 0
        I_SCREEN_START_LINE            = 0
        I_SCREEN_END_COLUMN            = 0
        I_SCREEN_END_LINE              = 0
      IMPORTING
        E_EXIT_CAUSED_BY_CALLER        =
        ES_EXIT_CAUSED_BY_USER         =
        TABLES
          t_outtab                       = headertab
        EXCEPTIONS
          program_error                  = 1
          OTHERS                         = 2
      IF sy-subrc <> 0.
        MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      ENDIF.
    Thanks,CSR.

Maybe you are looking for

  • How can i tell how much hard drive space my website is taking up on my computer?

    I have a website that i build through iweb and publish via mobile me.  i have about 200 podcasts on the site, and I am trying to figure out how much hard drive space this is taking up on my computer.  these files are not in itunes, and i'm not concer

  • Satellite Pro M50: ATI Radeon Mobility 200 - Blue Screen error

    Hi, My girlfriend has a Satellite Pro M50, she bought it around 3 weeks ago, recently it has begun freezing while in general use (playing music, browsing web over wifi etc) and then it blue screens. The blue screen only stays on for a fraction of a s

  • Selection-Screen  - F4

    my requirement is <b>in my program i have 2 select-options 1.Company code (s_bukrs) 2.Portfolios (s_pfolio)</b> these two are maintained in a Ztable a)if we press F4 on Company code it has to show d values from Ztable-company code, and also b) i)if w

  • I want to export the data of journals

    I want to export journals to a file .jaf using the API of Enterprise 5,1 for Visual BASIC 6

  • N8: Email widgets stop responding

    Having the following issue with my N8, and wondering if anyone has a solution: Once in a while, email widgets stop auto updating and responding to taps.  Nothing happens if I tap on a widget - no email displayed, no error message.  It doesn't show ne