Pdf output problem in ALV Block Display

Hi ,
I have z custom report of ALV BLOCK LIST DISPLAY which creates Spool using ABAP submit statement and then this spool is feed to FM CONVERT_ABAPSPOOLJOB_2_PDF to create PDF file . PDF file generates but output is coming on two pages. I want to display output on same page(i.e. on first page only) .
it's urgent, appriciate your help.
Thanks & Regards
MSI

while displaying in the screen is it display in one screen and while converting in PDF is IT Does the same in Two Pages

Similar Messages

  • Problem in ALV BLOCK Display

    HI,
    PLZ help me .
    By using this code I select data from TXT  file and insert data in CS13 transaction  then I want to show each material which present in TXT file as ALV BLOCK  DISPLAY.
    Suppose txt file contain four material so report will show 4  list block .means data of every material showing in different blocks in the report.
    Code which I am using showing data for last item from txt file in one block and other items showing when I click back button .
    i am using below codes..........
    *& Report  ZCS13                                                       *
    REPORT  zcs13                                   .
    TABLES:
            mara,
            stpo,
            t001w,
            stko.
    TYPE-POOLS: slis.
    DATA: BEGIN OF it_stb OCCURS 0.
            INCLUDE STRUCTURE zstpox.
    DATA:END OF it_stb.
    DATA: BEGIN OF it_matmaster OCCURS 0,
          matnr TYPE matnr,
          werks TYPE werks,
         stlal type stlal,
         capid type capid,
          emeng TYPE emeng,
          END OF it_matmaster.
    DATA : ievent TYPE slis_t_event.
    DATA: it_stb2 LIKE stpox OCCURS 0 WITH HEADER LINE,
    it_stb3 LIKE stpox OCCURS 0 WITH HEADER LINE,
    temp_cat TYPE slis_fieldcat_alv,
    sline TYPE slis_listheader,
    gt_list_top_of_page TYPE slis_t_listheader,
    gs_layout TYPE slis_layout_alv ,
    gt_events TYPE slis_t_event,
    gt_sort TYPE slis_t_sortinfo_alv,
    w_msg(255) TYPE c,
    int TYPE i VALUE 0.
    Declaration of parameters
    *SELECTION-SCREEN BEGIN OF BLOCK b2.
    *SELECTION-SCREEN BEGIN OF LINE.
    *SELECTION-SCREEN COMMENT (8) FOR FIELD p_matnr.
    *SELECTION-SCREEN POSITION 25 .
    *PARAMETERS: p_matnr LIKE mara-matnr OBLIGATORY .
    *SELECTION-SCREEN END OF LINE.
    *SELECTION-SCREEN BEGIN OF LINE.
    *SELECTION-SCREEN COMMENT (8) FOR FIELD p_werks.
    *SELECTION-SCREEN POSITION 25 .
    *PARAMETERS: p_werks LIKE t001w-werks OBLIGATORY .
    *SELECTION-SCREEN END OF LINE.
    *SELECTION-SCREEN BEGIN OF LINE.
    *SELECTION-SCREEN COMMENT (15) FOR FIELD p_albom.
    *SELECTION-SCREEN POSITION 25 .
    *PARAMETERS: p_albom LIKE stko-stlal DEFAULT ' '.
    *SELECTION-SCREEN END OF LINE.
    *SELECTION-SCREEN BEGIN OF LINE.
    *SELECTION-SCREEN COMMENT (15) FOR FIELD p_bomap.
    *SELECTION-SCREEN POSITION 25 .
    *PARAMETERS: p_bomap(4) DEFAULT 'PP01'.
    *SELECTION-SCREEN END OF LINE.
    *SELECTION-SCREEN END OF BLOCK b2.
    *DATA :anr_datuv LIKE aenr-datuv.
    *SELECTION-SCREEN BEGIN OF BLOCK b3.
    *SELECTION-SCREEN BEGIN OF LINE.
    *SELECTION-SCREEN COMMENT (15) text-s02 .
    *SELECTION-SCREEN END OF LINE.
    *SELECTION-SCREEN BEGIN OF LINE.
    *SELECTION-SCREEN COMMENT (15) text-s02 .
    *SELECTION-SCREEN END OF LINE.
    *SELECTION-SCREEN BEGIN OF LINE.
    *SELECTION-SCREEN COMMENT (15) text-s03 .
    *SELECTION-SCREEN END OF LINE.
    *SELECTION-SCREEN END OF BLOCK b3.
    *SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-s01 .
    *SELECTION-SCREEN BEGIN OF LINE.
    *SELECTION-SCREEN COMMENT (15) FOR FIELD p_vfrom.
    *SELECTION-SCREEN POSITION 25 .
    *PARAMETERS p_vfrom LIKE stpo-datuv DEFAULT sy-datum.
    *SELECTION-SCREEN END OF LINE.
    *SELECTION-SCREEN BEGIN OF LINE.
    *SELECTION-SCREEN COMMENT (15) FOR FIELD pm_aennr.
    *SELECTION-SCREEN POSITION 25 .
    *PARAMETERS pm_aennr LIKE aenr-aennr.
    *SELECTION-SCREEN END OF LINE.
    *SELECTION-SCREEN BEGIN OF LINE.
    *SELECTION-SCREEN COMMENT (17) FOR FIELD p_reqty.
    *SELECTION-SCREEN POSITION 25 .
    *PARAMETERS p_reqty LIKE stpo-menge DEFAULT '1' .
    *SELECTION-SCREEN END OF LINE.
    *SELECTION-SCREEN BEGIN OF LINE.
    *SELECTION-SCREEN COMMENT (15) FOR FIELD p_assd.
    *SELECTION-SCREEN POSITION 25 .
    *PARAMETERS p_assd AS CHECKBOX.
    *SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-002.
    PARAMETERS:p_file LIKE rlgrap-filename OBLIGATORY.
    SELECTION-SCREEN END OF BLOCK b1 .
    CONSTANTS c_x VALUE 'X'.
    DATA: w_topmat LIKE cstmat,
        fieldcat TYPE slis_t_fieldcat_alv,
         wa_fieldcat TYPE slis_fieldcat_alv.
    DATA:v_file TYPE string.
    *SELECTION-SCREEN END OF BLOCK b1.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
      CALL FUNCTION 'F4_FILENAME'
        EXPORTING
          program_name  = syst-cprog
          dynpro_number = syst-dynnr
          field_name    = 'P_FILE'
        IMPORTING
          file_name     = p_file.
    START-OF-SELECTION.
      v_file = p_file.
      CALL FUNCTION 'GUI_UPLOAD'
        EXPORTING
          filename                      = v_file
         filetype                      = 'ASC'
         has_field_separator           = 'X'
      HEADER_LENGTH                 = 0
      READ_BY_LINE                  = 'X'
      DAT_MODE                      = ' '
    IMPORTING
      FILELENGTH                    =
      HEADER                        =
        TABLES
          data_tab                      =  it_matmaster
       EXCEPTIONS
         file_open_error               = 1
         file_read_error               = 2
         no_batch                      = 3
         gui_refuse_filetransfer       = 4
         invalid_type                  = 5
         no_authority                  = 6
         unknown_error                 = 7
         bad_data_format               = 8
         header_not_allowed            = 9
         separator_not_allowed         = 10
         header_too_long               = 11
         unknown_dp_error              = 12
         access_denied                 = 13
         dp_out_of_memory              = 14
         disk_full                     = 15
         dp_timeout                    = 16
         OTHERS                        = 17
      IF sy-subrc <> 0.
        MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      ENDIF.
      LOOP AT it_matmaster.
        PERFORM explode_assembly.
       PERFORM f01_set_layo CHANGING gs_layout.
       PERFORM eventtab_build USING ievent.
    perform fldcat.
        PERFORM display_grid.
      ENDLOOP.
    PERFORM display_grid.
    *&      Form  EXPLODE_ASSEMBLY
          text
    FORM explode_assembly.
      CALL FUNCTION 'CS_BOM_EXPL_MAT_V2'
        EXPORTING
          capid                 = 'BEST'
          cuols                 = c_x
          datuv                 = sy-datum
          emeng                 = it_matmaster-emeng
          knfba                 = c_x
          ksbvo                 = c_x
          mehrs                 = c_x
          mbwls                 = c_x
         mdmps                 = c_x
          mktls                 = c_x
         stlal                 = it_matmaster-stlal
         stlan                 = p_bomap
          mtnrv                 = it_matmaster-matnr
          werks                 = it_matmaster-werks
         svwvo                 = 'X'
         vrsvo                 = 'X'
        IMPORTING
          topmat                = w_topmat
        TABLES
          stb                   = it_stb
        EXCEPTIONS
          alt_not_found         = 1
          call_invalid          = 2
          material_not_found    = 3
          missing_authorization = 4
          no_bom_found          = 5
          no_plant_data         = 6
          no_suitable_bom_found = 7
          conversion_error      = 8
          OTHERS                = 9.
      IF sy-subrc <> 0.
       MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
               WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4
               INTO w_msg.
       WRITE: / w_msg.
       EXIT.
      ENDIF.
    ENDFORM.                    "explode_assembly
    *&      Form  display_grid
          text
    -->  p1        text
    <--  p2        text
    form display_grid .
    *CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
      EXPORTING
        i_callback_program                = 'ZCS13'
    i_callback_top_of_page            = 'TOP_OF_PAGE_GRID'
      is_layout                         = gs_layout
        it_fieldcat                       = fieldcat
          IT_SORT                           = GT_SORT[]
           i_save                            = 'A'
         it_events                         = gt_events[]
       TABLES
         t_outtab                          = it_stb
    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_BLOCK_LIST_INIT'
      EXPORTING
        i_callback_program             = 'ZALVTOTAL'
      I_CALLBACK_PF_STATUS_SET       = PFSTATUS
       i_callback_user_command        = 'USER_COMMAND'(001)
      IT_EXCLUDING                   =
    *CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
    EXPORTING
       is_layout                        = gs_layout
       it_fieldcat                      = i_fieldcat
       i_tabname                        = 'IT_TAB[]'
       it_events                        = gt_events
      it_sort                          = gt_sort
      I_TEXT                           = ' '
    TABLES
       t_outtab                         = it_tab[]
    EXCEPTIONS
      program_error                    = 1
      maximum_of_appends_reached       = 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.
    CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
      EXPORTING
        is_layout                        = gs_layout
        it_fieldcat                      = fieldcat
        i_tabname                        = 'IT_STB[]'
        it_events                        = gt_events
       it_sort                          = gt_sort
      I_TEXT                           = ' '
      TABLES
        t_outtab                         = it_stb[]
    EXCEPTIONS
       program_error                    = 1
       maximum_of_appends_reached       = 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.
    CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_DISPLAY'
    EXPORTING
       i_interface_check             = 'x_print_layout'
      IS_PRINT                      =
      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        =
    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_grid
    *&      Form  fldcat
          text
    -->  p1        text
    <--  p2        text
    form fldcat .
    *DATA: wa_fieldcat TYPE slis_fieldcat_alv,
      CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
       EXPORTING
         i_program_name               = 'ZCS13'
      I_INTERNAL_TABNAME           = 'IT_STB'
         i_structure_name             = 'ZSTPOX'
      I_CLIENT_NEVER_DISPLAY       = 'X'
         i_inclname                   = 'ZCS13'
      I_BYPASSING_BUFFER           =
      I_BUFFER_ACTIVE              =
        CHANGING
          ct_fieldcat                  = 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.
    endform.                    " fldcat

    Hi ,
    plz check the below codeand suggest me why it not showing data.....
    i make changes according to you ...
    waiting for your reply
    *& Report  ZCS13                                                       *
    REPORT  zcs13                                   .
    TABLES:
            mara,
            stpo,
            t001w,
            stko.
    TYPE-POOLS: slis.
    DATA: BEGIN OF it_stb OCCURS 0.
            INCLUDE STRUCTURE zstpox.
    DATA:END OF it_stb.
    DATA: BEGIN OF it_matmaster OCCURS 0,
          matnr TYPE matnr,
          werks TYPE werks,
         stlal type stlal,
         capid type capid,
          emeng TYPE emeng,
          END OF it_matmaster.
    DATA : ievent TYPE slis_t_event.
    DATA: it_stb2 LIKE stpox OCCURS 0 WITH HEADER LINE,
    it_stb3 LIKE stpox OCCURS 0 WITH HEADER LINE,
    temp_cat TYPE slis_fieldcat_alv,
    sline TYPE slis_listheader,
    gt_list_top_of_page TYPE slis_t_listheader,
    gs_layout TYPE slis_layout_alv ,
    gt_events TYPE slis_t_event,
    gt_sort TYPE slis_t_sortinfo_alv,
    w_msg(255) TYPE c,
    int TYPE i VALUE 0.
    Declaration of parameters
    *SELECTION-SCREEN BEGIN OF BLOCK b2.
    *SELECTION-SCREEN BEGIN OF LINE.
    *SELECTION-SCREEN COMMENT (8) FOR FIELD p_matnr.
    *SELECTION-SCREEN POSITION 25 .
    *PARAMETERS: p_matnr LIKE mara-matnr OBLIGATORY .
    *SELECTION-SCREEN END OF LINE.
    *SELECTION-SCREEN BEGIN OF LINE.
    *SELECTION-SCREEN COMMENT (8) FOR FIELD p_werks.
    *SELECTION-SCREEN POSITION 25 .
    *PARAMETERS: p_werks LIKE t001w-werks OBLIGATORY .
    *SELECTION-SCREEN END OF LINE.
    *SELECTION-SCREEN BEGIN OF LINE.
    *SELECTION-SCREEN COMMENT (15) FOR FIELD p_albom.
    *SELECTION-SCREEN POSITION 25 .
    *PARAMETERS: p_albom LIKE stko-stlal DEFAULT ' '.
    *SELECTION-SCREEN END OF LINE.
    *SELECTION-SCREEN BEGIN OF LINE.
    *SELECTION-SCREEN COMMENT (15) FOR FIELD p_bomap.
    *SELECTION-SCREEN POSITION 25 .
    *PARAMETERS: p_bomap(4) DEFAULT 'PP01'.
    *SELECTION-SCREEN END OF LINE.
    *SELECTION-SCREEN END OF BLOCK b2.
    *DATA :anr_datuv LIKE aenr-datuv.
    *SELECTION-SCREEN BEGIN OF BLOCK b3.
    *SELECTION-SCREEN BEGIN OF LINE.
    *SELECTION-SCREEN COMMENT (15) text-s02 .
    *SELECTION-SCREEN END OF LINE.
    *SELECTION-SCREEN BEGIN OF LINE.
    *SELECTION-SCREEN COMMENT (15) text-s02 .
    *SELECTION-SCREEN END OF LINE.
    *SELECTION-SCREEN BEGIN OF LINE.
    *SELECTION-SCREEN COMMENT (15) text-s03 .
    *SELECTION-SCREEN END OF LINE.
    *SELECTION-SCREEN END OF BLOCK b3.
    *SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-s01 .
    *SELECTION-SCREEN BEGIN OF LINE.
    *SELECTION-SCREEN COMMENT (15) FOR FIELD p_vfrom.
    *SELECTION-SCREEN POSITION 25 .
    *PARAMETERS p_vfrom LIKE stpo-datuv DEFAULT sy-datum.
    *SELECTION-SCREEN END OF LINE.
    *SELECTION-SCREEN BEGIN OF LINE.
    *SELECTION-SCREEN COMMENT (15) FOR FIELD pm_aennr.
    *SELECTION-SCREEN POSITION 25 .
    *PARAMETERS pm_aennr LIKE aenr-aennr.
    *SELECTION-SCREEN END OF LINE.
    *SELECTION-SCREEN BEGIN OF LINE.
    *SELECTION-SCREEN COMMENT (17) FOR FIELD p_reqty.
    *SELECTION-SCREEN POSITION 25 .
    *PARAMETERS p_reqty LIKE stpo-menge DEFAULT '1' .
    *SELECTION-SCREEN END OF LINE.
    *SELECTION-SCREEN BEGIN OF LINE.
    *SELECTION-SCREEN COMMENT (15) FOR FIELD p_assd.
    *SELECTION-SCREEN POSITION 25 .
    *PARAMETERS p_assd AS CHECKBOX.
    *SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-002.
    PARAMETERS:p_file LIKE rlgrap-filename OBLIGATORY.
    SELECTION-SCREEN END OF BLOCK b1 .
    CONSTANTS c_x VALUE 'X'.
    DATA: w_topmat LIKE cstmat,
        fieldcat TYPE slis_t_fieldcat_alv,
         wa_fieldcat TYPE slis_fieldcat_alv.
    DATA:v_file TYPE string.
    *SELECTION-SCREEN END OF BLOCK b1.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
      CALL FUNCTION 'F4_FILENAME'
        EXPORTING
          program_name  = syst-cprog
          dynpro_number = syst-dynnr
          field_name    = 'P_FILE'
        IMPORTING
          file_name     = p_file.
    START-OF-SELECTION.
      v_file = p_file.
      CALL FUNCTION 'GUI_UPLOAD'
        EXPORTING
          filename                      = v_file
         filetype                      = 'ASC'
         has_field_separator           = 'X'
      HEADER_LENGTH                 = 0
      READ_BY_LINE                  = 'X'
      DAT_MODE                      = ' '
    IMPORTING
      FILELENGTH                    =
      HEADER                        =
        TABLES
          data_tab                      =  it_matmaster
       EXCEPTIONS
         file_open_error               = 1
         file_read_error               = 2
         no_batch                      = 3
         gui_refuse_filetransfer       = 4
         invalid_type                  = 5
         no_authority                  = 6
         unknown_error                 = 7
         bad_data_format               = 8
         header_not_allowed            = 9
         separator_not_allowed         = 10
         header_too_long               = 11
         unknown_dp_error              = 12
         access_denied                 = 13
         dp_out_of_memory              = 14
         disk_full                     = 15
         dp_timeout                    = 16
         OTHERS                        = 17
      IF sy-subrc <> 0.
        MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      ENDIF.
      CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_INIT'
        EXPORTING
          i_callback_program             = 'ZCS13'
      I_CALLBACK_PF_STATUS_SET       = PFSTATUS
         i_callback_user_command        = 'USER_COMMAND'(001).
      IT_EXCLUDING                   =.
      DATA :int1(10) .
    PERFORM fldcat.
      LOOP AT it_matmaster.
        PERFORM explode_assembly.
       PERFORM f01_set_layo CHANGING gs_layout.
       PERFORM eventtab_build USING ievent.
        PERFORM fldcat.
        PERFORM display_grid.
      ENDLOOP.
    PERFORM display_grid.
      CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_DISPLAY'
       EXPORTING
         i_interface_check             = 'x_print_layout'
      IS_PRINT                      =
      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        =
       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  EXPLODE_ASSEMBLY
          text
    FORM explode_assembly.
      CALL FUNCTION 'CS_BOM_EXPL_MAT_V2'
        EXPORTING
          capid                 = 'BEST'
          cuols                 = c_x
          datuv                 = sy-datum
          emeng                 = it_matmaster-emeng
          knfba                 = c_x
          ksbvo                 = c_x
          mehrs                 = c_x
          mbwls                 = c_x
         mdmps                 = c_x
          mktls                 = c_x
         stlal                 = it_matmaster-stlal
         stlan                 = p_bomap
          mtnrv                 = it_matmaster-matnr
          werks                 = it_matmaster-werks
         svwvo                 = 'X'
         vrsvo                 = 'X'
        IMPORTING
          topmat                = w_topmat
        TABLES
          stb                   = it_stb
        EXCEPTIONS
          alt_not_found         = 1
          call_invalid          = 2
          material_not_found    = 3
          missing_authorization = 4
          no_bom_found          = 5
          no_plant_data         = 6
          no_suitable_bom_found = 7
          conversion_error      = 8
          OTHERS                = 9.
      IF sy-subrc <> 0.
       MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
               WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4
               INTO w_msg.
       WRITE: / w_msg.
       EXIT.
      ENDIF.
    ENDFORM.                    "explode_assembly
    *&      Form  display_grid
          text
    -->  p1        text
    <--  p2        text
    FORM display_grid .
      CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
        EXPORTING
          is_layout                        = gs_layout
          it_fieldcat                      = fieldcat
          i_tabname                        = 'IT_STB[]'
          it_events                        = gt_events
         it_sort                          = gt_sort
      I_TEXT                           = ' '
        TABLES
          t_outtab                         = it_stb
       EXCEPTIONS
         program_error                    = 1
         maximum_of_appends_reached       = 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.
    ENDFORM.                    " display_grid
    *&      Form  fldcat
          text
    -->  p1        text
    <--  p2        text
    FORM fldcat .
    *DATA: wa_fieldcat TYPE slis_fieldcat_alv,
      CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
       EXPORTING
         i_program_name               = 'ZCS13'
      I_INTERNAL_TABNAME           = 'IT_STB'
         i_structure_name             = 'ZSTPOX'
      I_CLIENT_NEVER_DISPLAY       = 'X'
         i_inclname                   = 'ZCS13'
      I_BYPASSING_BUFFER           =
      I_BUFFER_ACTIVE              =
        CHANGING
          ct_fieldcat                  = 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.
    ENDFORM.                    " fldcat

  • Problem in ALV Block List

    Hi All,
    I am trying to displaying BOM explosion for materials in ALV Block list.
    I am taking the materials to be exploded from a local file. Taking the contents of the file in an internal table and then passing the parameters like material number bom application , alternative BOM to the function 'CS_BOM_EXPL_MAT_V2'
    Then I am calling the functions for ALV Block display for each material.
      But when I am displaying the data in the block display , only the BOM explosion for the last material is getting displayed.
    I am pasting the code also for ur reference.
    REPORT  zcs13                                   .
    TABLES:
            mara,
            stpo,
            t001w,
            stko.
    TYPE-POOLS: slis.
    DATA: BEGIN OF it_stb OCCURS 0.
            INCLUDE STRUCTURE zstpox.
    DATA:END OF it_stb.
    DATA: BEGIN OF it_matmaster OCCURS 0,
          matnr TYPE matnr,
          werks TYPE werks,
         stlal type stlal,
         capid type capid,
          emeng TYPE emeng,
          END OF it_matmaster.
    DATA : ievent TYPE slis_t_event.
    DATA: it_stb2 LIKE stpox OCCURS 0 WITH HEADER LINE,
    it_stb3 LIKE stpox OCCURS 0 WITH HEADER LINE,
    temp_cat TYPE slis_fieldcat_alv,
    sline TYPE slis_listheader,
    gt_list_top_of_page TYPE slis_t_listheader,
    gs_layout TYPE slis_layout_alv ,
    gt_events TYPE slis_t_event,
    gt_sort TYPE slis_t_sortinfo_alv,
    w_msg(255) TYPE c,
    int TYPE i VALUE 0.
    SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-002.
    PARAMETERS:p_file LIKE rlgrap-filename OBLIGATORY.
    SELECTION-SCREEN END OF BLOCK b1 .
    CONSTANTS c_x VALUE 'X'.
    DATA: w_topmat LIKE cstmat,
        fieldcat TYPE slis_t_fieldcat_alv,
         wa_fieldcat TYPE slis_fieldcat_alv.
    DATA:v_file TYPE string.
    *SELECTION-SCREEN END OF BLOCK b1.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
      CALL FUNCTION 'F4_FILENAME'
        EXPORTING
          program_name  = syst-cprog
          dynpro_number = syst-dynnr
          field_name    = 'P_FILE'
        IMPORTING
          file_name     = p_file.
    START-OF-SELECTION.
      v_file = p_file.
      CALL FUNCTION 'GUI_UPLOAD'
        EXPORTING
          filename                      = v_file
         filetype                      = 'ASC'
         has_field_separator           = 'X'
      HEADER_LENGTH                 = 0
      READ_BY_LINE                  = 'X'
      DAT_MODE                      = ' '
    IMPORTING
      FILELENGTH                    =
      HEADER                        =
        TABLES
          data_tab                      =  it_matmaster
       EXCEPTIONS
         file_open_error               = 1
         file_read_error               = 2
         no_batch                      = 3
         gui_refuse_filetransfer       = 4
         invalid_type                  = 5
         no_authority                  = 6
         unknown_error                 = 7
         bad_data_format               = 8
         header_not_allowed            = 9
         separator_not_allowed         = 10
         header_too_long               = 11
         unknown_dp_error              = 12
         access_denied                 = 13
         dp_out_of_memory              = 14
         disk_full                     = 15
         dp_timeout                    = 16
         OTHERS                        = 17
      IF sy-subrc <> 0.
        MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      ENDIF.
      LOOP AT it_matmaster.
        PERFORM explode_assembly.
       PERFORM f01_set_layo CHANGING gs_layout.
       PERFORM eventtab_build USING ievent.
    perform fldcat.
        PERFORM display_grid.
      ENDLOOP.
    PERFORM display_grid.
    CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_DISPLAY'
    EXPORTING
       i_interface_check             = 'x_print_layout'
      IS_PRINT                      =
      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        =
    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  EXPLODE_ASSEMBLY
          text
    FORM explode_assembly.
      CALL FUNCTION 'CS_BOM_EXPL_MAT_V2'
        EXPORTING
          capid                 = 'BEST'
          cuols                 = c_x
          datuv                 = sy-datum
          emeng                 = it_matmaster-emeng
          knfba                 = c_x
          ksbvo                 = c_x
          mehrs                 = c_x
          mbwls                 = c_x
         mdmps                 = c_x
          mktls                 = c_x
         stlal                 = it_matmaster-stlal
         stlan                 = p_bomap
          mtnrv                 = it_matmaster-matnr
          werks                 = it_matmaster-werks
         svwvo                 = 'X'
         vrsvo                 = 'X'
        IMPORTING
          topmat                = w_topmat
        TABLES
          stb                   = it_stb
        EXCEPTIONS
          alt_not_found         = 1
          call_invalid          = 2
          material_not_found    = 3
          missing_authorization = 4
          no_bom_found          = 5
          no_plant_data         = 6
          no_suitable_bom_found = 7
          conversion_error      = 8
          OTHERS                = 9.
      IF sy-subrc <> 0.
       MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
               WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4
               INTO w_msg.
       WRITE: / w_msg.
       EXIT.
      ENDIF.
    ENDFORM.                    "explode_assembly
    *&      Form  display_grid
          text
    -->  p1        text
    <--  p2        text
    form display_grid .
    *CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
      EXPORTING
        i_callback_program                = 'ZCS13'
    i_callback_top_of_page            = 'TOP_OF_PAGE_GRID'
      is_layout                         = gs_layout
        it_fieldcat                       = fieldcat
          IT_SORT                           = GT_SORT[]
           i_save                            = 'A'
         it_events                         = gt_events[]
       TABLES
         t_outtab                          = it_stb
    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_BLOCK_LIST_INIT'
      EXPORTING
        i_callback_program             = 'ZALVTOTAL'
      I_CALLBACK_PF_STATUS_SET       = PFSTATUS
       i_callback_user_command        = 'USER_COMMAND'(001)
      IT_EXCLUDING                   =
    *CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
    EXPORTING
       is_layout                        = gs_layout
       it_fieldcat                      = i_fieldcat
       i_tabname                        = 'IT_TAB[]'
       it_events                        = gt_events
      it_sort                          = gt_sort
      I_TEXT                           = ' '
    TABLES
       t_outtab                         = it_tab[]
    EXCEPTIONS
      program_error                    = 1
      maximum_of_appends_reached       = 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.
    CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
      EXPORTING
        is_layout                        = gs_layout
        it_fieldcat                      = fieldcat
        i_tabname                        = 'IT_STB[]'
        it_events                        = gt_events
       it_sort                          = gt_sort
      I_TEXT                           = ' '
      TABLES
        t_outtab                         = it_stb[]
    EXCEPTIONS
       program_error                    = 1
       maximum_of_appends_reached       = 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.
    clear it_stb[].
    endform.                    " display_grid
    *&      Form  fldcat
          text
    -->  p1        text
    <--  p2        text
    form fldcat .
    *DATA: wa_fieldcat TYPE slis_fieldcat_alv,
      CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
       EXPORTING
         i_program_name               = 'ZCS13'
      I_INTERNAL_TABNAME           = 'IT_STB'
         i_structure_name             = 'ZSTPOX'
      I_CLIENT_NEVER_DISPLAY       = 'X'
         i_inclname                   = 'ZCS13'
      I_BYPASSING_BUFFER           =
      I_BUFFER_ACTIVE              =
        CHANGING
          ct_fieldcat                  = 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.
    Pls Suggest
    Thanks.

    Hi All,
    I am trying to displaying BOM explosion for materials in ALV Block list.
    I am taking the materials to be exploded from a local file. Taking the contents of the file in an internal table and then passing the parameters like material number bom application , alternative BOM to the function 'CS_BOM_EXPL_MAT_V2'
    Then I am calling the functions for ALV Block display for each material.
      But when I am displaying the data in the block display , only the BOM explosion for the last material is getting displayed.
    I am pasting the code also for ur reference.
    REPORT  zcs13                                   .
    TABLES:
            mara,
            stpo,
            t001w,
            stko.
    TYPE-POOLS: slis.
    DATA: BEGIN OF it_stb OCCURS 0.
            INCLUDE STRUCTURE zstpox.
    DATA:END OF it_stb.
    DATA: BEGIN OF it_matmaster OCCURS 0,
          matnr TYPE matnr,
          werks TYPE werks,
         stlal type stlal,
         capid type capid,
          emeng TYPE emeng,
          END OF it_matmaster.
    DATA : ievent TYPE slis_t_event.
    DATA: it_stb2 LIKE stpox OCCURS 0 WITH HEADER LINE,
    it_stb3 LIKE stpox OCCURS 0 WITH HEADER LINE,
    temp_cat TYPE slis_fieldcat_alv,
    sline TYPE slis_listheader,
    gt_list_top_of_page TYPE slis_t_listheader,
    gs_layout TYPE slis_layout_alv ,
    gt_events TYPE slis_t_event,
    gt_sort TYPE slis_t_sortinfo_alv,
    w_msg(255) TYPE c,
    int TYPE i VALUE 0.
    SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-002.
    PARAMETERS:p_file LIKE rlgrap-filename OBLIGATORY.
    SELECTION-SCREEN END OF BLOCK b1 .
    CONSTANTS c_x VALUE 'X'.
    DATA: w_topmat LIKE cstmat,
        fieldcat TYPE slis_t_fieldcat_alv,
         wa_fieldcat TYPE slis_fieldcat_alv.
    DATA:v_file TYPE string.
    *SELECTION-SCREEN END OF BLOCK b1.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
      CALL FUNCTION 'F4_FILENAME'
        EXPORTING
          program_name  = syst-cprog
          dynpro_number = syst-dynnr
          field_name    = 'P_FILE'
        IMPORTING
          file_name     = p_file.
    START-OF-SELECTION.
      v_file = p_file.
      CALL FUNCTION 'GUI_UPLOAD'
        EXPORTING
          filename                      = v_file
         filetype                      = 'ASC'
         has_field_separator           = 'X'
      HEADER_LENGTH                 = 0
      READ_BY_LINE                  = 'X'
      DAT_MODE                      = ' '
    IMPORTING
      FILELENGTH                    =
      HEADER                        =
        TABLES
          data_tab                      =  it_matmaster
       EXCEPTIONS
         file_open_error               = 1
         file_read_error               = 2
         no_batch                      = 3
         gui_refuse_filetransfer       = 4
         invalid_type                  = 5
         no_authority                  = 6
         unknown_error                 = 7
         bad_data_format               = 8
         header_not_allowed            = 9
         separator_not_allowed         = 10
         header_too_long               = 11
         unknown_dp_error              = 12
         access_denied                 = 13
         dp_out_of_memory              = 14
         disk_full                     = 15
         dp_timeout                    = 16
         OTHERS                        = 17
      IF sy-subrc <> 0.
        MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      ENDIF.
      LOOP AT it_matmaster.
        PERFORM explode_assembly.
       PERFORM f01_set_layo CHANGING gs_layout.
       PERFORM eventtab_build USING ievent.
    perform fldcat.
        PERFORM display_grid.
      ENDLOOP.
    PERFORM display_grid.
    CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_DISPLAY'
    EXPORTING
       i_interface_check             = 'x_print_layout'
      IS_PRINT                      =
      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        =
    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  EXPLODE_ASSEMBLY
          text
    FORM explode_assembly.
      CALL FUNCTION 'CS_BOM_EXPL_MAT_V2'
        EXPORTING
          capid                 = 'BEST'
          cuols                 = c_x
          datuv                 = sy-datum
          emeng                 = it_matmaster-emeng
          knfba                 = c_x
          ksbvo                 = c_x
          mehrs                 = c_x
          mbwls                 = c_x
         mdmps                 = c_x
          mktls                 = c_x
         stlal                 = it_matmaster-stlal
         stlan                 = p_bomap
          mtnrv                 = it_matmaster-matnr
          werks                 = it_matmaster-werks
         svwvo                 = 'X'
         vrsvo                 = 'X'
        IMPORTING
          topmat                = w_topmat
        TABLES
          stb                   = it_stb
        EXCEPTIONS
          alt_not_found         = 1
          call_invalid          = 2
          material_not_found    = 3
          missing_authorization = 4
          no_bom_found          = 5
          no_plant_data         = 6
          no_suitable_bom_found = 7
          conversion_error      = 8
          OTHERS                = 9.
      IF sy-subrc <> 0.
       MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
               WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4
               INTO w_msg.
       WRITE: / w_msg.
       EXIT.
      ENDIF.
    ENDFORM.                    "explode_assembly
    *&      Form  display_grid
          text
    -->  p1        text
    <--  p2        text
    form display_grid .
    *CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
      EXPORTING
        i_callback_program                = 'ZCS13'
    i_callback_top_of_page            = 'TOP_OF_PAGE_GRID'
      is_layout                         = gs_layout
        it_fieldcat                       = fieldcat
          IT_SORT                           = GT_SORT[]
           i_save                            = 'A'
         it_events                         = gt_events[]
       TABLES
         t_outtab                          = it_stb
    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_BLOCK_LIST_INIT'
      EXPORTING
        i_callback_program             = 'ZALVTOTAL'
      I_CALLBACK_PF_STATUS_SET       = PFSTATUS
       i_callback_user_command        = 'USER_COMMAND'(001)
      IT_EXCLUDING                   =
    *CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
    EXPORTING
       is_layout                        = gs_layout
       it_fieldcat                      = i_fieldcat
       i_tabname                        = 'IT_TAB[]'
       it_events                        = gt_events
      it_sort                          = gt_sort
      I_TEXT                           = ' '
    TABLES
       t_outtab                         = it_tab[]
    EXCEPTIONS
      program_error                    = 1
      maximum_of_appends_reached       = 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.
    CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
      EXPORTING
        is_layout                        = gs_layout
        it_fieldcat                      = fieldcat
        i_tabname                        = 'IT_STB[]'
        it_events                        = gt_events
       it_sort                          = gt_sort
      I_TEXT                           = ' '
      TABLES
        t_outtab                         = it_stb[]
    EXCEPTIONS
       program_error                    = 1
       maximum_of_appends_reached       = 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.
    clear it_stb[].
    endform.                    " display_grid
    *&      Form  fldcat
          text
    -->  p1        text
    <--  p2        text
    form fldcat .
    *DATA: wa_fieldcat TYPE slis_fieldcat_alv,
      CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
       EXPORTING
         i_program_name               = 'ZCS13'
      I_INTERNAL_TABNAME           = 'IT_STB'
         i_structure_name             = 'ZSTPOX'
      I_CLIENT_NEVER_DISPLAY       = 'X'
         i_inclname                   = 'ZCS13'
      I_BYPASSING_BUFFER           =
      I_BUFFER_ACTIVE              =
        CHANGING
          ct_fieldcat                  = 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.
    Pls Suggest
    Thanks.

  • ALVs - Block display

    Hi,
    Could anyone tell me if it is possible to edit fields in ALV block display?
    Thanks in advance
    Radhika

    Just check it out in the function pool SLIS the following.
    TYPES: BEGIN OF SLIS_FIELDCAT_ALV_SPEC,
    KEY_SEL(1) TYPE C, " field not obligatory
    NO_SUM(1) TYPE C, " do not sum up
    SP_GROUP(4) TYPE C, " group specification
    REPREP(1) TYPE C, " selection for rep/rep
    *INPUT(1) TYPE C, " input*
    EDIT(1) TYPE C, " internal use only
    HOTSPOT(1) TYPE C, " hotspot
    END OF SLIS_FIELDCAT_ALV_SPEC.
    TYPES: BEGIN OF SLIS_FIELDCAT_ALV.
    INCLUDE TYPE SLIS_FIELDCAT_MAIN.
    INCLUDE TYPE SLIS_FIELDCAT_ALV_SPEC.
    TYPES: END OF SLIS_FIELDCAT_ALV.
    Regards,
    Sankar.

  • How to display print icon in alv block display

    hi all,
    in my alv block display i have to display some icons as print, print preview, find, sort,change layout e.t.c
    if any one knows do let me know, if possible send the code.
    i have searched the forum for this query but i could'nt get the answer.

    Hi,
    check the link.
    https://www.sdn.sap.com/irj/scn/wiki?path=/display/snippets/how%252bto%252bkeep%252ban%252beye%252bon%252baggregates%252bin%252byour%252bsystem
    Regards
    Rajesh Kumar

  • Problem with ALV Grid Display screen Back Button

    Dear Friends ,
    I have an ALV Grid Display,Here am facing a problem for my 'Back' button,i haven't defined any PF Status and is using the standard one.But after the Display when i press Back Button a blank Screen is appearing n then again i have to press back button to go to my Selection Screen.
    Please Suggest if i have to take care of something else.
    I want my Selection Screen when i press Back on my Display Screen.
    DATA:  IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
           FIELDCAT TYPE SLIS_FIELDCAT_ALV.
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
            EXPORTING
             I_BYPASSING_BUFFER          =
             I_BUFFER_ACTIVE             =
             I_INTERFACE_CHECK           = ' '
                 I_CALLBACK_PROGRAM          = 'ZRMMPD01A'
             I_CALLBACK_PF_STATUS_SET    = ' '
             I_CALLBACK_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                     =  I_LAYOUT
               IT_FIELDCAT                 =  IT_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
        IMPORTING
             E_EXIT_CAUSED_BY_CALLER     =
             ES_EXIT_CAUSED_BY_USER      =
             TABLES
                  T_OUTTAB                    = IT_FINAL
            EXCEPTIONS
                 PROGRAM_ERROR               = 1
                 OTHERS                      = 2
    Thanks and Regards,
    Ashwini

    Hi Vijay ,
    No i dont have any write statement in my proggram.
    Here it is
    REPORT ZRMMPD01A  NO STANDARD PAGE HEADING.
    TABLES : EQUI,SER03,MKPF,OBJK.
    TYPE-POOLS : SLIS.
    DATA  IT_EQUI LIKE EQUI OCCURS 0 WITH HEADER LINE.
    DATA  IT_OBJK LIKE OBJK OCCURS 0 WITH HEADER LINE..
    DATA  IT_SER03 LIKE SER03 OCCURS 0 WITH HEADER LINE.
    DATA  IT_MKPF LIKE MKPF OCCURS 0 WITH HEADER LINE .
    DATA : BEGIN OF IT_DISPLAY OCCURS 0,
                MATNR LIKE EQUI-MATNR,
                SERNR LIKE EQUI-SERNR,
                BWART LIKE SER03-BWART,
                WERK LIKE SER03-WERK,
                CHARGE LIKE SER03-CHARGE,
                LAGERORT LIKE SER03-LAGERORT,
                MBLNR LIKE SER03-MBLNR,
                MJAHR LIKE SER03-MJAHR,
                ZEILE LIKE SER03-ZEILE,
                BUDAT LIKE MKPF-BUDAT,
                BKTXT LIKE MKPF-BKTXT,
                USNAM LIKE MKPF-USNAM,
                XBLNR LIKE MKPF-XBLNR,
            END OF IT_DISPLAY.
    DATA : WA_DISPLAY LIKE IT_DISPLAY.
    DATA  IT_FINAL LIKE IT_DISPLAY OCCURS 0 WITH HEADER LINE.
    DATA  IT_TEMP LIKE IT_DISPLAY OCCURS 0 WITH HEADER LINE.
    DATA:  IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
           FIELDCAT TYPE SLIS_FIELDCAT_ALV.
    DATA :I_LAYOUT TYPE SLIS_LAYOUT_ALV,
          I_EVENTS TYPE SLIS_T_EVENT.
    SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
    SELECT-OPTIONS : S_MATNR FOR EQUI-MATNR MATCHCODE OBJECT MCD,"OBLIGATORY
                    S_SERNR FOR EQUI-SERNR, "MATCHCODE OBJECT MCD OBLIGATORY
                    S_MBLNR FOR SER03-MBLNR MATCHCODE OBJECT MCD,
                    S_BWART FOR SER03-BWART MATCHCODE OBJECT MCD,
                    S_WERK FOR SER03-WERK MATCHCODE OBJECT MCD,
                    S_LAGET FOR SER03-LAGERORT MATCHCODE OBJECT MCD,
                    S_BUDAT FOR MKPF-BUDAT MATCHCODE OBJECT MCD,
                    S_XBLNR FOR MKPF-XBLNR MATCHCODE OBJECT MCD.
    SELECTION-SCREEN END OF BLOCK B1.
    SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-002.
    PARAMETERS : R1 RADIOBUTTON GROUP G1 DEFAULT 'X',
                 R2 RADIOBUTTON GROUP G1.
    SELECTION-SCREEN END OF BLOCK B2.
    START-OF-SELECTION.
    *Fetch Data.
      PERFORM GET_DATA.
    *Fill Display Fields.
      PERFORM FILL_TABLE.
    *Segregate data according to radio button selection.
      PERFORM SELECT_CONDITION.
    *Fill The Feild catalog.
      PERFORM FIELD_CATALOG.
    *Display Output.
      PERFORM OUTPUT_DISPLAY..
    *&      Form  GET_DATA
          text
    -->  p1        text
    <--  p2        text
    FORM GET_DATA.
      SELECT * FROM EQUI INTO TABLE IT_EQUI
        WHERE MATNR IN S_MATNR
        AND SERNR IN S_SERNR.
      SELECT * FROM OBJK INTO TABLE IT_OBJK
      FOR ALL ENTRIES IN IT_EQUI
      WHERE EQUNR = IT_EQUI-EQUNR.
      SELECT * FROM SER03 INTO TABLE IT_SER03
      FOR ALL ENTRIES IN IT_OBJK
      WHERE OBKNR = IT_OBJK-OBKNR
      AND MBLNR IN S_MBLNR
      AND BWART IN S_BWART
      AND WERK IN S_WERK
      AND LAGERORT IN S_LAGET.
      SELECT * FROM MKPF INTO TABLE IT_MKPF
      FOR ALL ENTRIES IN IT_SER03
      WHERE MBLNR = IT_SER03-MBLNR
      AND BUDAT IN S_BUDAT
      AND XBLNR IN S_XBLNR.
    ENDFORM.                    " GET_DATA
    *&      Form  FILL_TABLE
          text
    -->  p1        text
    <--  p2        text
    FORM FILL_TABLE.
      LOOP AT IT_EQUI.
        LOOP AT IT_OBJK.
          IF IT_OBJK-EQUNR <> IT_EQUI-EQUNR.
            SKIP.
          ELSE.
            READ TABLE IT_SER03 WITH KEY OBKNR = IT_OBJK-OBKNR.
            IF SY-SUBRC = 0.
              WA_DISPLAY-MATNR = IT_EQUI-MATNR.
              WA_DISPLAY-SERNR = IT_EQUI-SERNR.
              WA_DISPLAY-BWART = IT_SER03-BWART.
              WA_DISPLAY-WERK = IT_SER03-WERK.
              WA_DISPLAY-CHARGE = IT_SER03-CHARGE.
              WA_DISPLAY-LAGERORT = IT_SER03-LAGERORT.
              WA_DISPLAY-MBLNR = IT_SER03-MBLNR.
              WA_DISPLAY-MJAHR = IT_SER03-MJAHR.
              WA_DISPLAY-ZEILE = IT_SER03-ZEILE.
             READ TABLE IT_MKPF WITH KEY MBLNR = IT_SER03-MBLNR.
              IF SY-SUBRC = 0.
                WA_DISPLAY-BUDAT = IT_MKPF-BUDAT.
                WA_DISPLAY-BKTXT = IT_MKPF-BKTXT.
                WA_DISPLAY-USNAM = IT_MKPF-USNAM.
                WA_DISPLAY-XBLNR = IT_MKPF-XBLNR.
              ENDIF.
            ENDIF.
          ENDIF.
          IF NOT WA_DISPLAY IS INITIAL.
            APPEND WA_DISPLAY TO IT_DISPLAY.
            CLEAR WA_DISPLAY.
          ENDIF.
        ENDLOOP.
      ENDLOOP.
    ENDFORM.                    " FILL_TABLE
    *&      Form  FIELD_CATALOG
          text
    -->  p1        text
    <--  p2        text
    FORM FIELD_CATALOG.
      FIELDCAT-TABNAME = 'IT_DISPLAY'.
      FIELDCAT-FIELDNAME = 'MATNR'.
      FIELDCAT-SELTEXT_M = 'Material Number'.
      FIELDCAT-OUTPUTLEN =  18.
      APPEND FIELDCAT TO IT_FIELDCAT.
      CLEAR FIELDCAT.
      FIELDCAT-TABNAME = 'IT_DISPLAY'.
      FIELDCAT-FIELDNAME = 'SERNR'.
      FIELDCAT-SELTEXT_M = 'Serial number'.
      FIELDCAT-OUTPUTLEN =  18.
      APPEND FIELDCAT TO IT_FIELDCAT.
      CLEAR FIELDCAT.
      FIELDCAT-TABNAME = 'IT_DISPLAY'.
      FIELDCAT-FIELDNAME = 'MBLNR'.
      FIELDCAT-SELTEXT_L = 'Number of material document'.
      FIELDCAT-OUTPUTLEN =  18.
      APPEND FIELDCAT TO IT_FIELDCAT.
      CLEAR FIELDCAT.
      FIELDCAT-TABNAME = 'IT_DISPLAY'.
      FIELDCAT-FIELDNAME = 'BWART'.
      FIELDCAT-SELTEXT_M = 'Movement type'.
      FIELDCAT-OUTPUTLEN =  18.
      APPEND FIELDCAT TO IT_FIELDCAT.
      CLEAR FIELDCAT.
      FIELDCAT-TABNAME = 'IT_DISPLAY'.
      FIELDCAT-FIELDNAME = 'WERK'.
      FIELDCAT-SELTEXT_M = 'Plant'.
      FIELDCAT-OUTPUTLEN =  5.
      APPEND FIELDCAT TO IT_FIELDCAT.
      CLEAR FIELDCAT.
      FIELDCAT-TABNAME = 'IT_DISPLAY'.
      FIELDCAT-FIELDNAME = 'CHARGE'.
      FIELDCAT-SELTEXT_M = 'Batch number'.
      FIELDCAT-OUTPUTLEN =  18.
      APPEND FIELDCAT TO IT_FIELDCAT.
      CLEAR FIELDCAT.
      FIELDCAT-TABNAME = 'IT_DISPLAY'.
      FIELDCAT-FIELDNAME = 'LAGERORT'.
      FIELDCAT-SELTEXT_M = 'Storage Location'.
      FIELDCAT-OUTPUTLEN =  18.
      APPEND FIELDCAT TO IT_FIELDCAT.
      CLEAR FIELDCAT.
      FIELDCAT-TABNAME = 'IT_DISPLAY'.
      FIELDCAT-FIELDNAME = 'MJAHR'.
      FIELDCAT-SELTEXT_M = 'Material doc. year'.
      FIELDCAT-OUTPUTLEN =  18.
      APPEND FIELDCAT TO IT_FIELDCAT.
      CLEAR FIELDCAT.
      FIELDCAT-TABNAME = 'IT_DISPLAY'.
      FIELDCAT-FIELDNAME = 'ZEILE'.
      FIELDCAT-SELTEXT_L = 'Item in material document'.
      FIELDCAT-OUTPUTLEN =  18.
      APPEND FIELDCAT TO IT_FIELDCAT.
      CLEAR FIELDCAT.
      FIELDCAT-TABNAME = 'IT_DISPLAY'.
      FIELDCAT-FIELDNAME = 'BUDAT'.
      FIELDCAT-SELTEXT_L = 'Posting date in the document'.
      FIELDCAT-OUTPUTLEN =  10.
      APPEND FIELDCAT TO IT_FIELDCAT.
      CLEAR FIELDCAT.
      FIELDCAT-TABNAME = 'IT_DISPLAY'.
      FIELDCAT-FIELDNAME = 'BKTXT'.
      FIELDCAT-SELTEXT_L = 'Document header text'.
      FIELDCAT-OUTPUTLEN =  25.
      APPEND FIELDCAT TO IT_FIELDCAT.
      CLEAR FIELDCAT.
      FIELDCAT-TABNAME = 'IT_DISPLAY'.
      FIELDCAT-FIELDNAME = 'USNAM'.
      FIELDCAT-SELTEXT_M = 'User name'.
      FIELDCAT-OUTPUTLEN =  15.
      APPEND FIELDCAT TO IT_FIELDCAT.
      CLEAR FIELDCAT.
      FIELDCAT-TABNAME = 'IT_DISPLAY'.
      FIELDCAT-FIELDNAME = 'XBLNR'.
      FIELDCAT-SELTEXT_L = 'Reference document number'.
      FIELDCAT-OUTPUTLEN =  25.
      APPEND FIELDCAT TO IT_FIELDCAT.
      CLEAR FIELDCAT.
    ENDFORM.                    " FIELD_CATALOG
    *&      Form  DISPLAY_OUTPUT
          text
    -->  p1        text
    <--  p2        text
    FORM OUTPUT_DISPLAY.
      IF R1 = 'X'.
        CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
          EXPORTING
              I_CALLBACK_PROGRAM          = 'ZRMMPD01A'
              IS_LAYOUT                   =  I_LAYOUT
              IT_FIELDCAT                 = IT_FIELDCAT
          TABLES
              T_OUTTAB                    = IT_DISPLAY
            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.
        REFRESH IT_DISPLAY.
        CLEAR IT_DISPLAY.
      ELSEIF R2 = 'X'.
        CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
            EXPORTING
                 I_CALLBACK_PROGRAM          = 'ZRMMPD01A'
                 IS_LAYOUT                     =  I_LAYOUT
                 IT_FIELDCAT                 =  IT_FIELDCAT
             TABLES
                  T_OUTTAB                    = IT_FINAL
            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.
        REFRESH IT_DISPLAY.
        CLEAR IT_DISPLAY.
      ENDIF.
    ENDFORM.                    " DISPLAY_OUTPUT
    *&      Form  SELECT_CONDITION
          text
    -->  p1        text
    <--  p2        text
    FORM SELECT_CONDITION.
      IF R2 = 'X'.
        CLEAR WA_DISPLAY.
        SORT IT_DISPLAY BY MATNR SERNR MBLNR ZEILE.
        DELETE ADJACENT DUPLICATES FROM IT_DISPLAY.
        LOOP AT IT_DISPLAY WHERE ZEILE = '0002'.
          READ TABLE IT_DISPLAY WITH KEY MATNR = IT_DISPLAY-MATNR
          SERNR = IT_DISPLAY-SERNR ZEILE = '0001'.
          IF SY-SUBRC = 0.
            DELETE IT_DISPLAY.
          ENDIF.
        ENDLOOP.
        SORT IT_DISPLAY BY MATNR SERNR BWART MBLNR.
        DELETE ADJACENT DUPLICATES FROM IT_DISPLAY.
        LOOP AT IT_DISPLAY.
          IF WA_DISPLAY IS INITIAL.
            WA_DISPLAY =  IT_DISPLAY.
          ENDIF.
          LOOP AT IT_DISPLAY WHERE MATNR = WA_DISPLAY-MATNR
          AND SERNR = WA_DISPLAY-SERNR.
            IF IT_DISPLAY-BUDAT > WA_DISPLAY-BUDAT.
              WA_DISPLAY = IT_DISPLAY.
            ELSE.
              DELETE IT_DISPLAY.
            ENDIF.
          ENDLOOP.
          APPEND WA_DISPLAY TO IT_TEMP.
          CLEAR WA_DISPLAY.
        ENDLOOP.
        DELETE ADJACENT DUPLICATES FROM IT_TEMP.
        IF NOT IT_TEMP[] IS INITIAL.
          IT_FINAL[] = IT_TEMP[].
        ENDIF.
      ENDIF.
    ENDFORM.                    " SELECT_CONDITION
    Regards,
    Ashwini

  • REG :ALV BLOCK DISPLAY

    i have an existing report which displays the output in blocks.
    for this they have used ALV .
    they have used macros to build fieldcatalog for each block.
    the following is the macro for the field catalog.
    DEFINE m_alv_fieldcat.
      clear e_alv_fieldcat.
      add c_1 to w_col_pos.
      move: w_col_pos to e_alv_fieldcat-col_pos,
            &1        to e_alv_fieldcat-fieldname,
            &2        to e_alv_fieldcat-tabname,
            &3        to e_alv_fieldcat-ref_tabname,
            &4        to e_alv_fieldcat-key,
            &5        to e_alv_fieldcat-do_sum,
            &6        to e_alv_fieldcat-outputlen,
            &7        to e_alv_fieldcat-reptext_ddic,
            &8        to e_alv_fieldcat-cfieldname,
            &9        to e_alv_fieldcat-datatype.
      append e_alv_fieldcat to i_alv_fieldcat.
    END-OF-DEFINITION.
    and they have populated the macro as follows
    m_alv_fieldcat:
        c_usnam param_tab_hdr c_bkpf space space 0 space space space,
        c_belnr param_tab_hdr c_bkpf space space 0 space space space,
        c_cpudt param_tab_hdr c_bkpf space space 0 space space space,
        c_budat param_tab_hdr c_bkpf space space 0 space space space,
        c_blart param_tab_hdr c_bkpf space space 0 space space space,
        c_xblnr param_tab_hdr c_bkpf space space 0 space space space.
    now my requirement is  i have to add one more column in the block display.
    they have used place holders for macros.as place holders are only for 9 values.plz tell me how to add one more column to this fieldcatalog which is using Macros.
    thanks &regards

    As you need to add one more column, you will not face any problem with Place holders. Just add the last line of the below code to the existing  code:
    m_alv_fieldcat:
    c_usnam param_tab_hdr c_bkpf space space 0 space space space,
    c_belnr param_tab_hdr c_bkpf space space 0 space space space,
    c_cpudt param_tab_hdr c_bkpf space space 0 space space space,
    c_budat param_tab_hdr c_bkpf space space 0 space space space,
    c_blart param_tab_hdr c_bkpf space space 0 space space space,
    c_xblnr param_tab_hdr c_bkpf space space 0 space space space.
    C_EXTRACOL  param_tab_hdr c_bkpf space space 0 space space space.
    This will add one more column to the existing ALV list.
    Regards,
    Kiran Bobbala

  • Background task problem with alv grid display

    Hello !
    I have a problem when executing my program in background.
    In foreground I have no problem, my ALV appears. In the background I have a dump.
    The current ABAP program "SAPLKKBL" had to be terminated because one of the statements could not be executed.
    I use the function module 'REUSE_ALV_GRID_DISPLAY'
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
         EXPORTING
            i_callback_program      = gd_repid
            i_callback_user_command = 'F533_USER_COMMAND'
            is_layout               = gd_layout
            it_fieldcat             = fieldcatalog[]
            it_special_groups       = i_fgroup[]
            i_save                  = 'X'
            it_sort                 = gd_sort
            i_buffer_active         = ' '
            i_callback_pf_status_set = 'F534_SET_PF_STATUS'
         TABLES
            t_outtab                = mytab
         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.
    I don't understand where the problem is. Please help me.
    Thank you.

    I love replying to old threads:
    Try this link
    http://scn.sap.com/people/prashant.patil12/blog/2007/02/20/displaying-alv-grid-in-background-job

  • Problem with ALV Grid display

    Hi,
    I have developed  ALV Grid Report. It is working fine.
    But while i am coming from alv grid display to program
    by pressing BACK button it is showing one more screen
    which is empty. Again I press back button it is coming to
    selection screen. I don't want that empty screen.What is
    the problem. Can u help me in this regard.?
    Thanks
    Narasimha

    hi
    under the usercommand of back button use Exit Statement
    like
    At user-comand
    IF sy-ucom = 'Back'
    EXIT
    ENdif.
    Cheers
    Snehi

  • Alv Blocked Display

    Hi All,
    I want to display Blocked ALV.
    i know the function modules
    REUSE_ALV_BLOCK_LIST_INIT
    REUSE_ALV_BLOCK_LIST_APPEND
    REUSE_ALV_BLOCK_LIST_DISPLAY
    I want to display it with óut using this function modules.
    Is there anyway to do that.
    If so please let me know.
    Thanks

    hi
    just have a look at this thread
    Re: ALV Block list Display
    hope it helps
    regards
    Aakash Banga

  • ALV Block Display with filet ............ Urget Please..............

    Hello All,
    Hello All,
    I am Working on ALV Block List Report. In that report i am having two Blocks.
    if i set a filter for one block it is filtering that block, the second block remains constant.
    My requirment is like this if iam setting a filter for one field in first block, if the second block also have the same field, then filter should Automatically be setted to the second block based on the field.
    Is this possible?????  Can any one Help me out form this issue.
    Thanks,
    Feroz.

    If you are using ALV standard functionality then if you are sorting with field then it will consider only that field. but if the data for other field also same then it will sort based on first field only but it will look like it is consider second field also.
    If you are using standard functionality then you can not impletement logic that first field get selected and sorted by second even if its values are same.
    Rewards if useful..................
    Minal

  • Report fonts mapping and PDF output problem(Easten European languages)

    Hi experts,
    I have such a problem.
    If i run oracle reports(10g) via reports builder all layouts looks fine.
    When i run them in PDF format via application server - report text and numbers strech out off frames, also textfields and text itself becomes bigger in size.
    Aplication server runs over windows OS.
    Uifont.ali file looks:
    [ PDF:Subset ]
    Arial..Italic.Bold.. = "Arialbi.ttf"
    Arial...Bold.. = "Arialbd.ttf"
    Arial..Italic... = "Ariali.ttf"
    Arial..Plain... = "Arial.ttf"
    Arial..... = "Arial.ttf"
    "Times New Roman"...Bold.. = "TIMESBD.TTF"
    "Times New Roman"..Italic... = "TIMESI.TTF"
    "Times New Roman"..... = "TIMES.TTF"
    I think the problem is with Lithuanian(baltic) letters in the text. If i do not map fonts in uifont.ali file i get PDF report without the
    lithuanian alphabet letters, but in this case it looks fine(The same as in report builder)
    After fonts mapping, i get my lithuanian alphabet letters, but text and numbers strech out off frames, changes the size and etc.
    I put the example of my report uotput:
    http://pirmas.50webs.com/index.html
    What else can i do to solve this problem?
    Thanks for any suggestions
    Sky_lt

    Vangel
    For the html output issue , there is a patch available on top of 9021. Please contact your Oracle support representative to get a 90211 patch nd apply the one-off patch of Bug 2472932.
    For PDF, please ensure that you are setting the NLS_LANG in the server config file using the dynamic environment switch feature introduced in 90 patch 1 (9021). Please see the patch 1 release notes for the details
    Thanks
    The Oracle Reports Team

  • Problem in alv grid display (it is not filtering the data in print preview)

    Hi Every One,
    Its very urgent for me to deliver this report ....
    I applied sort criteria on my final internal table which is pupulated and then i passed to the function module...
    when i execute the program it is showing me the perfect output..when i take a print preview it is not filtering the data instead it is showing me the normal uotput i.e..,without sort criteria...
    here is the code plz go thru it and tell me were i am doing wrong...
    i thank u one and all ...and plz debub the code on the system and let me know....
    REPORT  tracking-quotation NO STANDARD PAGE HEADING MESSAGE-ID zrv_message LINE-COUNT 65 LINE-SIZE 110.
                          Includes
    This include contains declarations
      INCLUDE ZMM_TRACKING_QUOTATION_T.
    This include contains code for the performs
      INCLUDE ZMM_TRACKING_QUOTATION_F.
    AT SELECTION SCREEN                                                  *
    AT SELECTION-SCREEN.
    This perform will validate the fields
      PERFORM f_validate_sel_screen.
                         Start-Of-Selection
    START-OF-SELECTION.
    This perform will read the values from the database.
      PERFORM selection.
    This perform will build the field catalogue
      PERFORM f_build_catalogue.
    This perform will build the sort
      PERFORM f_event_sort.
    This perform will build the layout
      PERFORM f_build_layout.
    This perform will build the event
      PERFORM f_event_build.
    This perform will build the comment
      PERFORM f_comment_build.
    This perform will display the list
      PERFORM f_list_display.
              End-Of-Selection
    END-OF-SELECTION.
    *&  Include           ZMM_TRACKING_QUOTATION_T                         *
               T a b l e s   D e c l a r a t i o n s                     *
    TABLES: eban,
            ebkn,
            ekko,
            eket,
            lfa1,
            ekpo.
          Selection Screen Declaration
    SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-100.
    SELECT-OPTIONS: bednr  FOR eban-bednr,
                    ps_psp FOR ebkn-ps_psp_pnr,
                    kostl  FOR ebkn-kostl,
                    erdat  FOR ebkn-erdat.
    SELECTION-SCREEN END OF BLOCK b1.
               Type Pools  D e c l a r a t i o n s                        *
    TYPE-POOLS: slis.
               V a r i  a b l e s                                        *
    DATA : rt_fieldcat  TYPE slis_t_fieldcat_alv,
           i_layout     TYPE slis_layout_alv,
           i_event      TYPE slis_t_event,
           i_listheader TYPE slis_t_listheader,
           l_sort       TYPE slis_t_sortinfo_alv,
           wa_sort      TYPE slis_sortinfo_alv.
               I n t e r n a l  T a b l e s                               *
    DATA: BEGIN OF i_final_tab OCCURS 0,
          name1      LIKE lfa1-name1,
          banfn      LIKE eban-banfn,
          badat      LIKE eban-badat,
          bnfpo      LIKE eban-bnfpo,
          txz01      LIKE eban-txz01,
          menge      LIKE eban-menge,
          bednr      LIKE eban-bednr,
          frgdt      LIKE eban-frgdt,
          lfdat      LIKE eban-lfdat,
          ps_psp_pnr LIKE ebkn-ps_psp_pnr,
          bwbdt      LIKE ekko-bwbdt,
          aedat      LIKE ekko-aedat,
          lifnr      LIKE ekko-lifnr,
          ihran      LIKE ekko-ihran,
          ebeln      LIKE ekpo-ebeln,
          ebelp      LIKE ekpo-ebelp,
          plifz      LIKE ekpo-plifz,
          eindt      LIKE eket-eindt,
          END OF i_final_tab.
    DATA: BEGIN OF itab OCCURS 0,
          name1      LIKE lfa1-name1,
          banfn      LIKE eban-banfn,
          badat      LIKE eban-badat,
          bnfpo      LIKE eban-bnfpo,
          txz01      LIKE eban-txz01,
          menge(17),
          bednr      LIKE eban-bednr,
          frgdt      LIKE eban-frgdt,
          lfdat      LIKE eban-lfdat,
          ps_psp_pnr LIKE ebkn-ps_psp_pnr,
          bwbdt      LIKE ekko-bwbdt,
          aedat      LIKE ekko-aedat,
          lifnr      LIKE ekko-lifnr,
          ihran      LIKE ekko-ihran,
          ebeln      LIKE ekpo-ebeln,
          ebelp      LIKE ekpo-ebelp,
          plifz      LIKE ekpo-plifz,
          eindt      LIKE eket-eindt,
          END OF itab.
    *&  Include           ZMM_TRACKING_QUOTATION_F                         *
    **&      Form  FIELDCAT_INIT
          text
         -->P_GT_FIELDCAT[]  text
    FORM f_build_catalogue.
      DATA : ls_fieldcat TYPE slis_fieldcat_alv.
      CLEAR ls_fieldcat.
      ls_fieldcat-fieldname     = 'BANFN'.
      ls_fieldcat-tabname       = 'itab'.
      ls_fieldcat-seltext_m   = 'PR Number'.
    ls_fieldcat-ref_tabname   = 'EBAN'.
      ls_fieldcat-fix_column  = ''.
      ls_fieldcat-emphasize   = ''.
      APPEND ls_fieldcat TO rt_fieldcat.
    CLEAR ls_fieldcat.
    ls_fieldcat-tabname       = 'ITAB'.
    ls_fieldcat-fieldname     = 'BNFPO'.
    ls_fieldcat-ref_tabname   = 'EBAN'.
    APPEND ls_fieldcat TO rt_fieldcat.
    CLEAR ls_fieldcat.
    ls_fieldcat-tabname       = 'ITAB'.
    ls_fieldcat-fieldname     = 'BADAT'.
    ls_fieldcat-ref_tabname   = 'EBAN'.
    APPEND ls_fieldcat TO rt_fieldcat.
    CLEAR ls_fieldcat.
    ls_fieldcat-tabname       = 'ITAB'.
    ls_fieldcat-fieldname     = 'TXZ01'.
    ls_fieldcat-ref_tabname   = 'EBAN'.
    APPEND ls_fieldcat TO rt_fieldcat.
    CLEAR ls_fieldcat.
    ls_fieldcat-tabname       = 'ITAB'.
    ls_fieldcat-fieldname     = 'MENGE'.
    ls_fieldcat-ref_tabname   = 'ITAB'.
    ls_fieldcat-seltext_l     = 'Quantity'.
    APPEND ls_fieldcat TO rt_fieldcat.
    CLEAR ls_fieldcat.
    ls_fieldcat-tabname       = 'ITAB'.
    ls_fieldcat-fieldname     = 'PS_PSP_PNR'.
    ls_fieldcat-ref_tabname   = 'EBKN'.
    APPEND ls_fieldcat TO rt_fieldcat.
    CLEAR ls_fieldcat.
    ls_fieldcat-tabname       = 'ITAB'.
    ls_fieldcat-fieldname     = 'BEDNR'.
    ls_fieldcat-ref_tabname   = 'EBAN'.
    APPEND ls_fieldcat TO rt_fieldcat.
    CLEAR ls_fieldcat.
    ls_fieldcat-tabname       = 'ITAB'.
    ls_fieldcat-fieldname     = 'FRGDT'.
    ls_fieldcat-ref_tabname   = 'EBAN'.
    APPEND ls_fieldcat TO rt_fieldcat.
    CLEAR ls_fieldcat.
    ls_fieldcat-tabname       = 'ITAB'.
    ls_fieldcat-fieldname     = 'LFDAT'.
    ls_fieldcat-ref_tabname   = 'EBAN'.
    APPEND ls_fieldcat TO rt_fieldcat.
    CLEAR ls_fieldcat.
    ls_fieldcat-tabname       = 'ITAB'.
    ls_fieldcat-fieldname     = 'EBELN'.
    ls_fieldcat-ref_tabname   = 'EKPO'.
    APPEND ls_fieldcat TO rt_fieldcat.
    CLEAR ls_fieldcat.
    ls_fieldcat-tabname       = 'ITAB'.
    ls_fieldcat-fieldname     = 'EBELP'.
    ls_fieldcat-ref_tabname   = 'EKPO'.
    APPEND ls_fieldcat TO rt_fieldcat.
    CLEAR ls_fieldcat.
    ls_fieldcat-tabname       = 'ITAB'.
    ls_fieldcat-fieldname     = 'AEDAT'.
    ls_fieldcat-ref_tabname   = 'EKKO'.
    APPEND ls_fieldcat TO rt_fieldcat.
    CLEAR ls_fieldcat.
    ls_fieldcat-tabname       = 'ITAB'.
    ls_fieldcat-fieldname     = 'LIFNR'.
    ls_fieldcat-ref_tabname   = 'EKKO'.
    APPEND ls_fieldcat TO rt_fieldcat.
    CLEAR ls_fieldcat.
    ls_fieldcat-tabname       = 'ITAB'.
    ls_fieldcat-fieldname     = 'NAME1'.
    ls_fieldcat-ref_tabname   = 'LFA1'.
    APPEND ls_fieldcat TO rt_fieldcat.
    CLEAR ls_fieldcat.
    ls_fieldcat-tabname       = 'ITAB'.
    ls_fieldcat-fieldname     = 'IHRAN'.
    ls_fieldcat-ref_tabname   = 'EKKO'.
    APPEND ls_fieldcat TO rt_fieldcat.
    CLEAR ls_fieldcat.
    ls_fieldcat-tabname       = 'ITAB'.
    ls_fieldcat-fieldname     = 'EINDT'.
    ls_fieldcat-ref_tabname   = 'EKET'.
    APPEND ls_fieldcat TO rt_fieldcat.
    CLEAR ls_fieldcat.
    ls_fieldcat-tabname       = 'ITAB'.
    ls_fieldcat-fieldname     = 'PLIFZ'.
    ls_fieldcat-ref_tabname   = 'EKPO'.
    APPEND ls_fieldcat TO rt_fieldcat.
    ENDFORM.                    " FIELDCAT_INIT
    *&      Form  selection
          text
    -->  p1        text
    <--  p2        text
    FORM selection .
      SELECT
                lfa1~name1
                eban~banfn
                eban~badat
                eban~bnfpo
                eban~txz01
                eban~menge
                eban~bednr
                eban~frgdt
                eban~lfdat
                ebkn~ps_psp_pnr
                ekko~bwbdt
                ekko~aedat
                ekko~lifnr
                ekko~ihran
                ekpo~ebeln
                ekpo~ebelp
                ekpo~plifz
                eket~eindt
                                    FROM lfa1 INNER JOIN ekko ON ( lfa1lifnr = ekkolifnr )
                                              INNER JOIN ekpo ON ( ekkoebeln = ekpoebeln )
                                              INNER JOIN eket ON ( ekpoebeln = eketebeln
                                                                             AND
                                                                   ekpoebelp = eketebelp )
                                              INNER JOIN eban ON ( ebanbanfn =  eketbanfn
                                                                            AND
                                                                  ebanbnfpo =  eketbnfpo )
                                              INNER JOIN ebkn ON ( ebanbanfn =  ebknbanfn
                                                                                 AND
                                                                  ebanbnfpo =  ebknbnfpo )
                                    INTO TABLE i_final_tab WHERE eban~bednr      IN bednr  AND
                                                           ebkn~ps_psp_pnr IN ps_psp AND
                                                           ebkn~kostl      IN kostl  AND
                                                           ebkn~erdat      IN erdat AND
                                                           ekko~bstyp <> 'F'.
      LOOP AT i_final_tab.
        itab-name1      = i_final_tab-name1.
        itab-banfn      = i_final_tab-banfn.
        itab-badat      = i_final_tab-badat.
        itab-bnfpo      = i_final_tab-bnfpo.
        itab-txz01      = i_final_tab-txz01.
        itab-menge      = i_final_tab-menge.
        itab-bednr      = i_final_tab-bednr.
        itab-frgdt      = i_final_tab-frgdt.
        itab-lfdat      = i_final_tab-lfdat.
        itab-ps_psp_pnr = i_final_tab-ps_psp_pnr.
        itab-aedat      = i_final_tab-aedat.
        itab-lifnr      = i_final_tab-lifnr.
        itab-ihran      = i_final_tab-ihran.
        itab-ebeln      = i_final_tab-ebeln.
        itab-ebelp      = i_final_tab-ebelp.
        itab-plifz      = i_final_tab-plifz.
        itab-eindt      = i_final_tab-eindt.
        APPEND itab.
        CLEAR itab.
      ENDLOOP.
    ENDFORM.                    " selection
    *&      Form  f_event_build
          text
    -->  p1        text
    <--  p2        text
    FORM f_event_build .
      DATA wa_event TYPE slis_alv_event.
      CLEAR: wa_event,
             i_event.
    *read event top-of-page
      CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
        EXPORTING
          i_list_type = 0
        IMPORTING
          et_events   = i_event.
      IF sy-subrc <> 0.
      ENDIF.
    *Prepare event table
      READ TABLE i_event WITH KEY name = 'TOP_OF_PAGE' INTO wa_event.
      IF sy-subrc EQ 0.
        MOVE 'TOP_OF_PAGE' TO wa_event-form.
        APPEND wa_event TO i_event.
      ENDIF.
    ENDFORM.                    " f_event_build
    *&      Form  f_comment_build
          text
    -->  p1        text
    <--  p2        text
    FORM f_comment_build .
      DATA: wa_listheader TYPE slis_listheader.
      CLEAR wa_listheader.
      wa_listheader-typ = 'H'.
      wa_listheader-info = 'Tracking Of Quotation For Purchase Requisition'.
      APPEND wa_listheader TO i_listheader.
      CLEAR wa_listheader.
      wa_listheader-typ = 'S'.
      wa_listheader-info = 'SMS-DEMAG Pvt. Ltd.'.
      APPEND wa_listheader TO i_listheader.
      CLEAR wa_listheader.
      wa_listheader-typ = 'S'.
      wa_listheader-info = 'R1- Nehru Enclave'.
      APPEND wa_listheader TO i_listheader.
      CLEAR wa_listheader.
      wa_listheader-typ = 'S'.
      wa_listheader-info = 'New Delhi - '.
      APPEND wa_listheader TO i_listheader.
    ENDFORM.                    " f_comment_build
    *&      Form  f_build_layout
          text
    -->  p1        text
    <--  p2        text
    FORM f_build_layout .
      CLEAR i_layout.
      i_layout-colwidth_optimize = 'X'.
      i_layout-zebra = 'X'.
      i_layout-totals_text = 'Total'.
    ENDFORM.                    " f_build_layout
    *&      Form  f_list_display
          text
    -->  p1        text
    <--  p2        text
    FORM f_list_display .
    *sort itab by name1
                banfn
                badat
                bnfpo
                txz01
                menge
                bednr
                frgdt
                lfdat
                ps_psp_pnr
                bwbdt
                aedat
                lifnr
                ihran
                ebeln
                ebelp
                plifz
                eindt.
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
          i_callback_program = sy-repid
          is_layout          = i_layout
          it_fieldcat        = rt_fieldcat
          it_events          = i_event
          it_sort            = l_sort
        TABLES
          t_outtab           = itab.
      IF sy-subrc <> 0.
      ENDIF.
    ENDFORM.                    " f_list_display
    *&      Form  TOP_OF_PAGE
          text
    -->  p1        text
    <--  p2        text
    FORM top_of_page.
      CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
        EXPORTING
          it_list_commentary = i_listheader
          i_logo             = 'ENJOYSAP_LOGO'.
    ENDFORM.                    "TOP_OF_PAGE
    *&      Form  f_event_sort
          text
    -->  p1        text
    <--  p2        text
    FORM f_event_sort .
    wa_sort-spos = 1.
    wa_sort-up = 'X'.
    wa_sort-tabname = 'i_final_tab'.
    wa_sort-fieldname = 'BANFN'.
    wa_sort-subtot = ' '.
    APPEND wa_sort TO l_sort.
    CLEAR WA_SORT.
    wa_sort-spos = 5.
    wa_sort-up = 'X'.
    wa_sort-tabname = 'i_final_tab'.
    wa_sort-fieldname = 'MENGE'.
    wa_sort-subtot = ' '.
    APPEND wa_sort TO l_sort.
    *CLEAR WA_SORT.
    wa_sort-spos = 2.
    wa_sort-up = 'X'.
    wa_sort-tabname = 'i_final_tab'.
    wa_sort-fieldname = 'BNFPO'.
    wa_sort-subtot = ' '.
    APPEND wa_sort TO l_sort.
    *CLEAR WA_SORT.
    wa_sort-spos = 3.
    wa_sort-up = 'X'.
    wa_sort-tabname = 'i_final_tab'.
    wa_sort-fieldname = 'BADAT'.
    wa_sort-subtot = ' '.
    APPEND wa_sort TO l_sort.
    *CLEAR WA_SORT.
    wa_sort-spos = 4.
    wa_sort-up = 'X'.
    wa_sort-tabname = 'i_final_tab'.
    wa_sort-fieldname = 'TXZ01'.
    wa_sort-subtot = ' '.
    APPEND wa_sort TO l_sort.
    *CLEAR WA_SORT.
    wa_sort-spos = 7.
    wa_sort-up = 'X'.
    wa_sort-tabname = 'i_final_tab'.
    wa_sort-fieldname = 'BEDNR'.
    wa_sort-subtot = ' '.
    APPEND wa_sort TO l_sort.
    *CLEAR WA_SORT.
    wa_sort-spos = 6.
    wa_sort-up = 'X'.
    wa_sort-tabname = 'i_final_tab'.
    wa_sort-fieldname = 'PS_PSP_PNR'.
    wa_sort-subtot = ' '.
    APPEND wa_sort TO l_sort.
    *CLEAR WA_SORT.
    wa_sort-spos = 8.
    wa_sort-up = 'X'.
    wa_sort-tabname = 'i_final_tab'.
    wa_sort-fieldname = 'FRGDT'.
    wa_sort-subtot = ' '.
    APPEND wa_sort TO l_sort.
    *CLEAR WA_SORT.
    wa_sort-spos = 9.
    wa_sort-up = 'X'.
    wa_sort-tabname = 'i_final_tab'.
    wa_sort-fieldname = 'LFDAT'.
    wa_sort-subtot = ' '.
    APPEND wa_sort TO l_sort.
    *CLEAR WA_SORT.
    CLEAR wa_sort.
    wa_sort-up = 'X'.
    wa_sort-tabname = 'i_final_tab'.
    wa_sort-spos = 10.
    wa_sort-fieldname = 'EBELN'.
    wa_sort-subtot = 'X'.
    APPEND wa_sort TO l_sort.
    *CLEAR WA_SORT.
    CLEAR wa_sort.
    wa_sort-up = 'X'.
    wa_sort-tabname = 'i_final_tab'.
    wa_sort-spos = 11.
    wa_sort-fieldname = 'EBELP'.
    wa_sort-subtot = ' '.
    APPEND wa_sort TO l_sort.
    *CLEAR WA_SORT.
    CLEAR wa_sort.
    wa_sort-up = 'X'.
    wa_sort-tabname = 'i_final_tab'.
    wa_sort-spos = 12.
    wa_sort-fieldname = 'AEDAT'.
    wa_sort-subtot = ' '.
    APPEND wa_sort TO l_sort.
    *CLEAR WA_SORT.
    CLEAR wa_sort.
    wa_sort-up = 'X'.
    wa_sort-tabname = 'i_final_tab'.
    wa_sort-spos = 13.
    wa_sort-fieldname = 'LIFNR'.
    wa_sort-subtot = ' '.
    APPEND wa_sort TO l_sort.
    *CLEAR WA_SORT.
    CLEAR wa_sort.
    wa_sort-up = 'X'.
    wa_sort-tabname = 'i_final_tab'.
    wa_sort-spos = 14.
    wa_sort-fieldname = 'NAME1'.
    wa_sort-subtot = ' '.
    APPEND wa_sort TO l_sort.
    *CLEAR WA_SORT.
    CLEAR wa_sort.
    wa_sort-up = 'X'.
    wa_sort-tabname = 'i_final_tab'.
    wa_sort-spos = 15.
    wa_sort-fieldname = 'IHRAN'.
    wa_sort-subtot = ' '.
    APPEND wa_sort TO l_sort.
    *CLEAR WA_SORT.
    CLEAR wa_sort.
    wa_sort-up = 'X'.
    wa_sort-tabname = 'i_final_tab'.
    wa_sort-spos = 16.
    wa_sort-fieldname = 'EINDT'.
    wa_sort-subtot = ' '.
    APPEND wa_sort TO l_sort.
    *CLEAR WA_SORT.
    *sort l_sort by spos.
      CLEAR wa_sort.
      wa_sort-spos = 1.
      wa_sort-fieldname = 'BANFN'.
      wa_sort-down = 'X'.
    wa_sort-tabname = 'itab'.
    wa_sort-subtot = ' '.
      APPEND wa_sort TO l_sort.
    wa_sort-spos = 5.
    wa_sort-down = 'X'.
    wa_sort-tabname = 'itab'.
    wa_sort-fieldname = 'MENGE'.
    wa_sort-subtot = ' '.
    APPEND wa_sort TO l_sort.
    *CLEAR WA_SORT.
    CLEAR wa_sort.
    wa_sort-spos = 2.
    wa_sort-fieldname = 'BNFPO'.
    wa_sort-down = 'X'.
    wa_sort-tabname = 'itab'.
    wa_sort-subtot = ' '.
    APPEND wa_sort TO l_sort.
    wa_sort-spos = 3.
    wa_sort-down = 'X'.
    wa_sort-tabname = 'itab'.
    wa_sort-fieldname = 'BADAT'.
    wa_sort-subtot = ' '.
    APPEND wa_sort TO l_sort.
    *CLEAR WA_SORT.
    wa_sort-spos = 4.
    wa_sort-down = 'X'.
    wa_sort-tabname = 'itab'.
    wa_sort-fieldname = 'TXZ01'.
    wa_sort-subtot = ' '.
    APPEND wa_sort TO l_sort.
    *CLEAR WA_SORT.
    wa_sort-spos = 7.
    wa_sort-down = 'X'.
    wa_sort-tabname = 'itab'.
    wa_sort-fieldname = 'BEDNR'.
    wa_sort-subtot = ' '.
    APPEND wa_sort TO l_sort.
    *CLEAR WA_SORT.
    wa_sort-spos = 6.
    wa_sort-down = 'X'.
    wa_sort-tabname = 'itab'.
    wa_sort-fieldname = 'PS_PSP_PNR'.
    wa_sort-subtot = ' '.
    APPEND wa_sort TO l_sort.
    *CLEAR WA_SORT.
    wa_sort-spos = 8.
    wa_sort-down = 'X'.
    wa_sort-tabname = 'itab'.
    wa_sort-fieldname = 'FRGDT'.
    wa_sort-subtot = ' '.
    APPEND wa_sort TO l_sort.
    *CLEAR WA_SORT.
    wa_sort-spos = 9.
    wa_sort-down = 'X'.
    wa_sort-tabname = 'itab'.
    wa_sort-fieldname = 'LFDAT'.
    wa_sort-subtot = ' '.
    APPEND wa_sort TO l_sort.
    *CLEAR WA_SORT.
    CLEAR wa_sort.
    wa_sort-down = 'X'.
    wa_sort-tabname = 'itab'.
    wa_sort-spos = 10.
    wa_sort-fieldname = 'EBELN'.
    wa_sort-subtot = 'X'.
    APPEND wa_sort TO l_sort.
    *CLEAR WA_SORT.
    CLEAR wa_sort.
    wa_sort-down = 'X'.
    wa_sort-tabname = 'itab'.
    wa_sort-spos = 11.
    wa_sort-fieldname = 'EBELP'.
    wa_sort-subtot = ' '.
    APPEND wa_sort TO l_sort.
    *CLEAR WA_SORT.
    CLEAR wa_sort.
    wa_sort-down = 'X'.
    wa_sort-tabname = 'itab'.
    wa_sort-spos = 12.
    wa_sort-fieldname = 'AEDAT'.
    wa_sort-subtot = ' '.
    APPEND wa_sort TO l_sort.
    *CLEAR WA_SORT.
    CLEAR wa_sort.
    wa_sort-down = 'X'.
    wa_sort-tabname = 'itab'.
    wa_sort-spos = 13.
    wa_sort-fieldname = 'LIFNR'.
    wa_sort-subtot = ' '.
    APPEND wa_sort TO l_sort.
    *CLEAR WA_SORT.
    CLEAR wa_sort.
    wa_sort-down = 'X'.
    wa_sort-tabname = 'itab'.
    wa_sort-spos = 14.
    wa_sort-fieldname = 'NAME1'.
    wa_sort-subtot = ' '.
    APPEND wa_sort TO l_sort.
    *CLEAR WA_SORT.
    CLEAR wa_sort.
    wa_sort-down = 'X'.
    wa_sort-tabname = 'itab'.
    wa_sort-spos = 15.
    wa_sort-fieldname = 'IHRAN'.
    wa_sort-subtot = ' '.
    APPEND wa_sort TO l_sort.
    *CLEAR WA_SORT.
    CLEAR wa_sort.
    wa_sort-spos = 16.
    wa_sort-fieldname = 'EINDT'.
    wa_sort-tabname = 'itab'.
    wa_sort-down = 'X'.
    wa_sort-subtot = ' '.
    APPEND wa_sort TO l_sort.
    *CLEAR WA_SORT.
    *sort l_sort by spos.
    ENDFORM.                    " f_event_sort
    *&      Form  f_validate_sel_screen
          text
    -->  p1        text
    <--  p2        text
    FORM f_validate_sel_screen .
    *Tracking number
      SELECT SINGLE * FROM eban WHERE bednr IN bednr.
      IF sy-subrc NE 0.
        MESSAGE e013.
      ENDIF.
    *Wbs Element
      SELECT SINGLE * FROM ebkn WHERE ps_psp_pnr IN ps_psp.
      IF sy-subrc NE 0.
        MESSAGE e014.
      ENDIF.
    *Cost center
      SELECT SINGLE * FROM ebkn WHERE kostl IN kostl.
      IF sy-subrc NE 0.
        MESSAGE e015.
      ENDIF.
    *Date
      SELECT SINGLE * FROM ebkn WHERE erdat IN erdat.
      IF sy-subrc NE 0.
        MESSAGE e012.
      ENDIF.
    ENDFORM.                    " f_validate_sel_screen

    Hey Ravi,
    As you said it is urgent to deliver the report, i will suggest you temporary solution while i debug the program.
    In the FM "REUSE_ALV_GRID_DISPLAY", use layout to generate your sorted report for now as shown following:
    <b>DATA:   G_VARIANT LIKE DISVARIANT.</b>
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
      EXPORTING
         I_CALLBACK_PROGRAM = SY-REPID
         IS_LAYOUT = I_LAYOUT
         IT_FIELDCAT = RT_FIELDCAT
         IT_EVENTS = I_EVENT
         IT_SORT = L_SORT
         <b>is_variant = g_variant</b>
      TABLES
         T_OUTTAB = ITAB.
      IF SY-SUBRC <> 0.
      ENDIF.
    Where g_variant is your custom layout which you will make as default for output.
    Hope this helps and let me know if you need more details.
    In the mean time, i will look in to the program.
    Regards,
    Vicky
    PS: Award points if helpful

  • PDF Output Problem

    I have a servlet that takes a file from the server, reads its bytes with the FileInputStream, and writes them to the ServletOutputStream. The types we allow are pdf, tif, doc, and xls. The only problem I am coming across is some PDF files won't come up with the browser showing a 'File is damaged and could not be repaired' error dialog. The pdf itself seems fine. We can open it in Adobe Reader, and drag and drop it into the browser. It only seems to occur when running it through this servlet and only some PDFs, not all. I pasted relevant code below. It seems pretty basic to me.
    Thanks,
    Karl
    out = response.getOutputStream();
    file = new File(ApplicationData.getVar("DocumentPath")+attachedDoc.getPath());
    response.setContentType(mimetype);
    response.setHeader("Content-Disposition","inline");
    // Get input stream for reading raw bytes
    FileInputStream in = new FileInputStream(file);
    byte[] bytes = new byte[10000];
    // Read in file and at the same time write the stream to the resposne.
    while((in.read(bytes)) != -1) {
         out.write(bytes);
    in.close();
    out.flush();
    out.close();

    Guess they are opting for something close to 8K
    instead. Interesting.If by "they" you mean the reference in reply 7 above, the "they" is me. And my 8k value isn't very scientific. It's more like tradition from when disk blocks were usually 2k-8k. When accessing a disk, you may get improved performance when using disk block sizes or multiples thereof. For really kick a$$ performance (e.g. implementing a "cp" command), query the file system for its block size and use that unless the size is completely silly (statfs(2) system call in Unix gets the underlying block size).
    When writing to a socket, the buffer size matters less. The Nagle algorithm will collect several writes to bigger packets, and the underlying network will require splitting up bigger writes.
    Unless you are streaming lots of data over a gigabit net, your CPU will be able to keep the network card and the wire saturated at pretty much any buffer size. Maybe at less than, say, 100 bytes the CPU load will go measurably up. A couple of kB should be fine.

  • Problem while alv grid display exporting to excel sheet

    Hi,
      I have done an ALV report using reuse_alv_grid _display , out put is fine , but when i click on excel view icon i could only see an excel sheet without any data ., but when i use export to local file and choose spread sheet its giving the data in excel, but the user wants to click only the excel view icon.
    Best Regards

    Hi,
    Check this link
    [Problem with Excel button in ALV Grid...URGENT;
    Regards,
    Sathish Reddy.

Maybe you are looking for

  • HT1415 Movie rental question

    I rented "Now You See Me" last night at 8:30, and I want to watch it again before my time expires but I am not given that option. The only option I see is to rent it again. Shouldn't I be able to watch it as many times I want within the 24 hours?

  • How to update 2 datagrids in 2 different app at the same time?

    I'm very new to flex/flash builder and my question is: first I have to explain how the applications works. The first applications have a form for a customer to fill and datagrid to show the results.The data is send using PHP to a database in the serv

  • What's the max RAM for HP Elite 8200 minitower?

    Hi, I'm looking at getting an HP Compaq 8200 Elite CMT PC (part number LE245PA) and have a question about the maximum RAM it will take. The PC is the one at http://h10010.www1.hp.com/wwpc/au/en/sm/WF05a/12454-12454-64287-3328898-3328898-5037949.html?

  • REBATE  SETTLEMENT ERROR. " SADHU KISHORE , AYUB .

    Hi all, well have created material rebate in vbo1 & the rebate is for 50 .In vf02 in accounting doc the amounts are displayed as : ERU rebate accurals : 50, & reverse for other :50 . can u pl let me know wts the amount 50 ,which says reverse for othe

  • Connecting locked ipod to new computer

    I have a 2nd generation ipod touch that is locked and the screen say connect to itunes. When I connect to my mac, itunes doesn't recognize the ipod because this computer is not the original computer that it was synced to. How can I reset the ipod and