Dump in REUSE_ALV_GRID_DISPLAY

We have a Zprogram, and there is a field plant in the selection screen.
When more than one plant is selected the list shows ok but when we hit the button for downloading it to an excel, it dumps. On the other hand if only one plant is selected, the program runs ok and download the list on the PC without problems.
Here's the dump:
"MOVE_TO_LIT_NOTALLOWED_NODATA"
"SAPLKKBL " or "LKKBLF98 "     
"SUM_UNIT_OUT_CHECK"           
The error is clearly in the subtotals, if we take out all the do_sum = 'X' in the fieldcatalog, it runs ok.
I've looked for some SAP notes but neither of them seems to be suitable, one is for release 5.0 and the other one is for the banking component, which we don't have.
By the way, we are running release 4.6C
If anyone has any idea, pleas let me know.
Thanks in advance.

Hi Rich,
This is my part of code that generating the same short dump as Ling mentioned:
CLASS LCL_EVENT_RECEIVER DEFINITION DEFERRED.
*-->general includes
INCLUDE: <ICON>.
*-->group of variable for list display
TABLES: T001, "Company codes
        D020S. "System table D020S (screen sources)
*-->constants declarations
CONSTANTS: CN_CX(1) TYPE C VALUE 'X', "standard indicator
           CN_TCONTAINER01 TYPE SCRFNAME VALUE 'CONT01', "screen obj
           CN_DYNNR_0100 LIKE SY-DYNNR VALUE '0100', "list screen
           CN_STATUS_0100 LIKE RSMPE-STATUS VALUE 'MAIN0100', "menu
           CN_TITLE_0100 LIKE RSMPE-CP_TITCODE VALUE 'MAIN0100', "Title
           CN_CLAYOUT_A(1) TYPE C VALUE 'A', "all layout
           CN_CLAYOUT_X(1) TYPE C VALUE 'X', "only global layout
           CN_CLAYOUT_N(1) TYPE C VALUE 'N', "no layout
           CN_CLAYOUT_U(1) TYPE C VALUE 'U', "only user layout
***report list printing
           CN_ZTOTPAG(5) TYPE C VALUE '*****',
***system command, menu code
           CN_ZEXIT LIKE SY-UCOMM VALUE 'EXIT', "exit
           CN_ZBACK LIKE SY-UCOMM VALUE 'BACK', "back
           CN_ZSAVE LIKE SY-UCOMM VALUE 'SAVE', "save
           CN_ZNLES LIKE SY-UCOMM VALUE 'NLES', "refresh
           CN_ZEXPD LIKE SY-UCOMM VALUE 'EXPD', "expand
           CN_ZCOLP LIKE SY-UCOMM VALUE 'COLP', "collapse
***menu button (for standard toolbar in ALV grid)
           CN_ZBUTN_TYPE_0 TYPE TB_BTYPE VALUE '0',"normal button
           CN_ZBUTN_TYPE_1 TYPE TB_BTYPE VALUE '1',"menu and def. but
           CN_ZBUTN_TYPE_2 TYPE TB_BTYPE VALUE '2',"menu
           CN_ZBUTN_TYPE_3 TYPE TB_BTYPE VALUE '3',"seperator
           CN_ZBUTN_TYPE_4 TYPE TB_BTYPE VALUE '4',"radio button
           CN_ZBUTN_TYPE_5 TYPE TB_BTYPE VALUE '5',"checkbox
           CN_ZBUTN_TYPE_6 TYPE TB_BTYPE VALUE '6'."menu entry
*-->data declaration for ALV object
DATA: OK_CODE LIKE SY-UCOMM,
      OB_CUSTOM_CONTAINER TYPE REF TO CL_GUI_CUSTOM_CONTAINER,
      OB_GRID01 TYPE REF TO CL_GUI_ALV_GRID,
      OB_EVENT_RECEIVER TYPE REF TO LCL_EVENT_RECEIVER,
      TG_CDEFLT(1) TYPE C,
      TS_ZVARIANT LIKE DISVARIANT,
      TS_ZXVARIANT LIKE DISVARIANT,
      TS_TPRINT TYPE LVC_S_PRNT,
      TS_TLAYOUT TYPE LVC_S_LAYO,
      TS_TOOLBAR TYPE STB_BUTTON,
      TG_CVARIANT_SAVE(1) TYPE C,
      TG_ZVARIANT LIKE DISVARIANT-VARIANT,
      TG_ZREPID LIKE SY-REPID,
      TA_TFIELDCAT_LVC TYPE LVC_T_FCAT WITH HEADER LINE,
      TA_TSPGROUP_LVC TYPE LVC_T_SGRP WITH HEADER LINE,
      TA_TUIFUNCTIONS TYPE UI_FUNCTIONS WITH HEADER LINE,
      TA_ZDYNPREAD LIKE DYNPREAD OCCURS 0 WITH HEADER LINE,
      TG_TUSER_SPECIFIC TYPE CHAR1,
      TA_TSORT_LVC TYPE LVC_T_SORT WITH HEADER LINE,
      TA_TFILT_LVC TYPE LVC_T_FILT WITH HEADER LINE,
      TG_ZTITLE LIKE SY-TITLE.
*-->report header printing
DATA: TG_CTOTP(5) TYPE C,
      TG_ILINET TYPE I. "number of text line to be printed
*-->report header list value, max 132 character per line
DATA: BEGIN OF TA_LISTKEY OCCURS 0,
       TEXT TYPE ITEX132, "key value, ie. Sales org
      END OF TA_LISTKEY.
START-OF-SELECTION.
  CALL SCREEN 9000.
MODULE status_0100 OUTPUT.
  SET PF-STATUS cn_status_0100.
  SET TITLEBAR  cn_title_0100.
  IF ob_custom_container IS INITIAL.
    IF cl_gui_alv_grid=>offline( ) IS INITIAL.
      CREATE OBJECT ob_custom_container
             EXPORTING
               container_name = cn_tcontainer01
             EXCEPTIONS
              cntl_error = 1
              cntl_system_error = 2
              create_error = 3
              lifetime_error = 4
              lifetime_dynpro_dynpro_link = 5.
      IF sy-subrc NE 0.
        CALL FUNCTION 'POPUP_TO_INFORM'
             EXPORTING
                  titel = tg_zrepid
                  txt2  = sy-subrc
                  txt1  = text-x09. "Control can not be...
      ENDIF.
    ENDIF.
    CREATE OBJECT ob_grid01
           EXPORTING i_parent = ob_custom_container.
Link used print events and event handler methods.
comment it if you don't want certain description printed
in the list
    CREATE OBJECT ob_event_receiver.
    SET HANDLER ob_event_receiver->handle_top_of_list FOR ob_grid01.
    SET HANDLER ob_event_receiver->handle_top_of_page FOR ob_grid01.
    SET HANDLER ob_event_receiver->handle_end_of_list FOR ob_grid01.
    SET HANDLER ob_event_receiver->handle_end_of_page FOR ob_grid01.
    SET HANDLER ob_event_receiver->handle_subtotal_text FOR ob_grid01.
    CALL METHOD ob_event_receiver->set_list_value
                                     EXPORTING i_preview = space
                                               i_bukrs = t001-bukrs
                                               i_title0 = sy-title
                                               i_title1 = space
                                               i_title2 = space
                                               t_listkey = ta_listkey[].
*-->call the object method to display the list
    CALL METHOD ob_grid01->set_table_for_first_display
         EXPORTING i_structure_name = cn_itab_tabl
                   i_save           = tg_cvariant_save
                   is_variant       = ts_zvariant
                   is_print         = ts_tprint
                   is_layout        = ts_tlayout
                   it_special_groups = ta_tspgroup_lvc[]
                   it_toolbar_excluding = ta_tuifunctions[]
                   i_default        = tg_cdeflt
         CHANGING  it_fieldcatalog  = ta_tfieldcat_lvc[]
                   it_sort          = ta_tsort_lvc[]
                   it_outtab        = ta_data[]
                   it_filter        = ta_tfilt_lvc[].
  ENDIF.
Controls are not integrated into the TAB-Order
Call "set_focus" if you want to make sure that 'the cursor'
is active in your control.
  CALL METHOD cl_gui_control=>set_focus
                EXPORTING control = ob_grid01.
ENDMODULE.
Please comment.
Thanks in advance.

Similar Messages

  • ABAP Dump with using FM 'REUSE_ALV_GRID_DISPLAY'

    Hi,
    I copied a Standard report program(RCOPCA02) to Z-Program for adding two new fields in the report output. I added those two new fields in the field catalog also. Actually the program is using
    FM 'REUSE_ALV_GRID_DISPLAY' , when i execute the program it is dumping.
    when i use the same program with FM 'REUSE_ALV_LIST_DISPLAY' with same field catalog the fields are displaying in the layout and report but the values are not populating in the report.
    Where is the problem i am not understanding.
    Thanks,
    fractal

    I checked in Debug mode, the values are coming in Internal Table correctly...
    Here is the Dump.
    Runtime Errors              MESSAGE_TYPE_X       
    What happened?                                                                               
    The current application program detected a situation which really      
    should not occur. Therefore, a termination with a short dump was       
    triggered on purpose by the key word MESSAGE (type X).                 
    Error analysis                                      
    Short text of error message:                                                                               
    Technical information about the message:       
    Message classe...... "0K"                      
    Number.............. 000                       
    Variable 1.......... " "                       
    Variable 2.......... " "                       
    Variable 3.......... " "                       
    Variable 4.......... " "                       
    Variable 3.......... " "                       
    Variable 4.......... " "                       
    "MESSAGE_TYPE_X" C                                                         
    "SAPLSLVC " or "LSLVCF01 "                                                 
    "LINE_OUT_NEW_2"                                                           
    If you cannot solve the problem yourself, please send the                  
    following documents to SAP:                                                                               
    1. A hard copy print describing the problem.                               
       To obtain this, select the "Print" function on the current screen.      
    2. A suitable hardcopy prinout of the system log.                          
       To obtain this, call the system log with Transaction SM21               
       and select the "Print" function to print out the relevant               
       part.                                                                               
    3. If the programs are your own programs or modified SAP programs,         
       supply the source code.                                                 
       To do this, you can either use the "PRINT" command in the editor or     
       print the programs using the report RSINCL00.                                                                               
    4. Details regarding the conditions under which the error occurred         
       or which actions and input led to the error.                            
    Information on where termination occurred                                                                               
    The termination occurred in the ABAP program "SAPLSLVC " in "LINE_OUT_NEW_2".              
    The main program was "ZRCOPCA02 ".                                                                               
    The termination occurred in line 924 of the source code of the (Include)                   
    program "LSLVCF01 "                                                                       
    of the source code of program "LSLVCF01 " (when calling the editor 9240).                  
    Source code extract                                                                               
    008940                   gs_roid-row_id = rs_row-index * -1.                                    
    008950                 endif.                                                                   
    008960                 gs_roid-sub_row_id = rs_row-rowtype+7(10).                               
    008970                 gs_poid-row_id = gs_roid-row_id.                                         
    008980                 gs_poid-sub_row_id = gs_roid-sub_row_id.                                 
    008990                 gs_poid-rowtype    = rs_row-rowtype.                                     
    009000                 gs_poid-index      = rs_row-index.                                       
    009010                 insert gs_poid into table rt_poid.                                       
    009020               endif.                                                                     
    009030               append gs_roid to rt_roid.                                                 
    009040                                                                                          
    009050               loop at rt_fieldcat assigning <ls_fieldcat> where tech ne 'X' and          
    009060                                                                 no_out ne 'X'.           
    009070                                                                                          
    009080                 if gflg_invisible = 'X'.                                                 
    009090                   if <ls_fieldcat>-do_sum is initial.                                    
    009100                     clear gflg_invisible.                                                
    009110                     continue.                                                            
    009120                   else.                                                                  
    009130                     clear g_col_counter.                                              
    009140                     clear gflg_invisible.                                             
    009150                   endif.                                                              
    009160                 endif.                                                                
    009170                                                                                       
    009180                 clear gs_lvc_data.                                                    
    009190                 clear g_style.                                                        
    009200                                                                                       
    009210                 assign component                                                      
    009220                        <ls_fieldcat>-fieldname of structure rt_data to <g_field>.     
    009230                 if sy-subrc ne 0.                                                     
    >                   message x000(0k).                                                   
    009250                 endif.                                                                
    009260                                                                                       
    009270                 g_col_counter = g_col_counter + 1.                                    
    009280                                                                                       
    009290                 gs_lvc_data-row_pos = r_row_counter.                                  
    009300                 gs_lvc_data-col_pos = g_col_counter.                                  
    009310                 gs_lvc_data-row_id  = gs_roid-row_id.                                 
    009320                 gs_lvc_data-sub_row_id = gs_roid-sub_row_id.                          
    009330                                                                                       
    009340             *   Endtotal and average                                                  
    009350                 if rs_row-rowtype(1) ca 'T' and <ls_fieldcat>-do_sum = 'C'.           
    009360             *     save the actual grouplevel information                              
    009370                   gs_grouplevels = rs_grouplevels.                                    
    009380                   clear g_lines.                                                      
    009390                                                                                       
    009400             *     get number of lines of the collect table                            
    009410                   describe table rt_data lines g_lines.                               
    009420             *     if there is only one line or the field has no references so         
    009430             *     that only the first line has to be considered      
    SY field contents.....................           SY field contents........     
    SY-SUBRC           4                                  SY-INDEX           1                    
    SY-TABIX           95                                 SY-DBCNT           0                    
    SY-FDPOS           0                                  SY-LSIND           0                    
    SY-PAGNO           0                                  SY-LINNO           1                    
    SY-COLNO           1                                  SY-PFKEY           STANDARD_GRID        
    SY-UCOMM           DTC_CONT                                                         
    SY-TITLE           Profit Center: Actual Line Items                            
    SY-MSGTY           X                                  SY-MSGID           0K                   
    SY-MSGNO           000                                SY-MSGV1                                
    SY-MSGV2                                              SY-MSGV3                                
    SY-MSGV4                                                                               
    No.... Type........ Name..........................                  
           Program                                                      
           Include                                  Line                
           Class                                                        
        14           FORM                   LINE_OUT_NEW_2                             
                SAPLSLVC                                                     
                LSLVCF01                                             924               
        13           FORM                   TOTAL_OUT_NEW                              
                SAPLSLVC                                                     
                LSLVCF01                                            1297               
        12           FORM                   DATA_TABLE_PREPARE                         
                SAPLSLVC                                                     
                LSLVCF36                                             833               
        11           FORM                   LVC_TABLE_FOR_DISPLAY_PREPARE              
                SAPLSLVC                                                     
                LSLVCF36                                             259               
        10           FUNCTION               LVC_TABLE_FOR_DISPLAY_PREPARE              
                SAPLSLVC                                                     
                LSLVCU35                                             106               
         9           METHOD                 SOFT_REFRESH_TABLE_DISPLAY                 
                CL_GUI_ALV_GRID===============CP                             
                CL_GUI_ALV_GRID===============CM01P                  240               
                CL_GUI_ALV_GRID                                              
         8           METHOD                 REFRESH_TABLE_DISPLAY                      
                CL_GUI_ALV_GRID===============CP                             
                CL_GUI_ALV_GRID===============CM00T                  125               
                CL_GUI_ALV_GRID                                              
         7           METHOD                 MAINTAIN_VARIANT                           
                CL_GUI_ALV_GRID===============CP                             
            CL_GUI_ALV_GRID===============CP                              
            CL_GUI_ALV_GRID===============CM00P                  313                
            CL_GUI_ALV_GRID                                               
    6           METHOD                 EXECUTE_FCODE                               
            CL_GUI_ALV_GRID===============CP                              
            CL_GUI_ALV_GRID===============CM007                  582                
            CL_GUI_ALV_GRID                                               
    5           METHOD                 SET_FUNCTION_CODE                           
            CL_GUI_ALV_GRID===============CP                              
            CL_GUI_ALV_GRID===============CM01E                   53                
            CL_GUI_ALV_GRID                                               
    4           FORM                   PAI                                         
            SAPLSLVC_FULLSCREEN                                           
            LSLVC_FULLSCREENF01                                 1776                
    3           MODULE (PAI)           PAI                                         
            SAPLSLVC_FULLSCREEN                                           
            LSLVC_FULLSCREENI01                                    4                
    2           FUNCTION               REUSE_ALV_GRID_DISPLAY                      
            SAPLSLVC_FULLSCREEN                                           
            LSLVC_FULLSCREENU01                                   91                
    1           EVENT                  START-OF-SELECTION                          
            ZRCOPCA02                                                     
            ZRCOPCA02                                            928

  • Dump :GETWA_NOT_ASSIGNED, while using  fm REUSE_ALV_GRID_DISPLAY

    Hi Experts,
    In the report I am using LDB pnp and outputting results with ALV,
    I am using the FM REUSE_ALV_GRID_DISPLAY,
    And I am getting the dump GETWA_NOT_ASSIGNED.
    The dump I am getting when the FM is executed.
    Thanks in Advance.
    Regards,
    IFF

    Hi,
    i faced the same problem some days ago.
    jst cleck your fieldcat.
    check fields names passed to fieldcat and should be in '  ' and in capital.
    This shd solve your problem
    Thanks & regards

  • Dump GETWA_NOT_ASSIGNED with REUSE_ALV_GRID_DISPLAY

    Hi All,
    Today I observed that REUSE_ALV_GRID_DISPLAY gives dump GETWA_NOT_ASSIGNED if we pass a blank table for output. These days I am working with ECC6. Earlier when I use to work with ECC5 such thing never happened and ALV get displayed without any row.
    Does anyone know is that correct that in ECC6 blank table in REUSE_ALV_GRID_DISPLAY gives dump. If so, any reason why in ECC6 and not in ECC5?
    Regards,
    Bhaskar

    Hi Bhaskar Tripathi ,
    I have an example that works in ECC 6 if you want you can compare it with your code.
    types: slis_formname(30) type c.
    data: i_repid type sy-repid,
          I_CALLBACK_PF_STATUS_SET type slis_formname,
          I_CALLBACK_USER_COMMAND type slis_formname,
          I_CALLBACK_TOP_OF_PAGE type slis_formname,
          lt_fieldcat  TYPE slis_t_fieldcat_alv WITH HEADER LINE,
          lt_sort      TYPE  slis_sortinfo_alv OCCURS 1,
          gt_events    TYPE  slis_t_event WITH HEADER LINE,
          lt_out "your table with information",
          ls_layout   TYPE  slis_layout_alv.
      ls_layout-no_input          = 'X'.
      ls_layout-colwidth_optimize = 'X'.
      ls_layout-totals_text       = 'Totals'(201).
      ls_layout-info_fieldname =      'LINE_COLOR'.
    ls_fieldcat-fieldname   = 'MANDT'.
    ls_fieldcat-seltext_m   = 'Mandante'.
    ls_fieldcat-col_pos     = 0.
    ls_fieldcatj-outputlen   = 10.
    ls_fieldcat-emphasize   = 'X'.
      APPEND ls_fieldcat TO lt_fieldcat.
      CLEAR  ls_fieldcat.
    ls_fieldcat-fieldname    = 'PSPID'.
    ls_fieldcat-seltext_m    = 'Def. de Proyecto'.
    ls_fieldcat-col_pos     = 1.
      APPEND ls_fieldcat TO lt_fieldcat.
      CLEAR  ls_fieldcat.
    ls_fieldcat-fieldname    = 'POST1'.
    ls_fieldcat-seltext_m    = 'Descrip. breve'.
    ls_fieldcat-col_pos      = 2.
      APPEND ls_fieldcat TO lt_fieldcat.
      CLEAR  ls_fieldcat.
    ls_fieldcat-fieldname  = 'OBJNR'.
    ls_fieldcat-seltext_m    = 'Número de objeto'.
    ls_fieldcat-col_pos      = 3.
      APPEND ls_fieldcat TO lt_fieldcat.
      CLEAR  ls_fieldcat.
    **Event
    DATA: ls_event  TYPE  slis_alv_event.
      CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
        EXPORTING
          i_list_type = 0
        IMPORTING
          et_events   = gt_events[].
    *                  EXCEPTIONS
    *                    LIST_TYPE_WRONG       = 1
    *                    OTHERS                = 2
      READ TABLE gt_events WITH KEY name =  slis_ev_end_of_list
      INTO ls_event.
      IF sy-subrc = 0.
        MOVE 'END_OF_PAGE' TO ls_event-form.
        APPEND ls_event TO gt_events.
      ENDIF.
      READ TABLE gt_events WITH KEY name =  slis_ev_end_of_list
      INTO ls_event.
      IF sy-subrc = 0.
        MOVE 'END_OF_LIST' TO ls_event-form.
        APPEND ls_event TO gt_events.
      ENDIF.
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
       EXPORTING
         i_callback_program                = i_repid
         i_callback_pf_status_set          = i_callback_pf_status_set
         i_callback_user_command           = i_callback_user_command
         i_grid_title                      = i_title
         is_layout                         = lt_layout
         it_fieldcat                       = lt_fieldcat
         it_sort                           = lt_sort
    *    IS_VARIANT                        =
         it_events                         = lt_events
       TABLES
         t_outtab                          = lt_out
       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.
    Best regards.

  • Getting dump when using do_sum in alv field cat in the output of the report

    Dear Freinds,
                 Iam getting the alv report when i click on the segma field (Sum) on my salary
    field iam getting dump. and also if i try to print my alv output iam getting dump , only
    happening to my custom report.
    i have used the following code pleae correct me .
    This perform is used for Layout settings
      perform st_layout_build  using gs_layout.
    form st_layout_build  using  st_ls_layout type slis_layout_alv.
       st_ls_layout-no_input          = 'X'.
      st_ls_layout-colwidth_optimize = 'X'.
    st_ls_layout-zebra             = 'X'.
    st_ls_layout-detail_popup      = 'X'.
    endform.                    " st_layout_build
    Field Catalog details
    perform st_fieldcat_init changing gt_fieldcat.
    form st_fieldcat_init  changing  fp_i_fieldcat type slis_t_fieldcat_alv.
      clear ls_fieldcat.
      ls_fieldcat-col_pos      = 1.
      ls_fieldcat-fieldname    = 'ORGUNIT'.
      ls_fieldcat-seltext_l    = 'Orgunit'.
    ls_fieldcat-no_out       = 'X'.
      append ls_fieldcat to fp_i_fieldcat.
      clear ls_fieldcat.
      ls_fieldcat-col_pos      = 2.
      ls_fieldcat-fieldname    = 'ORGTEXT'.
      ls_fieldcat-seltext_l    = 'Orgdesc'.
    ls_fieldcat-no_out       = 'X'.
      append ls_fieldcat to fp_i_fieldcat.
      clear ls_fieldcat.
      ls_fieldcat-fieldname    = 'SALARY'.
      ls_fieldcat-seltext_l    = 'Salary'.
      ls_fieldcat-col_pos      = 3.
      ls_fieldcat-outputlen   = 15.
      ls_fieldcat-do_sum       = 'X'.
      ls_fieldcat-datatype     = 'CURR'.    "CURR
      append ls_fieldcat to fp_i_fieldcat.
    endform.
    Variant
      perform st_variant_init  using gs_variant g_repid.
    form st_variant_init   using  st_gs_variant type disvariant
                                 st_repid      like sy-repid.
      clear st_gs_variant.
      st_gs_variant-report = st_repid.
    endform.                    " st_variant_init
      g_repid = sy-repid.
      perform st_comment_build  using gt_list_top_of_page[].
    form st_comment_build  using   st_lt_top_of_page type slis_t_listheader.
      data: ls_line type slis_listheader.
    Listenüberschrift: Typ H
      clear ls_line.
      ls_line-typ  = 'H'.
    LS_LINE-KEY:  not used for this type
      ls_line-info = text-000.
      append ls_line to st_lt_top_of_page.
    endform.                    " st_comment_build
         call function 'REUSE_ALV_GRID_DISPLAY'
          exporting
             i_buffer_active        = 'X'
            i_callback_top_of_page = 'TOP_OF_PAGE'
            i_callback_program     = g_repid
            is_layout              = gs_layout
            it_fieldcat            = gt_fieldcat[]
           i_structure_name       = 'i_final'   "c_i_final "'objec'
           i_save                 = g_save
            is_variant             = gs_variant
          tables
            t_outtab               = fp_i_pyrol_final
          exceptions
            program_error          = 1
            others                 = 2.
        if sy-subrc ne 0.
          message e018. " Displaying the ALV GRID has failed
        endif.
    Please could any  one let me know why iam getting dump when iam clicking for total
    on my salary field.
    Regards
    latha

    Dear Chandu,
    my code iam giving in details
    types : begin of ty_output_data,
            staffno     type pernr_d,
            staffname   type emnam,
            grade       type stell,
            orgunit     type orgeh,
            orgtext     type hr_mcstext,
            psgroup     type trfgr,      " Pay Scale Group
            salary      type maxbt,       "PAD_AMT7S,
            rrefunded   type pad_amt7s,
            leavepay    type pad_amt7s,
            mshortfal   type pad_amt7s,   " Medical Shortfall
            echkshfal   type pad_amt7s,   " Execute checkup shortfall
            ofindeduc   type pad_amt7s,   " Other Finance Deduction
            mtyprem     type pad_amt7s,   " maternity premium
            vpbonus     type pad_amt7s,   " VP/Bonus
            gratuity    type pad_amt7s,   " Gratuity
            vpay        type pad_amt7s,   " Variable pay
            mallowance  type pad_amt7s,   " Meal Allowance
            overtime    type pad_amt7s,   " overtime
            other       type  pad_amt7s,  "  OTHER
            pfundeecon  type pad_amt7s,   " PFund Employee's Contribution
            banktrnsfer type pad_amt7s,   " Bank Transfer
            count       type i,
            end of ty_output_data.
    data : i_final         type standard table of ty_output_data.
    iam getting all my data in the internal table  I_FINAL.
    perform get_final_alv  using  i_final.
    form get_final_alv  using   fp_i_pyrol_final type ty_t_output_data.
    *local variable declarations
      data : l_v_idx      type sy-tabix.
    *local work areas
      data : l_wa_final type ty_output_data.
      g_save = 'A'.
    This perform is used for Layout settings
      perform st_layout_build  using gs_layout.
    Field Catalog details
      perform st_fieldcat_init changing gt_fieldcat.
    Variant
      perform st_variant_init  using gs_variant g_repid.
      g_repid = sy-repid.
      perform st_comment_build  using gt_list_top_of_page[].
      if not fp_i_pyrol_final is initial.
        delete adjacent duplicates from fp_i_pyrol_final comparing all fields.
        call function 'REUSE_ALV_GRID_DISPLAY'
          exporting
             i_buffer_active        = 'X'
            i_callback_top_of_page = 'TOP_OF_PAGE'
            i_callback_program     = g_repid
            is_layout              = gs_layout
            it_fieldcat            = gt_fieldcat[]
           i_structure_name       = 'i_final'   "c_i_final "'objec'
           i_save                 = g_save
            is_variant             = gs_variant
          tables
            t_outtab               = fp_i_pyrol_final
          exceptions
            program_error          = 1
            others                 = 2.
        if sy-subrc ne 0.
          message e018. " Displaying the ALV GRID has failed
        endif.
      endif.
    endform.                    " get_final_alv
    form st_layout_build  using  st_ls_layout type slis_layout_alv.
       st_ls_layout-no_input          = 'X'.
      st_ls_layout-colwidth_optimize = 'X'.
    st_ls_layout-zebra             = 'X'.
    st_ls_layout-detail_popup      = 'X'.
    endform.                    " st_layout_build
    form st_fieldcat_init  changing  fp_i_fieldcat type slis_t_fieldcat_alv.
      data: ls_fieldcat type slis_fieldcat_alv.
      clear ls_fieldcat.
      ls_fieldcat-col_pos      = 1.
      ls_fieldcat-fieldname    = 'ORGUNIT'.
      ls_fieldcat-seltext_l    = 'Orgunit'.
    ls_fieldcat-no_out       = 'X'.
      append ls_fieldcat to fp_i_fieldcat.
      clear ls_fieldcat.
      ls_fieldcat-col_pos      = 2.
      ls_fieldcat-fieldname    = 'ORGTEXT'.
      ls_fieldcat-seltext_l    = 'Orgdesc'.
    ls_fieldcat-no_out       = 'X'.
      append ls_fieldcat to fp_i_fieldcat.
      clear ls_fieldcat.
      ls_fieldcat-col_pos      = 5.
      ls_fieldcat-fieldname    = 'STAFFNAME'.
    ls_fieldcat-no_out       = 'X'.
      ls_fieldcat-seltext_l    = 'StaffName'.
      append ls_fieldcat to fp_i_fieldcat.
       clear ls_fieldcat.
      ls_fieldcat-col_pos      = 4.
      ls_fieldcat-fieldname    = 'STAFFNO'.
    ls_fieldcat-no_out       = 'X'.
      ls_fieldcat-seltext_l    = 'StaffNo.'.
      append ls_fieldcat to fp_i_fieldcat.
      clear ls_fieldcat.
      ls_fieldcat-col_pos      = 6.
      ls_fieldcat-fieldname    = 'GRADE'.
      ls_fieldcat-seltext_l    = 'Grade'.
      append ls_fieldcat to fp_i_fieldcat.
      clear ls_fieldcat.
      ls_fieldcat-col_pos      = 3.
      ls_fieldcat-fieldname    = 'COUNT'.
      ls_fieldcat-seltext_l    = 'Headcount'.
      append ls_fieldcat to fp_i_fieldcat.
    if the field name is 'Salary' then do a sum on this field.
    IF  fp_fname = c_betrg.
        l_wa_fieldcat-do_sum    = c_x.
    ENDIF.
    NOTE : IAM GETTING PROBLEM IN THE BELOW SALARY.
    IAM JUST CHECKING ITSELF NOT ALLOWING ME TO EXECUTE
      clear ls_fieldcat.
      ls_fieldcat-fieldname    = 'SALARY'.
      ls_fieldcat-seltext_l    = 'Salary'.
      ls_fieldcat-col_pos      = 7.
      ls_fieldcat-outputlen   = 20.
      ls_fieldcat-do_sum       = 'X'.
      ls_fieldcat-datatype     = 'CURR'.    "CURR
      append ls_fieldcat to fp_i_fieldcat.
      clear ls_fieldcat.
      ls_fieldcat-col_pos      = 9.
      ls_fieldcat-fieldname    = 'LEAVEPAY'.
      ls_fieldcat-seltext_l    = 'Leave Pay'.
      append ls_fieldcat to fp_i_fieldcat.
      clear ls_fieldcat.
      ls_fieldcat-col_pos      = 10.
      ls_fieldcat-fieldname    = 'MSHORTFAL'.
      ls_fieldcat-seltext_l    = 'Med.Sfall'.
      append ls_fieldcat to fp_i_fieldcat.
      clear ls_fieldcat.
      ls_fieldcat-col_pos      = 11.
      ls_fieldcat-fieldname    = 'ECHKSHFAL'.
      ls_fieldcat-seltext_l    = 'EX.Chckup.Sfall'.
      append ls_fieldcat to fp_i_fieldcat.
      clear ls_fieldcat.
      ls_fieldcat-col_pos      = 12.
      ls_fieldcat-fieldname    = 'OFINDEDUC'.
      ls_fieldcat-seltext_l    = 'Oth.Fin.Deduction'.
      append ls_fieldcat to fp_i_fieldcat.
      clear ls_fieldcat.
      ls_fieldcat-col_pos      = 13.
      ls_fieldcat-fieldname    = 'MTYPREM'.
      ls_fieldcat-seltext_l    = 'Mat.Premium'.
      append ls_fieldcat to fp_i_fieldcat.
      clear ls_fieldcat.
      ls_fieldcat-col_pos      = 14.
      ls_fieldcat-fieldname    = 'VPBONUS'.
      ls_fieldcat-seltext_l    = 'VP/Bonus'.
      append ls_fieldcat to fp_i_fieldcat.
      clear ls_fieldcat.
      ls_fieldcat-col_pos      = 15.
      ls_fieldcat-fieldname    = 'GRATUITY'.
      ls_fieldcat-seltext_l    = 'Gratuity'.
      append ls_fieldcat to fp_i_fieldcat.
      clear ls_fieldcat.
      ls_fieldcat-col_pos      = 16.
      ls_fieldcat-fieldname    = 'VPAY'.
      ls_fieldcat-seltext_l    = 'Variable Pay'.
      append ls_fieldcat to fp_i_fieldcat.
      clear ls_fieldcat.
      ls_fieldcat-col_pos      = 17.
      ls_fieldcat-fieldname    = 'MALLOWANCE'.
      ls_fieldcat-seltext_l    = 'Meal.Allowance'.
      append ls_fieldcat to fp_i_fieldcat.
      clear ls_fieldcat.
      ls_fieldcat-col_pos      = 18.
      ls_fieldcat-fieldname    = 'OVERTIME'.
      ls_fieldcat-seltext_l    = 'Overtime'.
      append ls_fieldcat to fp_i_fieldcat.
        clear ls_fieldcat.
      ls_fieldcat-col_pos      = 19.
      ls_fieldcat-fieldname    = 'OTHER'.
      ls_fieldcat-seltext_l    = 'Other'.
      append ls_fieldcat to fp_i_fieldcat.
    pfundeecon
      clear ls_fieldcat.
      ls_fieldcat-col_pos      = 20.
      ls_fieldcat-fieldname    = 'P FUND EMPLOYEES CONTRIBUTION'.
      ls_fieldcat-seltext_l    = 'P.Fund.Emp.Contrib'.
      append ls_fieldcat to fp_i_fieldcat.
      clear ls_fieldcat.
      ls_fieldcat-col_pos      = 21.
      ls_fieldcat-fieldname    = 'BANKTRNSFER'.
      ls_fieldcat-seltext_l    = 'Payment'.
      append ls_fieldcat to fp_i_fieldcat.
    endform.                    " st_fieldcat_init
    form st_variant_init   using  st_gs_variant type disvariant
                                 st_repid      like sy-repid.
      clear st_gs_variant.
      st_gs_variant-report = st_repid.
    endform.                    " st_variant_init
    form st_comment_build  using   st_lt_top_of_page type slis_t_listheader.
      data: ls_line type slis_listheader.
    Listenüberschrift: Typ H
      clear ls_line.
      ls_line-typ  = 'H'.
    LS_LINE-KEY:  not used for this type
      ls_line-info = text-000.
      append ls_line to st_lt_top_of_page.
    endform.                    " st_comment_build
          FORM TOP_OF_PAGE                                              *
    form top_of_page.
      data: l_i_detailheader type slis_t_listheader.
    To get the header for ALV
      perform detail_header changing l_i_detailheader.
      call function 'REUSE_ALV_COMMENTARY_WRITE'
        exporting
          it_list_commentary = l_i_detailheader.
    endform.                    "top_of_page
    form detail_header  changing fp_i_detailheader type slis_t_listheader.
      data: l_wa_header       type slis_listheader,
            l_v_time         type slis_edit_mask,
            l_v_date         type slis_edit_mask,
            l_v_abkrs        type char5,
            l_v_pabrj        type char8,
            l_v_pagno        type char10.
    Local Constants
      constants: l_c_h type char1 value 'H',
                 l_c_1  type i     value '1',
                 l_c_edit type char10 value '__.__.____',
                 l_c_slash  type c value '/'. " constant for slash
    To display the report Header
      l_wa_header-typ = l_c_h.
    WRITE sy-repid TO l_wa_header-info LEFT-JUSTIFIED.
      write text-014  to l_wa_header-info left-justified.
      append l_wa_header to fp_i_detailheader.
      clear l_wa_header.
    To display the Page no
      l_v_pagno =   sy-pagno + l_c_1.
      l_wa_header-typ = c_s.
      l_wa_header-key = text-008. " Page No:
      l_wa_header-info =  l_v_pagno.
      append l_wa_header to fp_i_detailheader.
      clear l_wa_header.
    To Display the User ID
      l_wa_header-typ = c_s.
      l_wa_header-key = text-009. " User ID
      l_wa_header-info = sy-uname.
      append l_wa_header to fp_i_detailheader.
      clear l_wa_header.
    To Display the Date/Time
      l_wa_header-typ = c_s.
      l_wa_header-key = text-010. " Date/Time:
      l_v_time = sy-uzeit.
      l_v_date = sy-datum.
      write: sy-uzeit to l_v_time.
      write sy-datum to l_v_date using edit mask l_c_edit.
      concatenate l_v_date
                  l_c_slash
                  l_v_time into l_wa_header-info+0(25) separated by space.
      append l_wa_header to fp_i_detailheader.
      clear: l_wa_header, l_v_date.
    To Display the Report Description
      l_wa_header-typ = c_s.
      l_wa_header-key = text-011.                " Report Description
      l_wa_header-info = text-012.
      append l_wa_header to fp_i_detailheader.
      clear l_wa_header.
      append l_wa_header to fp_i_detailheader.
    endform.                    " detail_header
    I will be greatful if any one can please help me in removing me the dump.
    REGARDS
    LATHA.

  • ABAP Dump while Changing the Layout fields in Report output - RCOPCA02

    Hi,
    I Copied the Standard Program RCOPCA02 to ZRCOPCA02. I added two new fields(AUART, AUGRU) in the report output. It is executing correctly with default layout, While Changing the layout for displaying new fields it is dumping.
    I am not understanding, What should i do...
    Here is the Code.
    report ZRCOPCA02 no standard page heading message-id km
                    line-count (2) line-size 81.
    type-pools: slis, ecarc.
    DDIC-Tabellen *******************************************************
    tables: glpca,                         "Einzelposten / Ist
            glu1,                          "Übergabestruktur FI-SL-Anzeige
            t000,
            tka01,
            sscrfields,
            vbak.
    Variablen und int. Tabellen *****************************************
    data: l_vbeln like vbak-vbeln,
    l_auart like vbak-auart,
    l_augru like vbak-augru.
    data: afield type slis_fieldcat_alv,
    sp_group type slis_sp_group_alv,
    t_listheader type slis_t_listheader with header line,
    t_layout type slis_layout_alv,
    t_fieldcat type slis_t_fieldcat_alv,
    t_spec_groups type slis_t_sp_group_alv,
    event type slis_alv_event,
    t_events type slis_t_event,
    g_variant like disvariant,
    gx_variant like disvariant,
    g_exit(1) type c,
    g_save(1) type c,
    g_repid like sy-repid,
    msgtyp like sy-msgty,
    lt_dynpread like dynpread occurs 1 with header line,
    ls_rpcak like rpcak, "note 0310592
    packsize type i value 1000,
    text1(60) type c,
    text2(60) type c,
    oldkokrs like glpca-kokrs,
    oldracct like glpca-racct.
    data: whr_size type i value 50,"Maximum of single values per MIC 46a
    "charact. in the where-clause of the select-statement
    lines type i, "number of lines of range table MIC 46a
    cnt_rldnr type i, "Zähler Anzahl selektierter Ledger
    cnt_kokrs type i, "Zähler Anzahl selektierter KoReKreise
    cnt_poper type i, "Zähler Anzahl selektierter Perioden
    cnt_ryear type i, "Zähler Anzahl selektierter GeschJahre
    cnt_rvers type i, "Zähler Anzahl selektierter Versionen
    cnt_bukrs type i, "Zähler Anzahl selektierter BuKreise
    empge like dkobr-empge,
    ksl_curr like tka01-pcacur,
    hsl_curr like t001-waers,
    a_rec like rstirec.
    data: begin of dim_data.
    include structure rgcdi. "data for dimensions
    data: end of dim_data.
    data: begin of tab_fields occurs 80,
    name like dntab-fieldname, "fields in table i_glpca
    end of tab_fields.
    data: begin of i_glpca occurs 0.
    include structure rpca2.
    data: racct_ktext like rpcak-ktext,
    psppp like prps-posid,
    v_auart like vbak-auart,
    v_augru like vbak-augru,
          end of i_glpca.
    data: rw_subrc   like sy-subrc,      "Flag: Report-Writer-Schnittstelle
          re_subrc   like sy-subrc,        "Flag: Recherche-Schnittstelle
          subrc      like sy-subrc.
    data: set_id    like sethier-setid,    "Set-ID        "RDI_SETS_4.0
          set_class like sethier-setclass, "Setklasse     "RDI_SETS_4.0
          set_sname like sethier-shortname."Setname (24)  "RDI_SETS_4.0
    data: authorised(1),
          s_message(1),
          auth_dbcount like sy-tabix,
        Hex-Konstanten für Minimum/Maximum-Werte
          begin of hex00,
            x1(12) type c,
            x2(12) type c,
          end of hex00,
          begin of hexff,
            x1(12) type c,
            x2(12) type c,
          end of hexff.
    ranges rclnt for glpca-rclnt.
    field-symbols:  type ecarc_glpca_curr.
    Selektionsoptionen *************************************************
    select-options:
      rldnr    for glpca-rldnr   default '8A' no-display,
      rassc    for glpca-rassc                no-display,
    rrcty    for glpca-rrcty   default 0,
      rrcty    for glpca-rrcty,
      rvers    for glpca-rvers   default '000',
      kokrs    for glpca-kokrs   memory id cac,
      bukrs    for glpca-rbukrs  memory id buk,
    poper    for glpca-poper   default sy-datlo+4(2),
    ryear    for glpca-ryear   default sy-datlo,
      poper    for glpca-poper,
      ryear    for glpca-ryear,
      prctr    for glpca-rprctr  matchcode object prct,
      pprctr   for glpca-sprctr  matchcode object prct,
    RACCT    FOR GLPCA-RACCT   MATCHCODE OBJECT KART,      "RD_P30K128304
      racct    for glpca-racct,            "RD_P30K128304
      drcrk    for glpca-drcrk,
      activ    for glpca-activ,
      rhoart   for glpca-rhoart,
      rfarea   for glpca-rfarea,
      stagr    for glpca-stagr,
      rtcur    for glpca-rtcur,
      runit    for glpca-runit,
      versa    for glpca-versa  no-display,
      eprctr   for glpca-eprctr no-display,
      afabe    for glpca-afabe  no-display,
      rmvct    for glpca-rmvct  no-display,
      hrkft    for glpca-hrkft  no-display,  "note 550972
      sbukrs   for glpca-sbukrs no-display,  "note 550972
      shoart   for glpca-shoart no-display,  "note 550972
      sfarea   for glpca-sfarea no-display,  "note 550972
      docct    for glpca-docct,
      docnr    for glpca-docnr,
      refdocct for glpca-refdocct,
      refdocnr for glpca-refdocnr,
      werks    for glpca-werks,
      repmatnr for glpca-rep_matnr matchcode object pca_shlp_rep_matnr,
      rscope   for glpca-rscope.
    parameters: no_rrint no-display default ' '." skip       "MICP40K066037
    " report-report-interface
    display variant                                       ">>MICP40K039857
    selection-screen begin of block 0 with frame title text-e01.
    parameters: p_vari like disvariant-variant.
    selection-screen comment 47(40) varname for field p_vari.
    selection-screen end of block 0.
    parameters log_grp(4) type c no-display default 'KE5Z'.
    "<<MICP40K039857
    ranges: v_racct  for glpca-racct,
            v_prctr  for glpca-rprctr,
            v_pprctr for glpca-sprctr.
    Tabelle mit Werten aus den Berichts-Set vom Report-Writer           *
    data  begin of val_tab occurs 50.
            include structure rgciv.
    data  end of val_tab.
           MICP30K166368
    feldkatalog und interface für bb-schnittstelle rw        MICP30K166368
           MICP30K166368
    "MICP30K166368
    data  begin of bbs_fieldtab occurs 20. "MICP30K166368
            include structure rstifields.  "MICP30K166368
    data  end of bbs_fieldtab.             "MICP30K166368
    archiv
    type-pools: rsds.
    types:      begin of ty_archive_objects,
                   object       like arch_obj-object,
                end   of ty_archive_objects,
                ty_t_archive_objects type ty_archive_objects occurs 2.
    constants:  lc_set          type  c           value 'X',
                lc_report       type  progname    value 'KE5Z',
                lc_reporttype   type  reporttype  value 'TR'.
    tables:     admi_files.
    select-options lr_files for admi_files-archiv_key no-display.
    parameter:  read_db       type c            default 'X' no-display,
                read_ar       type c                        no-display,
                arc_obj       like arch_obj-object          no-display,
                read_as       type c            default 'X' no-display.
    data  :     lt_arch_obj     type ty_t_archive_objects with header line,
                ls_selections   type rsds_frange,
                lt_selections   type rsds_frange_t,
                ls_selopt type rsdsselopt,
                lt_glpca_archiv type ecarc_t_glpca_curr.
    *********************************************************>>MICP40K039857
    INITIALIZATION
    initialization.
    Diverse Initialisierungen
      perform init_vars.
      g_repid = sy-repid.
    Set default values for record type
      rrcty-sign = 'I'.
      rrcty-option = 'EQ'.
      rrcty-low    = '0'.
      append rrcty.
      rrcty-low = '2'.
      append rrcty.
    Set default values for period and year (if kokrs or bukrs is known)
      get parameter id 'BUK' field bukrs-low.
      get parameter id 'CAC' field kokrs-low.
      if     kokrs-low is initial       "get contr. area from company code
         and not bukrs-low is initial.
        call function 'KOKRS_GET_FROM_BUKRS'
          exporting
            i_bukrs        = bukrs-low
          importing
            e_kokrs        = kokrs-low
          exceptions
            no_kokrs_found = 1
            others         = 2.
        if sy-subrc <> 0.
          clear kokrs-low.
        endif.
      endif.
      if not kokrs-low is initial.
        call function 'K_KOKRS_READ'       "get fiscal year variant
             exporting
                  kokrs           = kokrs-low
              importing
                  e_tka01         = tka01
            exceptions
                  not_found       = 1
                  not_found_gjahr = 2
                  others          = 3.
        if sy-subrc = 0.
          call function 'G_PERIOD_GET'
            exporting
              date                           = sy-datlo
              variant                        = tka01-lmona
            importing
              period                         = poper-low
              year                           = ryear-low
            exceptions
              ledger_not_assigned_to_company = 1
              period_not_defined             = 2
              variant_not_defined            = 3
              others                         = 4.
          if sy-subrc = 0.
            poper-sign = 'I'.
            poper-option = 'EQ'.
            append poper.
            ryear-sign = 'I'.
            ryear-option = 'EQ'.
            append ryear.
          endif.
        endif.
      endif.
    Settings for display variants
      g_save = 'A'.  "Schalter Varianten benutz./allg. speichern
      clear g_variant.
      g_variant-report = g_repid.
      g_variant-log_group = log_grp.
      g_variant-username = sy-uname.
    Get default variant
      gx_variant = g_variant.
      call function 'REUSE_ALV_VARIANT_DEFAULT_GET'
        exporting
          i_save     = g_save
        changing
          cs_variant = gx_variant
        exceptions
          not_found  = 2.
      if sy-subrc = 0.
        p_vari = gx_variant-variant.
      endif.
    Set variant
      if p_vari is initial.
        p_vari = '1SAP'.
        move p_vari to gx_variant-variant.
        call function 'REUSE_ALV_VARIANT_EXISTENCE'
          exporting
            i_save     = g_save
          changing
            cs_variant = gx_variant
          exceptions
            not_found  = 1.
        if sy-subrc ne 0.
          clear p_vari.
          clear gx_variant-variant.
        endif.
      endif.
      varname = gx_variant-text.
      "<<MICP40K039857
    archiv
      call function 'KARL_DATA_INPUT_INIT'
        exporting
          i_report     = lc_report
          i_reporttype = lc_reporttype
        importing
          e_xusedb     = read_db
          e_xusear     = read_ar
          e_archobj    = arc_obj
          e_infosys    = read_as
        tables
          t_arch_sel   = lr_files.
      data: lt_excluding like sy-ucomm occurs 0 with header line.
      call function 'RS_SET_SELSCREEN_STATUS'
        exporting
          p_status  = 'SELSCREEN'
          p_program = 'RCOPCA02'
        tables
          p_exclude = lt_excluding.
    Initialisieren der Bericht/Bericht-Schnittstellen                   *
      data: ld_no_rrint type boole_d.      "note 490484 begin
      import rri = ld_no_rrint from memory id 'RCOPCA02_NO_RRI'.
      if ld_no_rrint = 'X'.
        free memory id 'RCOPCA02_NO_RRI'.
      else.                                "note 490484 end
        call function 'G_REPORT_INTERFACE_INIT'   "Report-Writer?
            exporting                      "MICP30K166368
                 table = 'GLPCT'           "MICP30K166368
             importing
                 subrc = rw_subrc          "MICP30K166368
            tables                         "MICP30K166368
                 it_fieldr = bbs_fieldtab. "MICP30K166368
        call function 'RSTI_APPL_STACK_POP'"oder Recherche?
             importing
                  i_rec                      = a_rec
             exceptions
                  appl_stack_not_initialized = 1.
        re_subrc = sy-subrc.
        if re_subrc = 0.
       check Receiver is this report
          if not ( ( a_rec-rtool = 'RT' and a_rec-ronam = 'RCOPCA02' )
                   or ( a_rec-rtool = 'TR' and a_rec-ronam = 'KE5Z' ) ) .
            re_subrc = 2.
          endif.
        endif.
      endif.
    AT SELCTION-SCREEN on value request**********************************
    *at selection-screen on value-request for racct-low.          "RD "4.6a
                                                                "RD "4.6a
    call function 'K_RACCT_VALUE_REQUEST'                       "RD "4.6a
         importing                                              "RD "4.6a
              e_racct      = racct-low.                         "RD "4.6a
                                                                "RD "4.6a
                                                                "RD "4.6a
    *at selection-screen on value-request for racct-high.         "RD "4.6a
                                                                "RD "4.6a
    call function 'K_RACCT_VALUE_REQUEST'                       "RD "4.6a
         importing                                              "RD "4.6a
              e_racct      = racct-high.                        "RD "4.6a
    at selection-screen on value-request for p_vari.         "MICP40K039857
      perform f4_for_variant.              "MICP40K039857
    at selection-screen on value-request for poper-low.         "RD "4.6a
    begin of insertion note 522715
      call function 'K_KOKRS_READ'
        exporting
          kokrs           = kokrs-low
        exceptions
          not_found       = 1
          not_found_gjahr = 2
          others          = 3.
      if sy-subrc = 0.
    end of insertion note 522715
        call function 'ECPCA_RPMAX_VALUE_REQUEST'               "RD "4.6a
             exporting                                          "RD "4.6a
                  i_kokrs     = kokrs-low                       "RD "4.6a
                  i_ryear     = ryear-low                       "RD "4.6a
             importing                                          "RD "4.6a
                  e_rpmax     = poper-low                       "RD "4.6a
    begin of insertion note 522715
             exceptions
                  table_empty = 1.
      endif.
    end of insertion note 522715
    at selection-screen on value-request for poper-high.        "RD "4.6a
    begin of insertion note 522715
      call function 'K_KOKRS_READ'
        exporting
          kokrs           = kokrs-low
        exceptions
          not_found       = 1
          not_found_gjahr = 2
          others          = 3.
      if sy-subrc = 0.
    end of insertion note 522715
        call function 'ECPCA_RPMAX_VALUE_REQUEST'               "RD "4.6a
             exporting                                          "RD "4.6a
                  i_kokrs     = kokrs-low                       "RD "4.6a
                  i_ryear     = ryear-low                       "RD "4.6a
             importing                                          "RD "4.6a
                  e_rpmax     = poper-high                      "RD "4.6a
    begin of insertion note 522715
             exceptions
                  table_empty = 1.
      endif.
    end of insertion note 522715
    AT SELCTION-SCREEN ***************************************************
    at selection-screen.
      perform pai_of_selection_screen.
    begin of insertion note 522715
      if not kokrs-low is initial.
        call function 'K_KOKRS_READ'
          exporting
            kokrs           = kokrs-low
          exceptions
            not_found       = 1
            not_found_gjahr = 2
            others          = 3.
        if sy-subrc <> 0.
          message e101(ki) with kokrs-low.
        endif.
      endif.
    end of insertion note 522715
    archiv
      if sy-ucomm = 'FC01' or sy-ucomm = 'UCDS'
        or sy-ucomm = 'ONLI' and read_ar = 'X'
        and read_as is initial and lr_files[] is initial.
        if lt_arch_obj[] is initial.
          lt_arch_obj-object = 'PCA_OBJECT'. append lt_arch_obj.
          lt_arch_obj-object = 'EC_PCA_ITM'. append lt_arch_obj.
        endif.
        call function 'KARL_DATA_INPUT_SELECT'
          exporting
            i_db_and_arc       = lc_set
            i_infosys_possible = lc_set
            i_object_fixed     = 'V'
            i_documentation    = 'KARL_DATA_INPUT_SEL_KE5YZ'
            i_report           = lc_report
            i_reporttype       = lc_reporttype
          tables
            t_objects          = lt_arch_obj
            t_arch_sel         = lr_files
          changing
            c_xusedb           = read_db
            c_xusear           = read_ar
            c_archobj          = arc_obj
            c_infosys          = read_as.
      endif.
    START-OF-SELECTION **************************************************
    start-of-selection.
      Default-Werte löschen, falls Aufruf über Recherche
      oder Report-Writer erfolgt ist
      if no_rrint is initial and ld_no_rrint is initial.        "note 490484
        if rw_subrc eq 0 or re_subrc eq 0.
          refresh: rldnr, rrcty, rvers,  kokrs, bukrs, poper,  ryear,
                   racct, prctr, pprctr, drcrk, activ, rhoart, rfarea,
                   versa, afabe, eprctr,
                   v_racct, v_prctr, v_pprctr.
          clear:   rldnr, rrcty, rvers,  kokrs, bukrs, poper,  ryear,
                   racct, prctr, pprctr, drcrk, activ, rhoart, rfarea,
                   versa, afabe, eprctr,
                   v_racct, v_prctr, v_pprctr.
        endif.
    Parameter einlesen über Report-Writer-Schnittstelle                 *
        if rw_subrc eq 0.
          perform rw_get_parameters.
    oder Parameter einlesen über Recherche-Schnittstelle                *
        elseif re_subrc eq 0.
          perform re_get_parameters.
        endif.
      endif.
      if read_db = 'X'.                     " read from DB (archiv)
    Bewegungsdaten einlesen und puffern...................................
        call function 'SAPGUI_PROGRESS_INDICATOR'
          exporting
            text = 'Einzelposten selektieren'(p10).
    Use dirty trick to mislead DB-optimizer
        call function 'DB_DO_NOT_USE_CLIENT_INDEX'
          exporting
            value    = sy-mandt
          tables
            mandttab = rclnt.
        select (tab_fields) from glpca
           client specified
           package size packsize
          APPENDING CORRESPONDING FIELDS OF TABLE i_glpcaO
            into corresponding fields of table i_glpca
           where rldnr     in rldnr
             and rrcty     in rrcty
             and rvers     in rvers
             and kokrs     in kokrs
             and rbukrs    in bukrs
             and ryear     in ryear
             and rassc     in rassc
             and hrkft     in hrkft   "note 550972
             and sbukrs    in sbukrs  "note 550972
             and shoart    in shoart  "note 550972
             and sfarea    in sfarea  "note 550972
             and racct     in racct
             and rprctr    in prctr
             and sprctr    in pprctr
             and poper     in poper
             and drcrk     in drcrk
             and activ     in activ
             and rhoart    in rhoart
             and rfarea    in rfarea
             and versa     in versa
             and eprctr    in eprctr
             and afabe     in afabe
             and rmvct     in rmvct
             and docct     in docct
             and docnr     in docnr
             and stagr     in stagr
             and rtcur     in rtcur
             and runit     in runit
             and refdocct  in refdocct
             and refdocnr  in refdocnr
             and werks     in werks
             and rep_matnr in repmatnr       "RDIP40K020663
             and rscope    in rscope         "RDIP40K020663
          and rclnt     in rclnt.       "dirty trick to mislead DB-optimizer
          if sy-dbcnt > 1.
            text1 = sy-dbcnt.
            condense text1.
            concatenate text1 text-m01 into text2 separated by space.
            call function 'SAPGUI_PROGRESS_INDICATOR'
              exporting
                text = text2.          " ... Datensätze gelesen
          endif.
        endselect.
    Entfernt nicht zugehörige Einträge....................................
        loop at i_glpca where ( not rprctr in v_prctr  )
                           or ( not sprctr in v_pprctr )
                           or ( not racct  in v_racct  ).
          delete i_glpca.
        endloop.
      endif.
    *archiv
      if read_ar = 'X' and not
        ( read_as is initial and lr_files[] is initial ).
        call function 'SAPGUI_PROGRESS_INDICATOR'
          exporting
            text = 'Lesen im Archiv'(p12).
        define fill_lt_selections.
          if not &2[] is initial.
            clear ls_selections.
            move &1 to ls_selections-fieldname.
            loop at &2.
              clear ls_selopt.
              move-corresponding &2 to ls_selopt.
              append ls_selopt to ls_selections-selopt_t.
            endloop.
            append ls_selections to lt_selections.
          endif.
        end-of-definition.
        fill_lt_selections 'RLDNR'  rldnr.
        fill_lt_selections 'RRCTY'  rrcty.
        fill_lt_selections 'RVERS'  rvers.
        fill_lt_selections 'KOKRS'  kokrs.
        fill_lt_selections 'RBUKRS' bukrs.
        fill_lt_selections 'POPER'  poper.
        fill_lt_selections 'RYEAR'  ryear.
        fill_lt_selections 'RPRCTR' prctr.
        fill_lt_selections 'SPRCTR' pprctr.
        fill_lt_selections 'RACCT'  racct.
        fill_lt_selections 'DRCRK'  drcrk.
        fill_lt_selections 'ACTIV'  activ.
        fill_lt_selections 'RHOART' rhoart.
        fill_lt_selections 'RFAREA' rfarea.    "note 401961
        fill_lt_selections 'STAGR'  stagr.
        fill_lt_selections 'RTCUR'  rtcur.
        fill_lt_selections 'RUNIT'  runit.
        fill_lt_selections 'VERSA'  versa.
        fill_lt_selections 'EPRCTR' eprctr.
        fill_lt_selections 'AFABE'  afabe.
        fill_lt_selections 'RMVCT'  rmvct.
        fill_lt_selections 'DOCCT'  docct.
        fill_lt_selections 'DOCNR'  docnr.
        fill_lt_selections 'REFDOCCT' refdocct.
        fill_lt_selections 'REFDOCNR' refdocnr.
        fill_lt_selections 'WERKS'  werks.
        fill_lt_selections 'REP_MATNR' repmatnr.
        fill_lt_selections 'RSCOPE' rscope.
        fill_lt_selections 'HRKFT'  hrkft.   "note 550972
        fill_lt_selections 'SBUKRS' sbukrs.  "note 550972
        fill_lt_selections 'SHOART' shoart.  "note 550972
        fill_lt_selections 'SFAREA' sfarea.  "note 550972
        call function 'EC_PCA_SELECT_FROM_ARCHIVE'
          exporting
            i_selections            = lt_selections[]
            i_files_sequential_read = lr_files[]
          importing
            e_glpca                 = lt_glpca_archiv[]
          exceptions
            no_infostruc_found      = 1.
        if sy-subrc = 1.
          message id sy-msgid type 'I' number sy-msgno
                  with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
        endif.
        clear i_glpca.
        loop at lt_glpca_archiv assigning  to i_glpca.
          append i_glpca.
        endloop.
      endif.
      if i_glpca[] is initial.         "Info,nichts gefunden
        message s000.
        exit.
      endif.
    get texts for accounts ...............................................
      sort i_glpca by kokrs racct.
      loop at i_glpca assigning -racct_ktext = ls_rpcak-ktext.
      endloop.
    Liste mit Einzelposten geeignet sortieren.............................
      call function 'SAPGUI_PROGRESS_INDICATOR'
        exporting
          text = 'Einzelposten sortieren'(p30).
    if show_ref is initial.
       sort i_glpca by rldnr ryear rbukrs rrcty rvers
                       docct docnr docln.
    else.
      sort i_glpca by rldnr kokrs ryear rbukrs rrcty rvers poper
                      refdocct refdocnr refdocln.
    endif.
    Berechtigungsprüfung und gemerkte Belege aufbereiten .................
      call function 'SAPGUI_PROGRESS_INDICATOR'
        exporting
          text = 'Berechtigungsprüfungen'(p40).
      clear: cnt_rldnr, cnt_kokrs, cnt_ryear, cnt_rvers, cnt_bukrs.
      loop at i_glpca assigning .
      Berechtigungscheck
        perform check_repo_authority changing authorised.
        if authorised is initial.
          delete i_glpca.
          s_message = 'X'.
        zählen der Sätze ohne Berechtigung
          auth_dbcount = auth_dbcount + 1.
        else. "Weitere Bearbeitung nur für berechtigte Belege...
        Zusätzlich merken der Anzahl der Ausprägungen
        bestimmter Dimensionen
          on change of -rbukrs
                ct       = '10'
              importing
                currency = hsl_curr.
          endon.
        externe Immobilienbezeichnung                     "ww/kb
        on change of i_glpca-imkey.
          if ( not -dabrz
                    I_length   = 20
                 importing
                      e_empge    = -konty.
            endif.
          CONCATENATE I_GLPCA-KONTY I_GLPCA-EMPGE INTO I_GLPCA-IMBEZ.
          endif.
        endon.
        on change of i_glpca-dabrz.
           call function 'REMD_IMKEY_TO_EMPGE'
                exporting
                     i_imkey    = i_glpca-imkey
                     i_dabrz    = i_glpca-dabrz
                    i_length   = 20
                importing
                     e_empge    = i_glpca-empge
                     e_konty    = i_glpca-konty.
          CONCATENATE I_GLPCA-KONTY I_GLPCA-EMPGE INTO I_GLPCA-IMBEZ.
         endon.
        Konvertierungsproblem mit PSP-Nummer bereinigen
          if not -psppp.
            endif.
          endif.
        Währungen in Hilfsfeldern speichern
          if -ksl_curr = ksl_curr.
          endif.
        modify i_glpca.
        endif.
      endloop.
    Nachricht, wenn nicht alle Einzelposten angezeigt werden.
      if not s_message is initial.
        message s407(km) with auth_dbcount.
      endif.
    EP ausgeben...........................................................
      call function 'SAPGUI_PROGRESS_INDICATOR'
        exporting
          text = 'Einzelposten ausgeben'(p50).
      t_layout-detail_initial_lines = 'X'.
      t_layout-detail_popup         = 'X'.
      t_layout-f2code               = 'PIC1'.                "MICP40K039857
      t_layout-get_selinfos         = 'X'.
      t_layout-group_change_edit    = 'X'.                   "note 576149
      perform fill_listheader.
      perform fieldcat_fill.
      perform spec_groups_fill.
      perform events_fill.                 "MICP40K039857
      ">>MICP40K039857
    call function 'K_KKB_LIST_DISPLAY'
          exporting
               i_callback_program       = 'RCOPCA02'
               i_callback_user_command  = 'USR_CMD'
               i_callback_top_of_page   = 'TOP_OF_PAGE'
              I_CALLBACK_END_OF_PAGE   =
              I_CALLBACK_END_OF_LIST   =
               i_callback_pf_status_set = 'SET_PF_STATUS'
              I_CALLBACK_LAYOUT_SAVE   =
              I_CALLBACK_FIELDCAT_SAVE =
               i_tabname                = 'I_GLPCA'
               is_layout                = t_layout
               it_fieldcat              = t_fieldcat
              I_FCTYPE                 = 'R'
              IT_EXCLUDING             =
               it_special_groups        = t_spec_groups
              IT_SORT                  =
              IS_SEL_HIDE              =
              I_SCREEN_START_COLUMN    = 0
              I_SCREEN_START_LINE      = 0
              I_SCREEN_END_COLUMN      = 0
              I_SCREEN_END_LINE        = 0
          tables
               t_outtab                 = i_glpca
          exceptions
               others                   = 1.
    loop at i_glpca.
    select single vbeln auart augru
    into (l_vbeln, l_auart, l_augru)
    from vbak where vbeln = i_glpca-aubel.
    if sy-subrc = 0.
    move l_auart to i_glpca-v_auart.
    move l_augru to i_glpca-v_augru.
    modify i_glpca.
    endif.
    endloop.
      call function 'REUSE_ALV_GRID_DISPLAY'
    CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
         exporting
            I_INTERFACE_CHECK        = ' '
               i_callback_program       = 'ZRCOPCA02'
               i_callback_pf_status_set = 'SET_PF_STATUS'
               i_callback_user_command  = 'USR_CMD'
               i_structure_name         = 'I_GLPCA'
               is_layout                = t_layout
               it_fieldcat              = t_fieldcat
            IT_EXCLUDING             =
               it_special_groups        = t_spec_groups
            IT_SORT                  =
            IT_FILTER                =
            IS_SEL_HIDE              =
               i_default                = 'X'
               i_save                   = g_save
               is_variant               = g_variant
               it_events                = t_events
            IT_EVENT_EXIT            =
            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   =
          tables
               t_outtab                 = i_glpca
        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.
      "<<MICP40K039857
      clear i_glpca.
    *&      Form  CHECK_REPO_AUTHORITY
    Check only new auth-object K_PCA                                    *
    -->  p1        text
    <--  p2        text
    form check_repo_authority changing authorized like authorised.
    fill structure for userexit in K_PCA_RESP_AUTHORITY_CHECK
      data: auth like pca_i_auth.          "46a MIC check K_PCA and G_GLTP
      auth-bukrs = -rrcty.
      clear authorized.
    check PrCtr/account/activity
      call function 'K_PCA_RESP_AUTHORITY_CHECK'
        exporting
          i_kokrs             = -racct
          i_vorgn             = 'REPP'
          i_actvt             = '28'
          i_auth              = auth
          i_no_dialog_message = 'X'
        exceptions
          no_authority        = 1
          data_missing        = 2
          others              = 3.
      if sy-subrc = 0.                                          "ok
    check ledger/version/record type
        call function 'PCA_G_GLTP_AUTH_CHECK'
          exporting
            rldnr            = -rrcty
          exceptions
            no_authorisation = 1
            others           = 2.
        if sy-subrc = 0.                   "ok, User is authorized
          authorized = 'X'.
        endif.
      endif.
    endform.                               " CHECK_REPO_AUTHORITY
    *&      Form  INIT_VARS
          Initialisieren diverser Hilfsvariablen und -tabellen           *
    form init_vars.
      data begin of nametab occurs 80. "Tabelle mit Feldern aus der RPCA2
              include structure dntab.
      data end of nametab.
      select single * from t000
                      client specified
                      where mandt = sy-mandt.
      refresh nametab.
      call function 'NAMETAB_GET'
        exporting
          only    = 'T'
          tabname = 'RPCA2'
        tables
          nametab = nametab.
    Übernehmen der Feldnamen, die auch in der GLPCA
    vorkommen.
      loop at nametab where fieldname ne 'KSL_CURR'
                        and fieldname ne 'HSL_CURR'
                        and fieldname ne 'EMPGE'               "ww/kb
                        and fieldname ne 'KONTY'.              "ww/kb
        move nametab-fieldname to tab_fields-name.
        append tab_fields.
      endloop.
    fill Fields of receiver for BBS                          "MIC46C
      call function 'RSTI_REPORT_FIELDS_FIND'
        exporting
          e_repid   = 'RCOPCA02'
          e_type    = 'R'
        tables
          it_fields = bbs_fieldtab.
    correct fieldnames
      read table bbs_fieldtab with key rfield = 'PRCTR'.
      if sy-subrc = 0.
        bbs_fieldtab-rfield = 'RPRCTR'.
        modify bbs_fieldtab index sy-tabix.
      endif.
      read table bbs_fieldtab with key rfield = 'PPRCTR'.
      if sy-subrc = 0.
        bbs_fieldtab-rfield = 'SPRCTR'.
        modify bbs_fieldtab index sy-tabix.
      endif.
      read table bbs_fieldtab with key rfield = 'BUKRS'.
      if sy-subrc = 0.
        bbs_fieldtab-rfield = 'RBUKRS'.
        modify bbs_fieldtab index sy-tabix.
      endif.
    Unicode
      class cl_abap_char_utilities definition load.
      clear hex00 with cl_abap_char_utilities=>minchar.
      clear hexff with cl_abap_char_utilities=>maxchar.
    endform.                               " INIT_VARS
          FORM FILL_LISTHEADER                                          *
          List-Header in Abhängigkeit der selektierten Daten            *
    form fill_listheader.
      read table i_glpca index 1.
      if sy-subrc ne 0.
        exit.
      endif.
      t_listheader-typ  = 'S'.
      t_listheader-key  = 'Ledger              '(h01).
      if cnt_rldnr <= 1.
        t_listheader-info = i_glpca-rldnr.
      else.
        t_listheader-info = '*'.
      endif.
      append t_listheader.
      t_listheader-typ  = 'S'.
      t_listheader-key  = 'Kostenrechnungskreis'(h02).
      if  cnt_kokrs <= 1.
        t_listheader-info = i_glpca-kokrs.
      else.
        t_listheader-info = '*'.
      endif.
      append t_listheader.
      t_listheader-typ  = 'S'.
      t_listheader-key  = 'Buchungskreis       '(h03).
      if cnt_bukrs <= 1.
        t_listheader-info = i_glpca-rbukrs.
      else.
        t_listheader-info = '*'.
      endif.
      append t_listheader.
      t_listheader-typ  = 'S'.
      t_listheader-key  = 'Buchungsperiode     '(h04).
      if cnt_poper <= 1.
        t_listheader-info = i_glpca-poper.
      else.
        t_listheader-info = '*'.
      endif.
      append t_listheader.
      if cnt_ryear <= 1.
        t_listheader-typ  = 'S'.
        t_listheader-key  = 'Geschäftsjahr       '(h05).
        t_listheader-info = i_glpca-ryear.
        append t_listheader.
      endif.
      t_listheader-typ  = 'S'.
      t_listheader-key  = 'Version             '(h06).
      if cnt_rvers <= 1.
        t_listheader-info = i_glpca-rvers.
      else.
        t_listheader-info = '*'.
      endif.
      append t_listheader.
    endform.                    "fill_listheader
    *&      Form  FIELDCAT_FILL
    *&      Aufbau des Feldkataloges für den K_KKB_LIST_DISPLAY,           *
    *&      bzw REUSE_ALV_LIST_DISPLAY,                                    *
    *&      weitere Infos enthält die FktBaustein-Doku                     *
    form fieldcat_fill.
      data: i type i value 0.
      refresh t_fieldcat.
    Ledger
    if cnt_rldnr > 1.
      add 1 to i.
      clear afield.
      afield-col_pos     = i.
      afield-fieldname   = 'RLDNR'.
      afield-no_sum      = 'X'.
      afield-no_out      = 'X'.
      afield-key         = 'X'.
      afield-ref_tabname = 'GLPCA'.
      afield-sp_group    = '1'.
      append afield to t_fieldcat.
    endif.
    Satzart
      add 1 to i.
      clear afield.
      afield-col_pos     = i.
      afield-fieldname   = 'RRCTY'.
      afield-no_sum      = 'X'.
      afield-ref_tabname = 'GLPCA'.
      afield-no_out      = 'X'.
      afield-sp_group    = '1'.
      append afield to t_fieldcat.
    Version
    if cnt_rvers > 1.
      add 1 to i.
      clear afield.
      afield-col_pos     = i.
      afield-fieldname   = 'RVERS'.
      afield-no_sum      = 'X'.
      afield-ref_tabname = 'GLPCA'.
      afield-no_out      = 'X'.
      afield-sp_group    = '1'.
      append afield to t_fieldcat.
    endif.
    Periode
    if cnt_poper > 1.
      add 1 to i.
      clear afield.
      afield-col_pos     = i.
      afield-fieldname   = 'POPER'.
      afield-no_sum      = 'X'.
      afield-ref_tabname = 'GLPCA'.
      afield-no_out      = 'X'.
      afield-sp_group    = '1'.
      append afield to t_fieldcat.
    endif.
    Geschäftsjahr
    if cnt_ryear > 1.
      add 1 to i.
      clear afield.
      afield-col_pos     = i.
      afield-fieldname   = 'RYEAR'.
      afield-no_sum      = 'X'.
      afield-ref_tabname = 'GLPCA'.
      afield-no_out      = 'X'.
      afield-sp_group    = '1'.
      append afield to t_fieldcat.
    endif.
    Referenzbelegtyp
      add 1 to i.
      clear afield.
      afield-col_pos     = i.
      afield-fieldname   = 'REFDOCCT'.
      afield-ref_tabname = 'GLPCA'.
      afield-key_sel     = 'X'.
      afield-no_sum      = 'X'.
      afield-sp_group    = '2'.
      afield-seltext_s   = 'Typ'(t01).
      afield-seltext_m   = 'Belegtyp'(t02).
      afield-seltext_l   = 'Ref.Belegtyp'(t03).
      afield-outputlen   = 3. "Platz für die Sterne der Zwischensummen
    if not show_ref is initial.
      afield-key = 'X'.
    else.
       afield-no_out = 'X'.
    endif.
      append afield to t_fieldcat.
    Referenzbelegnummer
      add 1 to i.
      clear afield.
      afield-col_pos     = i.
      afield-fieldname   = 'REFDOCNR'.
      afield-ref_tabname = 'GLPCA'.
      afield-key_sel     = 'X'.
      afield-no_sum      = 'X'.
      afield-sp_group    = '2'.
      afield-seltext_s  = 'Refbeleg'(t04).
      afield-seltext_m  = 'Refbelegnr'(t05).
      afield-seltext_l  = 'Ref.Belegnummer'(t06).
    if not show_ref is initial.
      afield-key = 'X'.
    else.
       afield-no_out = 'X'.
    endif.
      append

    Hi Prabhu,
    You are right, problem is with Field Catalog...
    When I use  FM 'REUSE_ALV_GRID_DISPLAY'  it is dumping...
    When i tried with FM 'REUSE_ALV_LIST_DISPLAY'  it is working perfectly....
    how can i use FM 'REUSE_ALV_GRID_DISPLAY' without dumping????
    do i need to pass any thing in FM????
    Here is the dump:
    Runtime Errors         MESSAGE_TYPE_X                                
           Occurred on     12/21/2006 at 01:03:24                                                                               
    The current application triggered a termination with a short dump.   
                                                             What happened?                                                       
    The current application program detected a situation which really    
    should not occur. Therefore, a termination with a short dump was     
    triggered on purpose by the key word MESSAGE (type X).               
                                                         Error analysis                                                       
    Short text of error message:                                                                               
    Technical information about the message:                             
    Message classe...... "0K "                                           
    Number.............. 000 
    User, transaction...                                                                               
    Language key........ "E"                                                    
    Transaction......... "SE38 "                                                
    Program............. "SAPLSLVC "                                            
    Screen.............. "SAPLSLVC_FULLSCREEN 0500"                             
    Screen line......... 3                                                                               
    Information on where termination occurred                                                                               
    The termination occurred in the ABAP program "SAPLSLVC " in "LINE_OUT_NEW_2".
    The main program was "ZRCOPCA02 ".                                          
    The termination occurred in line 918 of the source code of the (Include)    
    program "LSLVCF01 "                                                        
    of the source code of program "LSLVCF01 " (when calling the editor 9180).   
                                                             Source code extract                                                                               
    008880         gs_roid-row_id = rs_row-index * -1.                          
    008890       endif.                                                         
    008900       gs_roid-sub_row_id = rs_row-rowtype+7(10).                     
    008910       gs_poid-row_id = gs_roid-row_id.                               
    008920       gs_poid-sub_row_id = gs_roid-sub_row_id.                       
    008930       gs_poid-rowtype    = rs_row-rowtype.                           
    008940       gs_poid-index      = rs_row-index.                             
    008950       insert gs_poid into table rt_poid.  
    008960     endif.                                                               
    008970     append gs_roid to rt_roid.                                           
    008980                                                                          
    008990     loop at rt_fieldcat assigning <ls_fieldcat> where tech ne 'X' and    
    009000                                                       no_out ne 'X'.     
    009010                                                                          
    009020       if gflg_invisible = 'X'.                                           
    009030         if <ls_fieldcat>-do_sum is initial.                              
    009040           clear gflg_invisible.                                          
    009050           continue.                                                      
    009060         else.                                                            
    009070           clear g_col_counter.                                           
    009080           clear gflg_invisible.                                          
    009090         endif.                                                           
    009100       endif.                                                             
    009110                                                                          
    009120       clear gs_lvc_data.                                                 
    009130       clear g_style.                                                     
    009140                                                                          
    009150       assign component                                                   
    009160              <ls_fieldcat>-fieldname of structure rt_data to <g_field>.  
    009170       if sy-subrc ne 0.                                                  
         >         message x000(0k).                                                
    009190       endif.                                                             
    009200                                                                          
    009210       g_col_counter = g_col_counter + 1.                                 
    009220                                                                          
    009230       gs_lvc_data-row_pos = r_row_counter.                               
    009240       gs_lvc_data-col_pos = g_col_counter.                               
    009250       gs_lvc_data-row_id  = gs_roid-row_id.                              
    009260       gs_lvc_data-sub_row_id = gs_roid-sub_row_id.                       
    009270                                                                          
    009280   *   Endtotal and average                                               
    009290       if rs_row-rowtype(1) ca 'T' and <ls_fieldcat>-do_sum = 'C'.        
    009300   *     save the actual grouplevel information                    
    009310         gs_grouplevels = rs_grouplevels.                          
    009320         clear g_lines.                                            
    009330                                                                   
    009340   *     get number of lines of the collect table                  
    009350         describe table rt_data lines g_lines.                     
    009360   *     if there is only one line or the field has no references so
    009370   *     that only the first line has to be considered                                                                               
    Thanks,
    fractal
    null

  • Short dump

    Hi forum,
    Pls help me out...I'm getting short dump if i execute this..
    pls correct the code.......
    REPORT  ZPAY_REG NO STANDARD PAGE HEADING line-size 150 line-count
    65(3).
    TYPE-POOLS: slis.
    TABLES:
       payr,
       t012,
       t012k,
       t51r5.
    Data : begin of it occurs 0,
    zbukr like payr-zbukr, "paying company code
    hbkid like payr-hbkid, "house bank id
    hktid like payr-hktid, "account id
    bankl like t012-bankl, "bank key
    bankn like t012k-bankn, "bank account
    checf like payr-checf, "check number
    waers like payr-waers, "currency
    rwbtr like payr-rwbtr, "amount
    bancd like payr-bancd, "check encashment date
    vblnr like payr-vblnr, "payment document no
    pernr like payr-pernr, "personnel number
    voidr like payr-voidr, "void reason code
    rzawe like payr-rzawe, "payment method
    laufd like payr-laufd, "checks from payment run
    empfg like payr-empfg, "payee code
    gjahr like payr-gjahr, "fiscal year
    duedt like t51r5-duedt, "due date
    zaldt like payr-zaldt, "payment date
    znme1 like payr-znme1, "payee name
    rec_belnr like payr-rec_belnr, " voucher number
    end of it.
    *"Payment Register
    *A listing of payments made by vendor for a specific payment run or
    *group of runs.  Data elements include but not limited to:
    **• Payment date
    *• Pay
    *• Payment number
    *• Payee name/number
    *• Voucher number
    *• Amount
    *• Period from/to
    *Frequency: Every payment run, ad hoc for a timeframe, monthly
    DATA: it_fldcat TYPE slis_fieldcat_alv OCCURS 0,
          wa_fldcat TYPE slis_fieldcat_alv.
    DATA : it_sort TYPE slis_sortinfo_alv OCCURS 0,
    wa_sort TYPE slis_sortinfo_alv.
    DATA: it_events TYPE slis_t_event,
          wa_events TYPE slis_alv_event.
    "DATA : v_txt TYPE string.
    SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
    SELECT-OPTIONS : s_zaldt FOR payr-zaldt, " payment date
                     s_vblnr FOR payr-vblnr, " payment document number
                     s_znme1 FOR payr-znme1, " payee name
                     s_rec FOR payr-rec_belnr, "voucher number
                     s_waers for payr-waers.      "amount
                    s_duedt for t51r5-duedt.   "due date
    SELECTION-SCREEN END OF BLOCK b1.
    SELECT a~zbukr
               a~hbkid
               a~hktid
               a~checf
               a~waers
               a~rwbtr
               a~bancd
               a~vblnr
               a~pernr
               a~voidr
               a~rzawe
               a~laufd
               a~empfg
               a~gjahr
               a~zaldt
               a~znme1
               a~rec_belnr
               b~bankl
               c~bankn
               d~duedt
             INTO CORRESPONDING FIELDS OF TABLE it
             FROM payr AS a
             INNER JOIN t012 AS b
             ON ahbkid = bhbkid
             inner join t012k as c
             on bhbkid = chbkid
    and        on ahbkid = chbkid
             inner join t51r5 as d
             on cbukrs = dbukrs
            and on awaers = dwaers
             WHERE a~zaldt IN s_zaldt
               AND a~vblnr IN s_vblnr
               AND a~znme1 IN s_znme1
               AND a~rec_belnr IN s_rec
               AND a~waers IN s_waers.
    loop at it.
    write : / it-zbukr, it-hbkid, it-hktid, it-checf, it-waers, it-rwbtr,
    it-bancd, it-vblnr, it-pernr, it-voidr, it-rzawe, it-laufd, it-empfg,
    it-gjahr, it-zaldt, it-znme1, it-rec_belnr, it-bankl, it-bankn, it-duedt
    endloop.
    **--show data--
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'   "Displaying data in grid format
        EXPORTING
          i_callback_program                = sy-repid
          it_fieldcat   = it_fldcat     "fieldcatalog
          it_sort       = it_sort[]     "Sort
          it_events     = it_events
        TABLES
          t_outtab      = it     "internal table to output
        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.
                        " SHOW_DATA
    PERFORM BUILD_FLDCAT.
    *&      Form  BUILD_FLDCAT
    FORM build_fldcat .
      DEFINE bld_fcat.     "Macro to create manual field catalog
        wa_fldcat-col_pos = &1.
        wa_fldcat-fieldname = &2.
        wa_fldcat-outputlen = &3.
        wa_fldcat-seltext_s = &4.
        wa_fldcat-ddictxt = &5.
        append wa_fldcat to it_fldcat.
        clear wa_fldcat.
      END-OF-DEFINITION.
      bld_fcat 1 'zbukr' 4    'Payee Company Code' 'L'.
      bld_fcat 2 'hbkid' 5    'Short Key for a house bank' 'L'.
      bld_fcat 3 'hktid' 5    'ID for account details' 'L'.
      bld_fcat 4 'checf' 13   'Check number from' 'L'.
      bld_fcat 5 'waers' 5    'Currency Key' 'L'.
      bld_fcat 6 'rwbtr' 13   'Amount paid in tha payment currency' 'L'.
      bld_fcat 7 'bancd' 8    'Check encashment date' 'L'.
      bld_fcat 8 'vblnr' 10   'Document number of the payment document' 'L'.
      bld_fcat 9 'pernr' 8    'Personnel number' 'L'.
      bld_fcat 10 'voidr' 2   'Check region code' 'L'.
      bld_fcat 11 'rzawe' 1   'payment method' 'L'.
      bld_fcat 12 'laufd' 8   'Date on which the program is to be run' 'L'.
      bld_fcat 13 'empfg' 16  'Payee code' 'L'.
      bld_fcat 14 'gjahr' 4   'Fiscal Year' 'L'.
      bld_fcat 15 'zaldt' 8   'Probable payment date' 'L'.
      bld_fcat 16 'znme1' 35  'Payee Name' 'L'.
      bld_fcat 17 'rec_belnr' 10 'Accounting Document Number Ref to Vocher Number' 'L'.
      bld_fcat 18 'bankl' 15  'Bank key' 'L'.
      bld_fcat 19 'bankn' 18  'Bank account number' 'L'.
      bld_fcat 20 'duedt' 8   'Due Date' 'L'.
    LOOP AT it_fldcat INTO wa_fldcat.
       IF wa_fldcat-fieldname = 'LIFNR'.
         wa_fldcat-key = 'X'.
       ELSEIF wa_fldcat-fieldname = 'DMBTR'.
         wa_fldcat-do_sum = 'X'.
       ELSEIF wa_fldcat-fieldname = 'WRBTR'.
         wa_fldcat-do_sum = 'X'.
       ENDIF.
       MODIFY it_fldcat FROM wa_fldcat.
       CLEAR wa_fldcat.
    ENDLOOP.
    ENDFORM.

    Hi Mahathi,
    Please check the below code which is corrected.
    *& Report  ZPAY_REG                                                   *
    REPORT ZPAY_REG NO STANDARD PAGE HEADING line-size 150 line-count
    65(3).
    TYPE-POOLS: slis.
    TABLES:
    payr,
    t012,
    t012k,
    t51r5.
    DATA : BEGIN OF it OCCURS 0,
            zbukr LIKE payr-zbukr, "paying company code
            hbkid LIKE payr-hbkid, "house bank id
            hktid LIKE payr-hktid, "account id
            bankl LIKE t012-bankl, "bank key
            bankn LIKE t012k-bankn, "bank account
            checf LIKE payr-checf, "check number
            waers LIKE payr-waers, "currency
            rwbtr LIKE payr-rwbtr, "amount
            bancd LIKE payr-bancd, "check encashment date
            vblnr LIKE payr-vblnr, "payment document no
            pernr LIKE payr-pernr, "personnel number
            voidr LIKE payr-voidr, "void reason code
            rzawe LIKE payr-rzawe, "payment method
            laufd LIKE payr-laufd, "checks from payment run
            empfg LIKE payr-empfg, "payee code
            gjahr LIKE payr-gjahr, "fiscal year
            duedt LIKE t51r5-duedt, "due date
            zaldt LIKE payr-zaldt, "payment date
            znme1 LIKE payr-znme1, "payee name
            rec_belnr LIKE payr-rec_belnr, " voucher number
    END OF it.
    *"Payment Register
    *A listing of payments made by vendor for a specific payment run or
    *group of runs. Data elements include but not limited to:
    **• Payment date
    *• Pay
    *• Payment number
    *• Payee name/number
    *• Voucher number
    *• Amount
    *• Period from/to
    *Frequency: Every payment run, ad hoc for a timeframe, monthly
    DATA: it_fldcat TYPE slis_fieldcat_alv OCCURS 0,
    wa_fldcat TYPE slis_fieldcat_alv.
    DATA : it_sort TYPE slis_sortinfo_alv OCCURS 0,
    wa_sort TYPE slis_sortinfo_alv.
    DATA: it_events TYPE slis_t_event,
    wa_events TYPE slis_alv_event.
    "DATA : v_txt TYPE string.
    SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
    SELECT-OPTIONS : s_zaldt FOR payr-zaldt, " payment date
    s_vblnr FOR payr-vblnr, " payment document number
    s_znme1 FOR payr-znme1, " payee name
    s_rec FOR payr-rec_belnr, "voucher number
    s_waers FOR payr-waers, "amount
    s_duedt FOR t51r5-duedt. "due date
    SELECTION-SCREEN END OF BLOCK b1.
    SELECT a~zbukr
    a~hbkid
    a~hktid
    a~checf
    a~waers
    a~rwbtr
    a~bancd
    a~vblnr
    a~pernr
    a~voidr
    a~rzawe
    a~laufd
    a~empfg
    a~gjahr
    a~zaldt
    a~znme1
    a~rec_belnr
    b~bankl
    c~bankn
    d~duedt
    INTO CORRESPONDING FIELDS OF TABLE it
    FROM payr AS a
    INNER JOIN t012 AS b
    ON ahbkid = bhbkid
    INNER JOIN t012k AS c
    ON bhbkid = chbkid
    AND ahbkid = chbkid
    INNER JOIN t51r5 AS d
    ON cbukrs = dbukrs
    AND awaers = dwaers
    WHERE a~zaldt IN s_zaldt
    AND a~vblnr IN s_vblnr
    AND a~znme1 IN s_znme1
    AND a~rec_belnr IN s_rec
    AND a~waers IN s_waers.
    *LOOP AT it.
    WRITE : / it-zbukr, it-hbkid, it-hktid, it-checf, it-waers, it-rwbtr,
    it-bancd, it-vblnr, it-pernr, it-voidr, it-rzawe, it-laufd, it-empfg,
    *it-gjahr, it-zaldt, it-znme1, it-rec_belnr, it-bankl, it-bankn,
    *it-duedt
    *ENDLOOP.
    *--show data--
    " SHOW_DATA
    PERFORM build_fldcat.
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' "Displaying data in grid format
    EXPORTING
        i_callback_program = sy-repid
        it_fieldcat = it_fldcat[] "fieldcatalog
        it_sort = it_sort[] "Sort
        it_events = it_events
    TABLES
        t_outtab = it "internal table to output
    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 BUILD_FLDCAT
    FORM build_fldcat .
      DEFINE bld_fcat. "Macro to create manual field catalog
        wa_fldcat-col_pos = &1.
        wa_fldcat-fieldname = &2.
        wa_fldcat-outputlen = &3.
        wa_fldcat-seltext_s = &4.
        wa_fldcat-ddictxt = &5.
        append wa_fldcat to it_fldcat.
        clear wa_fldcat.
      END-OF-DEFINITION.
      bld_fcat 1 'zbukr' 4 'Payee Company Code' 'L'.
      bld_fcat 2 'hbkid' 5 'Short Key for a house bank' 'L'.
      bld_fcat 3 'hktid' 5 'ID for account details' 'L'.
      bld_fcat 4 'checf' 13 'Check number from' 'L'.
      bld_fcat 5 'waers' 5 'Currency Key' 'L'.
      bld_fcat 6 'rwbtr' 13 'Amount paid in tha payment currency' 'L'.
      bld_fcat 7 'bancd' 8 'Check encashment date' 'L'.
      bld_fcat 8 'vblnr' 10 'Document number of the payment document' 'L'.
      bld_fcat 9 'pernr' 8 'Personnel number' 'L'.
      bld_fcat 10 'voidr' 2 'Check region code' 'L'.
      bld_fcat 11 'rzawe' 1 'payment method' 'L'.
      bld_fcat 12 'laufd' 8 'Date on which the program is to be run' 'L'.
      bld_fcat 13 'empfg' 16 'Payee code' 'L'.
      bld_fcat 14 'gjahr' 4 'Fiscal Year' 'L'.
      bld_fcat 15 'zaldt' 8 'Probable payment date' 'L'.
      bld_fcat 16 'znme1' 35 'Payee Name' 'L'.
    bld_fcat 17 'rec_belnr' 10 'Account DocuNumberRef to Vocher Number' 'L'.
      bld_fcat 18 'bankl' 15 'Bank key' 'L'.
      bld_fcat 19 'bankn' 18 'Bank account number' 'L'.
      bld_fcat 20 'duedt' 8 'Due Date' 'L'.
      LOOP AT it_fldcat INTO wa_fldcat.
        IF wa_fldcat-fieldname = 'LIFNR'.
          wa_fldcat-key = 'X'.
        ELSEIF wa_fldcat-fieldname = 'DMBTR'.
          wa_fldcat-do_sum = 'X'.
        ELSEIF wa_fldcat-fieldname = 'WRBTR'.
          wa_fldcat-do_sum = 'X'.
        ENDIF.
        MODIFY it_fldcat FROM wa_fldcat.
        CLEAR wa_fldcat.
      ENDLOOP.
    ENDFORM.                    "build_fldcat
    Please reward points if it is answered and close the thread.
    Regards,
    Hari

  • Short dump in alv too many parameters in perform)

    I M GETTING PROBLEM IN THIS PROGRAM AGAIN.
    Getting short dump too many paramamerets in perform
    <CODE>Report Z_50840_ALV
    Line-size 80
    Line-count 64
    Message-id ZZ
    No Standard Page Heading.
    Copyright statement *
    @ copyright 2007 by Intelligroup Inc. *
    Program Details *
    Program Name: Z_50840_ALV
    Date : 19.07.2007
    Author : Vasudevaraman V
    Description : Test Program
    Transport No:
    Change Log *
    Date :
    Author :
    Description :
    Transport No:
    Tables *
    Tables: vbrk.
    Type Pools *
    Type-Pools: SLIS.
    Variables *
    Data: GV_REPID TYPE SY-REPID.
    Structures *
    Data: BEGIN OF GIT_VBRK OCCURS 0,
    VBELN LIKE VBRK-VBELN, "Billing Document
    FKART LIKE VBRK-FKART, "Billing Type
    KNUMV LIKE VBRK-KNUMV, "Number of the document condition
    BUKRS LIKE VBRK-BUKRS, "Company code
    NETWR LIKE VBRK-NETWR, "Net value in document currency
    WAERK LIKE VBRK-WAERK, "SD document currency in basic list
    END OF GIT_VBRK,
    GIT_FCAT TYPE SLIS_T_FIELDCAT_ALV,
    WA_FCAT TYPE slis_fieldcat_alv,
    GIT_EVENTS TYPE SLIS_T_EVENT,
    WA_EVENTS TYPE SLIS_ALV_EVENT.
    Field Symbols *
    Field-symbols: <fs_xxxx>.
    Selection Screen *
    SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
    SELECT-OPTIONS: S_VBELN FOR VBRK-VBELN.
    PARAMETERS: LISTDISP RADIOBUTTON GROUP G1,
    GRIDDISP RADIOBUTTON GROUP G1 DEFAULT 'X'.
    SELECTION-SCREEN END OF BLOCK B1.
    Initialization *
    Initialization.
    GV_REPID = SY-REPID.
    At Selection Screen *
    At selection-screen.
    Start Of Selection *
    Start-of-selection.
    SET PF-STATUS 'ABC'(001).
    PERFORM GET_BILLING_DETAILS.
    PERFORM FIELD_CATALOGUE.
    PERFORM GET_EVENTS.
    End Of Selection *
    End-of-selection.
    PERFORM DISPLAY_BILLING_DETAILS.
    Top Of Page *
    Top-of-page.
    End Of Page *
    End-of-page.
    *& Form GET_BILLING_DETAILS
    text
    --> p1 text
    <-- p2 text
    FORM GET_BILLING_DETAILS .
    SELECT VBELN
    FKART
    KNUMV
    BUKRS
    NETWR
    WAERK
    FROM VBRK
    INTO TABLE GIT_VBRK
    WHERE VBELN IN S_VBELN.
    IF SY-SUBRC = 0.
    SORT GIT_VBRK BY VBELN.
    ENDIF.
    ENDFORM. " GET_BILLING_DETAILS
    *& Form FIELD_CATALOGUE
    text
    --> p1 text
    <-- p2 text
    FORM FIELD_CATALOGUE .
    CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
    EXPORTING
    I_PROGRAM_NAME = GV_REPID
    I_INTERNAL_TABNAME = 'GIT_VBRK'
    I_STRUCTURE_NAME = I_STRUCTURE_NAME
    I_CLIENT_NEVER_DISPLAY = 'X'
    I_INCLNAME = GV_REPID
    I_BYPASSING_BUFFER = 'X'
    I_BUFFER_ACTIVE = ' '
    CHANGING
    CT_FIELDCAT = GIT_FCAT
    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. " FIELD_CATALOGUE
    *& Form DISPLAY_BILLING_DETAILS
    text
    --> p1 text
    <-- p2 text
    FORM DISPLAY_BILLING_DETAILS .
    IF LISTDISP = 'X'.
    CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
    EXPORTING
    I_INTERFACE_CHECK = ' '
    I_BYPASSING_BUFFER = 'X'
    I_BUFFER_ACTIVE = ' '
    I_CALLBACK_PROGRAM = GV_REPID
    I_CALLBACK_PF_STATUS_SET = ' '
    I_CALLBACK_USER_COMMAND = ' '
    I_STRUCTURE_NAME = I_STRUCTURE_NAME
    IS_LAYOUT = IS_LAYOUT
    IT_FIELDCAT = GIT_FCAT
    IT_EXCLUDING = IT_EXCLUDING
    IT_SPECIAL_GROUPS = IT_SPECIAL_GROUPS
    IT_SORT = IT_SORT
    IT_FILTER = IT_FILTER
    IS_SEL_HIDE = IS_SEL_HIDE
    I_DEFAULT = 'X'
    I_SAVE = ' '
    IS_VARIANT = IS_VARIANT
    IT_EVENTS = GIT_EVENTS
    IT_EVENT_EXIT = IT_EVENT_EXIT
    IS_PRINT = IS_PRINT
    IS_REPREP_ID = 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 = IR_SALV_LIST_ADAPTER
    IT_EXCEPT_QINFO = IT_EXCEPT_QINFO
    I_SUPPRESS_EMPTY_DATA = ABAP_FALSE
    IMPORTING
    E_EXIT_CAUSED_BY_CALLER = E_EXIT_CAUSED_BY_CALLER
    ES_EXIT_CAUSED_BY_USER = ES_EXIT_CAUSED_BY_USER
    TABLES
    T_OUTTAB = GIT_VBRK
    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.
    ELSE.
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
    I_INTERFACE_CHECK = ' '
    I_BYPASSING_BUFFER = 'X'
    I_BUFFER_ACTIVE = ' '
    I_CALLBACK_PROGRAM = GV_REPID
    I_CALLBACK_PF_STATUS_SET = ' '
    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_STRUCTURE_NAME
    I_BACKGROUND_ID = ' '
    I_GRID_TITLE = I_GRID_TITLE
    I_GRID_SETTINGS = I_GRID_SETTINGS
    IS_LAYOUT = IS_LAYOUT
    IT_FIELDCAT = GIT_FCAT
    IT_EXCLUDING = IT_EXCLUDING
    IT_SPECIAL_GROUPS = IT_SPECIAL_GROUPS
    IT_SORT = IT_SORT
    IT_FILTER = IT_FILTER
    IS_SEL_HIDE = IS_SEL_HIDE
    I_DEFAULT = 'X'
    I_SAVE = ' '
    IS_VARIANT = IS_VARIANT
    IT_EVENTS = GIT_EVENTS
    IT_EVENT_EXIT = IT_EVENT_EXIT
    IS_PRINT = IS_PRINT
    IS_REPREP_ID = 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_ALV_GRAPHICS
    IT_HYPERLINK = IT_HYPERLINK
    IT_ADD_FIELDCAT = IT_ADD_FIELDCAT
    IT_EXCEPT_QINFO = IT_EXCEPT_QINFO
    IR_SALV_FULLSCREEN_ADAPTER = IR_SALV_FULLSCREEN_ADAPTER
    IMPORTING
    E_EXIT_CAUSED_BY_CALLER = E_EXIT_CAUSED_BY_CALLER
    ES_EXIT_CAUSED_BY_USER = ES_EXIT_CAUSED_BY_USER
    TABLES
    T_OUTTAB = GIT_VBRK
    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.
    ENDIF.
    ENDFORM. " DISPLAY_BILLING_DETAILS
    *& Form GET_EVENTS
    text
    --> p1 text
    <-- p2 text
    FORM GET_EVENTS .
    CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
    EXPORTING
    I_LIST_TYPE = 0
    IMPORTING
    ET_EVENTS = GIT_EVENTS
    EXCEPTIONS
    LIST_TYPE_WRONG = 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.
    LOOP AT GIT_EVENTS INTO WA_EVENTS.
    CASE WA_EVENTS-NAME.
    WHEN 'USER_COMMAND'.
    WA_EVENTS-FORM = 'USER_COMMAND'.
    ENDCASE.
    MODIFY GIT_EVENTS FROM WA_EVENTS INDEX SY-TABIX.
    ENDLOOP.
    ENDFORM. " GET_EVENTS
    FORM USER_COMMAND.
    WRITE :/ 'USER_COMMAND'.
    ENDFORM.</CODE>.
    REGARDS,
    SURAJ

    I have run the program in my system and getting the following display instead of dump.
    Bill.Doc.  BillT Doc.cond.  CoCd             Net value Curr.
    90000763   B2    0000002800 1000                 0.00  DEM
    90005177   F2    0000012141 1000             5,500.00  DEM
    90005178   F2    0000012144 1000            32,838.00  DEM
    90005179   F2    0000012146 1000             6,100.00  DEM
    90005180   F2    0000012147 1000             6,100.00  DEM
    90005182   S1    0000012226 1000             5,500.00  DEM
    90005183   S1    0000012227 1000            32,838.00  DEM
    90005184   S1    0000012228 1000             6,100.00  DEM
    90005185   S1    0000012229 1000             6,100.00  DEM
    90005186   F2    0000012230 1000             6,100.00  DEM
    90005187   F2    0000012231 1000             6,100.00  DEM
    90005188   F2    0000012232 1000            32,778.00  DEM
    90005189   F2    0000012233 1000            34,354.00  DEM
    90005190   F2    0000012234 1000            19,991.00  DEM
    90005191   F2    0000012235 1000            19,719.00  DEM
    90005192   F2    0000012236 1000            43,004.00  DEM
    90005193   F2    0000012237 1000             9,242.00  DEM
    90005194   F2    0000012238 1000            12,156.00  DEM
    90005195   F2    0000012239 1000             7,294.00  DEM
    90005196   F2    0000012240 1000             9,694.00  DEM
    90005197   F2    0000012241 1000            32,838.00  DEM
    90005198   F2    0000012242 1000             9,352.00  DEM
    90005199   F2    0000012243 1000            13,013.00  DEM

  • Short dump while doing subtotal in the ALV report

    Hi All,
    I am getting run time error while doing the sub total and total in the ALV .
    error is "MESSAGE_TYPE_X" and
    discription is  "The current application program detected a situation which really
    should not occur. Therefore, a termination with a short dump was
    triggered on purpose by the key word MESSAGE (type X)."
    Can anyone help me regarding this.
    My alv field catog is like below
      DATA: ls_fieldcat TYPE slis_fieldcat_alv,
            ls_sort     TYPE SLIS_SORTINFO_ALV.
      CLEAR:ls_fieldcat,
            ls_sort.
      REFRESH ot_fieldcat.
      ls_fieldcat-FIELDNAME   = 'LEASE_NUMBER'.
      ls_fieldcat-SELTEXT_M   = 'Lease Number'(001).
      ls_fieldcat-COL_POS     = 0.
      ls_fieldcat-OUTPUTLEN   = 10.
      ls_fieldcat-DO_SUM      = 'X'.
      ls_fieldcat-KEY         = 'X'.
      APPEND ls_fieldcat TO ot_fieldcat.
      CLEAR  ls_fieldcat.
      ls_fieldcat-FIELDNAME   = 'LEASE_TYPE'.
      ls_fieldcat-SELTEXT_M   = 'Lease Type'(002).
      ls_fieldcat-COL_POS     = 1.
      ls_fieldcat-OUTPUTLEN   = 5.
      APPEND ls_fieldcat TO ot_fieldcat.
      CLEAR  ls_fieldcat.
      ls_fieldcat-FIELDNAME   = 'LEGACY_NUM'.
      ls_fieldcat-SELTEXT_M   = 'Legacy Contract No'(003).
      ls_fieldcat-COL_POS     = 2.
      ls_fieldcat-OUTPUTLEN   = 10.
      APPEND ls_fieldcat TO ot_fieldcat.
      CLEAR  ls_fieldcat.
      ls_fieldcat-FIELDNAME   = 'CUSTOMER'.
      ls_fieldcat-SELTEXT_M   = 'Customer'(004).
      ls_fieldcat-COL_POS     = 3.
      APPEND ls_fieldcat TO ot_fieldcat.
      CLEAR  ls_fieldcat.
      ls_fieldcat-FIELDNAME   = 'STATUS'.
      ls_fieldcat-SELTEXT_M   = 'Status'(017).
      ls_fieldcat-COL_POS     = 16.
      ls_fieldcat-OUTPUTLEN   = 10.
      APPEND ls_fieldcat TO ot_fieldcat.
      CLEAR  ls_fieldcat.
      ls_fieldcat-FIELDNAME   = 'GATEIN_DT'.
      ls_fieldcat-SELTEXT_M   = 'Gate In Date'(018).
      ls_fieldcat-COL_POS     = 17.
      ls_fieldcat-OUTPUTLEN   = 10.
      APPEND ls_fieldcat TO ot_fieldcat.
      CLEAR  ls_fieldcat.
      ls_fieldcat-FIELDNAME   = 'SVALUE'.
      ls_fieldcat-COL_POS     = 18.
      ls_fieldcat-DO_SUM      = 'X'.
      ls_fieldcat-OUTPUTLEN   = 12.
      APPEND ls_fieldcat TO ot_fieldcat.
      CLEAR  ls_fieldcat.
    DATA SORTING AND SUBTOTAL
      CLEAR ls_sort.
      ls_sort-FIELDNAME = 'LEASE_NUMBER'.
      ls_sort-SPOS      = 0.
      ls_sort-UP        = 'X'.
      ls_sort-SUBTOT    = 'X'.
      APPEND ls_sort TO GT_SORT.
    If i coment the code relate dto 'SVALUE' i am getting output without sub total and total.
    if i uncomment the same then I am getting short dump.

    Hi,
    Try this coding,
    TYPE-POOLS: SLIS.                      " ALV GLOBAL TYPES
    *      FORM  F_READ_DATA
    FORM F_READ_DATA.
      SELECT * INTO CORRESPONDING FIELDS OF TABLE GT_VBAK
               FROM VBAK
                 UP TO P_MAX ROWS
              WHERE KUNNR IN S_KUNNR
                AND VBELN IN S_VBELN
                AND VKORG IN S_VKORG.
    ENDFORM.                               " F_READ_DATA
    *      FORM  F_DISPLAY_DATA
    FORM F_DISPLAY_DATA.
      DEFINE M_FIELDCAT.
        ADD 1 TO LS_FIELDCAT-COL_POS.
        LS_FIELDCAT-FIELDNAME   = &1.
        LS_FIELDCAT-REF_TABNAME = 'VBAK'.
        LS_FIELDCAT-DO_SUM      = &2.
        LS_FIELDCAT-CFIELDNAME  = &3.
        APPEND LS_FIELDCAT TO LT_FIELDCAT.
      END-OF-DEFINITION.
      DEFINE M_SORT.
        ADD 1 TO LS_SORT-SPOS.
        LS_SORT-FIELDNAME = &1.
        LS_SORT-UP        = 'X'.
        LS_SORT-SUBTOT    = &2.
        APPEND LS_SORT TO LT_SORT.
      END-OF-DEFINITION.
      DATA:
        LS_FIELDCAT TYPE SLIS_FIELDCAT_ALV,
        LT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
        LT_SORT     TYPE SLIS_T_SORTINFO_ALV,
        LS_SORT     TYPE SLIS_SORTINFO_ALV,
        LS_LAYOUT   TYPE SLIS_LAYOUT_ALV.
      M_FIELDCAT 'VKORG' ''  ''.
      M_FIELDCAT 'KUNNR' ''  ''.
      M_FIELDCAT 'VBELN' ''  ''.
      M_FIELDCAT 'NETWR' 'X' 'WAERK'.
      M_FIELDCAT 'WAERK' ''  ''.
      M_SORT 'VKORG' 'X'.                  " SORT BY VKORG AND SUBTOTAL
      M_SORT 'KUNNR' 'X'.                  " SORT BY KUNNR AND SUBTOTAL
      M_SORT 'VBELN' ''.                   " SORT BY VBELN
      LS_LAYOUT-CELL_MERGE = 'X'.
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
           EXPORTING
                IS_LAYOUT   = LS_LAYOUT
                IT_FIELDCAT = LT_FIELDCAT
                IT_SORT     = LT_SORT
           TABLES
                T_OUTTAB    = GT_VBAK.
    ENDFORM.                               " F_DISPLAY_DATA
    Regards,
    Nikhil.

  • Program giving dump when run in background

    Hi All,
    I have an ALV report in which I am using REUSE_ALV_GRID_DISPLAY.
    The report works perfectly in foreground. But when I execute in background I am getting dump.
    Dump details are given below.
    ShrtText
        Unable to fulfil request for 134217728 bytes of memory space.
    What happened?
        Each transaction requires some main memory space to process
        application data. If the operating system cannot provide any more
        space, the transaction is terminated.
    What can you do?
        Try to find out (e.g. by targetted data selection) whether the
        transaction will run with less main memory.
        If there is a temporary bottleneck, execute the transaction again
        If the error persists, ask your system administrator to check the
        following profile parameters:
        o  ztta/roll_area            (1.000.000 - 15.000.000)
               Classic roll area per user and internal mode
               usual amount of roll area per user and internal mode
        o  ztta/roll_extension       (10.000.000 - 500.000.000)
               Amount of memory per user in extended memory (EM)
        o  abap/heap_area_total      (100.000.000 - 1.500.000.000)
               Amount of memory (malloc) for all users of an application
               server. If several background processes are running on
               one server, temporary bottlenecks may occur.
               Of course, the amount of memory (in bytes) must also be
               available on the machine (main memory or file system swap).
               Caution:
               The operating system must be set up so that there is also
               enough memory for each process. Usually, the maximum address
               space is too small.
               Ask your hardware manufacturer or your competence center
               about this.
               In this case, consult your hardware vendor
        abap/heap_area_dia:        (10.000.000 - 1.000.000.000)
               Restriction of memory allocated to the heap with malloc
               for each dialog process.
        Parameters for background processes:
        abap/heap_area_nondia:        (10.000.000 - 1.000.000.000)
               Restriction of memory allocated to the heap with malloc
               for each background process.
        Other memory-relevant parameters are:
        em/initial_size_MB:         (35-1200)
               Extended memory area from which all users of an
               application server can satisfy their memory requirement.
        Make a note of the actions and input which caused the error.
        To resolve the problem, contact your SAP system administrator.
        You can use transaction ST22 (ABAP Dump Analysis) to view and administer
        termination messages, especially those beyond their normal deletion
        date.
    Error analysis
        More main memory area was requested.
        However, all the available space has been used up.
        Possible reasons:
        - Many (large) internal tables.
        - Many (large) programs active.
        - Deep nesting of subroutines with a lot of local data.
    Can you please help on this ?

    Hi,
    Check you code properly.
    The dump is because of an infinite loop which is running when you run the program in background and it is keeping appending or inserting the same table.
    Check teh same.
    regards,
    Ankur Parab

  • Field too short-DUMP

    Hi Folks,
    I am getting the following dump error.Can any one here please throw some light on this.
    Field too small when calculating totals in internal table.
    <b>In the internal table "\PROGRAM=ZFI\DATA=IT_HEADER[]", a SUM statement is used to calculate totals. However, the values are too large for the designated field.
    The name of the field is "KURSF".
    The name of the field is "KURSF".</b>
    The field "KURSF" in the program "ZFIR_IMPORT_REGISTER"
    be a different
    type (e.g. type P of appropriate length).
    REPORT  ZFI.
    TABLES: rbkp,
            rseg,
            bset,
            mara,
            lfa1,
            ekko,
            t161t.
    TYPE-POOLS: slis.
    TYPES: BEGIN OF TY_CUSTOM,
              WRBTR TYPE RSEG-WRBTR,
              KSCHL TYPE RSEG-KSCHL,
              EBELN TYPE RSEG-EBELN,
              EBELP TYPE RSEG-EBELP,
           END OF TY_CUSTOM.
    TYPES: BEGIN OF ty_itab,
          lfbnr LIKE rseg-lfbnr,               " GR NO
          belnr LIKE rbkp-belnr,               " MIRO doc.no.
          buzei LIKE rseg-buzei,               " MIRO line item number
          fidoc LIKE bkpf-belnr,               " accounting doc.no.
          matnr LIKE rseg-matnr,               " Material number
          maktx LIKE makt-maktx,               " material description
          xblnr LIKE rbkp-xblnr,               " Reference Document Number
          budat LIKE rbkp-budat,               " Posting Date in Document
          mwskz LIKE rseg-mwskz,               " Tax Code
          bklas LIKE rseg-bklas,               " Valuation Class
          menge LIKE rseg-menge,               " Quantity
          gjahr LIKE rseg-gjahr,               " Fiscal Year
          bldat LIKE rbkp-bldat,               " Document Date
          lifnr TYPE rbkp-lifnr,                "Vendor Code
          stcd1 TYPE lfa1-stcd1,                "Tin number
          matkl TYPE mara-matkl,                "Mat Desc
          name1 TYPE lfa1-name1,                "Vendor Name
          awkey TYPE bkpf-awkey,                "Reference Key
          str_suppl1 TYPE adrc-str_suppl1,      "Street
          post_code1 TYPE adrc-post_code1,      "Pincode
          city1 TYPE adrc-city1,                "City
          region TYPE adrc-region,              "Region
          adrnr TYPE lfa1-adrnr,                "Address Number
          dms(3) TYPE c,                        "DMS
          werks TYPE rseg-werks,                "PLANT
          bukrs TYPE rseg-bukrs,                "COMPANY CODE
          stblg TYPE rbkp-stblg,                "DOCUMENT REVERSAL INDICATOR
          mtart TYPE mara-mtart,                "MATERIAL TYPE
          wrbtr TYPE rseg-wrbtr,                "Base Amount
          tax_amount TYPE konv-kwert,           "Tax amount for summary
          vgart TYPE rbkp-vgart,                "Transaction Type
          ivtyp TYPE rbkp-ivtyp,                "Invoice Category
          reverse(2),                           "Invoice Reversed
          land1 TYPE lfa1-land1,                "Country Key
    *Fields added for customs
          BED TYPE RSEG-WRBTR,                  "BASIC ED FOR CUSTOMS
          CVD TYPE RSEG-WRBTR,                  "CVD FOR CUSTOMS
          ECVD TYPE RSEG-WRBTR,                 "CESS ON VD FOR CUSTOMS
          ECED TYPE RSEG-wrbtr,                 "CESS ON DUTIES
          lfgja type rseg-lfgja,                "Mat Doc Year
          frbnr type mkpf-frbnr,                "Bill of Lading No
          waers type rbkp-waers,
          txz01 TYPE ekpo-txz01,                "Short Text for Material
          ebeln TYPE rseg-ebeln,                "Purchasing Doc
          bsart type ekko-bsart,                "Pur.Doc Type
          batxt type t161t-batxt,               "Desc for Pur Doc.Type
          ebelp TYPE ekpo-ebelp,                "Purchase Ord Ln Item
          NCVD TYPE RSEG-WRBTR,                 "CESS ON VD FOR CUSTOMS
          SBED TYPE RSEG-wrbtr,                 "CESS ON DUTIES
          TEXT(30),
          qtr_yr(4),
          qtr_mth(10),
    *Fields added for Inr Value for exchange rate
          kursf type rbkp-kursf,
          inrval type rseg-wrbtr,
          BELNR1 TYPE RBKP-BELNR,
          remarks(15),
    END OF ty_itab.
    TYPES: BEGIN OF ty_header,
          belnr LIKE rbkp-belnr,               " MIRO doc.no.
          fidoc LIKE bkpf-belnr,               " accounting doc.no.
          xblnr LIKE rbkp-xblnr,               " Reference Document Number
          budat LIKE rbkp-budat,               " Posting Date in Document
          mwskz LIKE rseg-mwskz,               " Tax Code
          bklas LIKE rseg-bklas,               " Valuation Class
          gjahr LIKE rseg-gjahr,               " Fiscal Year
          bldat LIKE rbkp-bldat,               " Document Date
          lifnr TYPE rbkp-lifnr,                "Vendor Code
          stcd1 TYPE lfa1-stcd1,                "Tin number
          name1 TYPE lfa1-name1,                "Vendor Name
          awkey TYPE bkpf-awkey,                "Reference Key
          str_suppl1 TYPE adrc-str_suppl1,      "Street
          post_code1 TYPE adrc-post_code1,      "Pincode
          city1 TYPE adrc-city1,                "City
          region TYPE adrc-region,              "Region
          adrnr TYPE lfa1-adrnr,                "Address Number
          dms(3) TYPE c,                        "DMS
          werks TYPE rseg-werks,                "PLANT
          bukrs TYPE rseg-bukrs,                "COMPANY CODE
          stblg TYPE rbkp-stblg,                "DOCUMENT REVERSAL INDICATOR
          mtart TYPE mara-mtart,                "MATERIAL TYPE
          wrbtr TYPE rseg-wrbtr,                "Base Amount
          tax_amount TYPE konv-kwert,           "Tax amount for summary
          vgart TYPE rbkp-vgart,                "Transaction Type
          ivtyp TYPE rbkp-ivtyp,                "Invoice Category
          reverse(2),                           "Invoice Reversed
          land1 TYPE lfa1-land1,                "Country Key
          BED TYPE RSEG-WRBTR,                  "BASIC ED FOR CUSTOMS
          CVD TYPE RSEG-WRBTR,                  "CVD FOR CUSTOMS
          ECVD TYPE RSEG-WRBTR,                 "CESS ON VD FOR CUSTOMS
          ECED TYPE RSEG-wrbtr,                 "CESS ON DUTIES
          lfgja type rseg-lfgja,                "Mat Doc Year
          frbnr type mkpf-frbnr,                "Bill of Lading No
          waers type rbkp-waers,
          txz01 TYPE ekpo-txz01,                "Short Text for Material
          NCVD TYPE RSEG-WRBTR,                 "CESS ON VD FOR CUSTOMS
          SBED TYPE RSEG-wrbtr,                 "CESS ON DUTIES
          TEXT(30),
          qtr_yr(4),
          qtr_mth(10),
    *Fields added for Inr Value for exchange rate
          kursf type rbkp-kursf,
          inrval type rseg-wrbtr,
          BELNR1 TYPE RBKP-BELNR,
          remarks(15),
    END OF ty_header.
    types: begin of ty_pohistory,
            xblnr type ekbe-xblnr,
            bewtp type ekbe-bewtp,
            belnr type ekbe-belnr,
            gjahr type ekbe-gjahr,
           end of ty_pohistory.
    TYPES: BEGIN OF ty_temp,
            fidoc TYPE bkpf-belnr,              "FIDOC No
            awkey TYPE bkpf-belnr,              "Reference Key
            gjahr TYPE bkpf-gjahr,              "Fiscal Year
            budat TYPE bkpf-budat,              "Posting Date
            belnr TYPE rbkp-belnr,              "Doc No
            blart TYPE bkpf-blart,              "Document Type
           END OF ty_temp.
    *Internal Table
    DATA: itab TYPE ty_itab OCCURS 0 WITH HEADER LINE.
    DATA: itab_temp TYPE ty_temp OCCURS 0 WITH HEADER LINE.
    DATA : IT_CUSTOM TYPE TY_CUSTOM OCCURS 0 WITH HEADER LINE.
    data: it_pohistory type ty_pohistory occurs 0 with header line.
    data : it_header type ty_header occurs 0 with header  line.
    data : it_temp14 type ty_header occurs 0 with header  line.
    *Data Declaration
    DATA: BKTXT TYPE MKPF-BKTXT.
    DATA: FRBNR TYPE MKPF-FRBNR.
    data: budat type mkpf-budat.
    DATA: BELNR TYPE RSEG-BELNR.
    data: gjahr type rseg-gjahr.
    data: date1(10).
    data: date2(10).
    data: title(70).
    DATA : adrnr1 LIKE t001w-adrnr.
    DATA: plant_name1 LIKE adrc-name1.
    DATA: plant_name2 type adrc-name2.
    data: plant_name(70).
    DATA: comp_name1 LIKE adrc-name1.
    DATA: comp_name2 type adrc-name2.
    data: comp_name(70).
    DATA: month(2).
    For ALV display
    DATA: itfieldcat TYPE slis_t_fieldcat_alv WITH HEADER LINE,
          gd_layout TYPE slis_layout_alv,
          itsort TYPE slis_t_sortinfo_alv WITH HEADER LINE.
    DATA: gd_prntparams TYPE slis_print_alv.
    DATA : it_data TYPE slis_t_listheader,
           wa_data LIKE LINE OF it_data.
    **ALV Declaration
    DATA: it_alv1 LIKE TABLE OF itab WITH HEADER LINE.
    DATA : i TYPE n.
    DATA : col_name(10) TYPE c.
    data: text(70).
    *Selection Screen
    SELECTION-SCREEN BEGIN OF BLOCK block1 WITH FRAME TITLE text-001.
    PARAMETERS:p_bukrs LIKE rbkp-bukrs OBLIGATORY.
    SELECT-OPTIONS: s_werks FOR rseg-werks NO INTERVALS OBLIGATORY.
    SELECT-OPTIONS: s_regio FOR lfa1-regio NO INTERVALS.
    SELECT-OPTIONS: s_lifnr FOR lfa1-lifnr NO INTERVALS.
    select-options: s_bsart for ekko-bsart no intervals.
    SELECT-OPTIONS:s_bldat FOR rbkp-bldat.
    SELECT-OPTIONS:s_budat FOR rbkp-budat OBLIGATORY.
    SELECTION-SCREEN END OF BLOCK block1.
    SELECTION-SCREEN BEGIN OF BLOCK block2 WITH FRAME TITLE text-002.
    PARAMETERS : R1  RADIOBUTTON GROUP G1.
    PARAMETERS : R2  RADIOBUTTON GROUP G1.
    SELECTION-SCREEN END OF BLOCK block2.
    SELECT-OPTIONS: s_mwskz FOR rseg-mwskz NO-DISPLAY.
    SELECT-OPTIONS: s_land1 FOR lfa1-land1 NO-DISPLAY.
    START-OF-SELECTION.
    PERFORM get_data.
    **Filtering the Data based on the Document Type and Document Status in the Internal Table
    LOOP AT itab_temp.
    IF itab_temp-blart = 'RE'.
    itab_temp-belnr = itab_temp-awkey+0(10).
    MODIFY itab_temp.
    ELSE.
    DELETE itab_temp.
    ENDIF.
    ENDLOOP.
    WRITE : s_budat-low TO date1,
             s_budat-high TO date2.
    CONCATENATE 'Import Purchase Register From :' date1 ' To : '   date2 INTO text.
    if r1 = 'X'.
    PERFORM taxvalues.
    PERFORM filtering.
    PERFORM CUSTOMS.
    perform filtering2.
    PERFORM build_layout.
    PERFORM build_fieldcat.
    PERFORM alv_display.
    endif.
    if r2 = 'X'.
    PERFORM taxvalues.
    PERFORM filtering.
    PERFORM CUSTOMS.
    perform filtering2.
    PERFORM importheader.
    PERFORM build_layout.
    PERFORM build_fieldcat1.
    PERFORM alv_display_header.
    endif.
    *&      Form  get_data
          text
    -->  p1        text
    <--  p2        text
    FORM get_data .
    SELECT belnr AS fidoc
           awkey
           budat
           gjahr
           blart
           FROM bkpf INTO CORRESPONDING FIELDS OF TABLE itab_temp
           WHERE bukrs = p_bukrs
           AND budat IN s_budat
           AND bstat = space.
    IF sy-subrc NE 0.
      MESSAGE 'No Values exist for the Selection.' TYPE 'S'.
      STOP.
    ENDIF.
    ENDFORM.
    *&      Form  taxvalues
          text
    -->  p1        text
    <--  p2        text
    FORM taxvalues .
    LOOP AT itab_temp.
    MOVE-CORRESPONDING itab_temp TO itab.
      SELECT SINGLE
              lifnr
              xblnr
              belnr
              gjahr
              stblg
              bldat
              vgart
              ivtyp
              waers
              kursf
              FROM rbkp INTO CORRESPONDING FIELDS OF itab
                 WHERE belnr = itab_temp-belnr
                   AND gjahr = itab_temp-gjahr.
      SELECT  menge
              bklas
              matnr
              lfbnr
              werks
              mwskz
              buzei
              wrbtr
              pstyp
              kschl
              ebeln
              ebelp
              lfgja
              shkzg FROM rseg INTO CORRESPONDING FIELDS OF itab
              WHERE belnr = itab_temp-belnr
              AND gjahr = itab_temp-gjahr.
    APPEND itab.
    ENDSELECT.
    CLEAR itab.
    CLEAR itab_temp.
    ENDLOOP.
    LOOP AT itab .
    *Purchase Order Document Type.
    select single bsart from ekko into corresponding fields of itab
    where ebeln = itab-ebeln.
    select single batxt from t161t into corresponding fields of itab
    where spras = 'EN' AND
          bsart = itab-bsart.
    *Material Details
    SELECT SINGLE  matkl mtart FROM mara
                    INTO CORRESPONDING FIELDS OF itab
                    WHERE mara~matnr = itab-matnr.
    SELECT SINGLE name1 adrnr land1 FROM lfa1 INTO
                    (itab-name1,itab-adrnr,itab-land1) WHERE lifnr = itab-lifnr.
    *Short Text
    SELECT SINGLE txz01 INTO itab-maktx FROM ekpo
                WHERE ebeln = itab-ebeln
                and ebelp = itab-ebelp.
    **Vendor Address
    SELECT SINGLE str_suppl1
           post_code1
           city1
           region
           FROM adrc INTO CORRESPONDING FIELDS OF itab
                 WHERE addrnumber = itab-adrnr.
    itab-qtr_yr = itab-bldat+0(4).
    month = itab-bldat+4(2).
    CASE month.
      WHEN '01'.
        itab-qtr_mth = 'JAN'.
      WHEN '02'.
        itab-qtr_mth = 'FEB'.
      WHEN '03'.
        itab-qtr_mth = 'MAR'.
      WHEN '04'.
        itab-qtr_mth = 'APR'.
      WHEN '05'.
        itab-qtr_mth = 'MAY'.
      WHEN '06'.
        itab-qtr_mth = 'JUN'.
      WHEN '07'.
        itab-qtr_mth = 'JUL'.
      WHEN '08'.
        itab-qtr_mth = 'AUG'.
      WHEN '09'.
        itab-qtr_mth = 'SEP'.
      WHEN '10'.
        itab-qtr_mth = 'OCT'.
      WHEN '11'.
        itab-qtr_mth = 'NOV'.
      WHEN '12'.
        itab-qtr_mth = 'DEC'.
    ENDCASE.
    *INR VALUE CALCULATION
    <b>itab-inrval = itab-wrbtr * itab-kursf.</b>MODIFY itab.
    ENDLOOP.
    ENDFORM.                    " taxvalues
    *&      Form  build_layout
          text
    -->  p1        text
    <--  p2        text
    FORM build_layout .
      CLEAR itab.
      gd_layout-zebra = 'X'.
      gd_layout-colwidth_optimize = 'X'.
    ENDFORM.                    " build_layout
    *&      Form  build_fieldcat
          text
    -->  p1        text
    <--  p2        text
    FORM build_fieldcat .
    IF itab[] IS INITIAL.
      MESSAGE 'No Values exist for the Selection.' TYPE 'S'.
      STOP.
    ENDIF.
      DEFINE m_fieldcat.
        itfieldcat-fieldname = &1.
        itfieldcat-col_pos = &2.
        itfieldcat-seltext_l = &3.
        itfieldcat-do_sum = &4.
        itfieldcat-outputlen = &5.
        append itfieldcat to itfieldcat.
        clear itfieldcat.
      END-OF-DEFINITION.
      m_fieldcat 'LFBNR' '' 'GR NO' '' 10.
      m_fieldcat 'BELNR' '' 'MIRO NO' '' 10.
      m_fieldcat 'BUZEI' '' 'MIRO LN ITM' '' 10.
      m_fieldcat 'LIFNR' '' 'VENDOR CODE' '' 10.
      m_fieldcat 'NAME1' '' 'VENDOR NAME'  '' 14.
      m_fieldcat 'STR_SUPPL1' '' 'VENDOR ADDRESS' '' '15'  .
      m_fieldcat 'POST_CODE1' '' 'PINCODE' '' 6.
      m_fieldcat 'XBLNR' '' 'VEN INV NO' '' 16.
      m_fieldcat 'BLDAT' '' 'VEN INV DATE' '' 8.
      m_fieldcat 'EBELN' '' 'PUR ORD NO' '' 10.
    m_fieldcat 'BATXT' '' 'PUR ORD DOC.TYPE' '' 20.  "Pur Doc. Type Description
      m_fieldcat 'EBELP' '' 'PUR LN ITM' '' 5.
      m_fieldcat 'WERKS' '' 'PLANT' '' 8.
      m_fieldcat 'MATNR' '' 'MAT NO' '' 18.
      m_fieldcat 'MAKTX' '' 'MAT DESC' '' 15.
      m_fieldcat 'MATKL' '' 'MAT CC' '' 7.
      m_fieldcat 'MENGE' '' 'QTY' '' 13.
      m_fieldcat 'WRBTR' '' 'VAL. OF GOODS' '' 11.
      m_fieldcat 'WAERS' '' 'CURR' '' 5.
      m_fieldcat 'INRVAL' '' 'INR VALUE' '' 13.
      m_fieldcat 'BED' '' 'BED' '' 10.
      m_fieldcat 'CVD' '' 'CVD' '' 10.
      m_fieldcat 'ECVD' '' 'CESS ON CVD' '' 10.
      m_fieldcat 'ECED' '' 'CESS ON DUTIES' '' 13.
    *Bill of Lading Removed and Bill of Entry Added.
    m_fieldcat 'FRBNR' '' 'BILL OF LADING' '' 13.
      m_fieldcat 'BELNR1' '' 'BILL OF ENTRY' '' 13.
      m_fieldcat 'REVERSE' '' 'Reversed' '' 2.
      m_fieldcat 'FIDOC' '' 'FI DOC NO' '' 10.
      m_fieldcat 'MWSKZ' '' 'TC' '' 2.
      m_fieldcat 'BKLAS' '' 'VL CLS' '' 4.
      m_fieldcat 'CITY1' '' 'VENDOR CITY' '' 10.
      m_fieldcat 'QTR_MTH' '' 'MONTH' '' 10.
      m_fieldcat 'QTR_YR' '' 'YEAR' '' 4.
      m_fieldcat 'REMARKS' '' 'REMARKS' '' 15.
    ENDFORM.                    " build_fieldcat
    *&      Form  list1
          text
         -->R_UCOMM    text
         -->RS_SELFIELDtext
    FORM list1 USING r_ucomm LIKE sy-ucomm
                      rs_selfield TYPE slis_selfield.
    Check function code
      CASE r_ucomm.
        WHEN '&IC1'.
      Check field clicked on within ALVgrid report
          IF rs_selfield-fieldname = 'LFBNR'.
       AND rs_selfield-fieldname = 'GJAHR'.
        Read data table, using index of row user clicked on
            READ TABLE itab
         INTO wa_ekko
            INDEX rs_selfield-tabindex.
        Set parameter ID for transaction screen field
            SET PARAMETER ID 'MBN' FIELD itab-lfbnr.
            SET PARAMETER ID 'GJR' FIELD itab-gjahr.
        Sxecute transaction ME23N, and skip initial data entry screen
            CALL TRANSACTION 'MB03' AND SKIP FIRST SCREEN.
          ENDIF.
          IF rs_selfield-fieldname = 'FIDOC'.
       AND rs_selfield-fieldname = 'GJAHR'.
        Read data table, using index of row user clicked on
            READ TABLE itab
         INTO wa_ekko
            INDEX rs_selfield-tabindex.
        Set parameter ID for transaction screen field
            SET PARAMETER ID 'BLN' FIELD itab-fidoc.
            SET PARAMETER ID 'BUK' FIELD p_bukrs.
            SET PARAMETER ID 'GJR' FIELD itab-gjahr.
        Sxecute transaction ME23N, and skip initial data entry screen
            CALL TRANSACTION 'FB03' AND SKIP FIRST SCREEN.
          ENDIF.
          IF rs_selfield-fieldname = 'BELNR'.
       AND rs_selfield-fieldname = 'GJAHR'.
        Read data table, using index of row user clicked on
            READ TABLE itab
         INTO wa_ekko
            INDEX rs_selfield-tabindex.
        Set parameter ID for transaction screen field
            SET PARAMETER ID 'RBN' FIELD itab-BELNR.
            SET PARAMETER ID 'GJR' FIELD itab-gjahr.
        Sxecute transaction ME23N, and skip initial data entry screen
            CALL TRANSACTION 'MIR4' AND SKIP FIRST SCREEN.
          ENDIF.
          IF rs_selfield-fieldname = 'BELNR1'.
       AND rs_selfield-fieldname = 'GJAHR'.
        Read data table, using index of row user clicked on
            READ TABLE itab
         INTO wa_ekko
            INDEX rs_selfield-tabindex.
        Set parameter ID for transaction screen field
            SET PARAMETER ID 'RBN' FIELD itab-BELNR1.
            SET PARAMETER ID 'GJR' FIELD itab-gjahr.
        Sxecute transaction ME23N, and skip initial data entry screen
            CALL TRANSACTION 'MIR4' AND SKIP FIRST SCREEN.
          ENDIF.
      ENDCASE.
    ENDFORM.
    *&      Form  alv_display
          text
    -->  p1        text
    <--  p2        text
    FORM alv_display .
    IF sy-batch = space.
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
          i_callback_program      = sy-repid
          is_layout               = gd_layout
          i_callback_user_command = 'LIST1'
          I_CALLBACK_TOP_OF_PAGE  = 'TOP_OF_PAGE'
          it_fieldcat             = itfieldcat[]
          i_save                  = 'A'
          is_print                = gd_prntparams
          it_sort                 = itsort[]
        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.
    ELSEIF sy-batch = 'X'.
      CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
       EXPORTING
         i_callback_program             = sy-repid
         it_fieldcat                    = itfieldcat[]
          it_sort                       = itsort[]
        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.
    ENDIF.
    ENDFORM.                    " alv_display
    *&      Form  FILTERING
          text
    -->  p1        text
    <--  p2        text
    FORM filtering .
    Material type should be of ROH or HALB or FERT
    *CLEAR s_mtart.
    *REFRESH s_mtart.
    *s_mtart-sign = 'I'.
    *s_mtart-option = 'EQ'.
    *s_mtart-low = 'ROH'.
    *APPEND s_mtart.
    *s_mtart-low = 'HALB'.
    *APPEND s_mtart.
    *s_mtart-low = 'FERT'.
    *APPEND s_mtart.
    *CLEAR  s_mtart.
    *Tax Code for WCT should not be included.
    s_mwskz-sign = 'I'.
    s_mwskz-option = 'EQ'.
    s_mwskz-low = 'W1'.
    APPEND s_mwskz.
    s_mwskz-low = 'W2'.
    APPEND s_mwskz.
    s_mwskz-low = 'W3'.
    APPEND s_mwskz.
    s_mwskz-low = 'W4'.
    APPEND s_mwskz.
    s_mwskz-low = 'W5'.
    APPEND s_mwskz.
    s_mwskz-low = 'W6'.
    APPEND s_mwskz.
    s_land1-sign = 'I'.
    s_land1-option = 'NE'.
    s_land1-low = 'IN'.
    APPEND s_land1.
    LOOP AT itab.
        IF itab-mwskz NOT IN s_mwskz
          AND itab-shkzg EQ 'S'
           AND itab-bldat IN s_bldat
           AND itab-region IN s_regio
           AND itab-lifnr IN s_lifnr
           AND itab-land1 IN s_land1
           AND itab-werks IN s_werks
           AND itab-bsart IN s_bsart.
         ELSE.
           DELETE itab.
           CONTINUE.
        ENDIF.
        IF itab-vgart EQ 'RS'
           AND itab-ivtyp EQ '5'
           AND itab-stblg NE ' '.
             itab-reverse = 'RS'.
        ELSEIF  itab-vgart EQ 'RD'
           AND itab-ivtyp EQ ' '
           AND itab-stblg NE ' '.
             itab-reverse = 'RD'.
        ENDIF.
       MODIFY itab.
    ENDLOOP.
    ENDFORM.                    " FILTERING
    *&      Form  CUSTOMS
          text
    -->  p1        text
    <--  p2        text
    form CUSTOMS .
    LOOP AT ITAB.
    IF ITAB-LFBNR IS NOT INITIAL.
    SELECT SINGLE BKTXT
                  FRBNR
                  budat
                  FROM MKPF INTO (BKTXT,FRBNR,budat)
                  WHERE MBLNR = ITAB-LFBNR
                  and mjahr = itab-lfgja.
      move frbnr to itab-frbnr.
      perform get_custom_invoice.
    else.
    select xblnr
           bewtp
           belnr
           gjahr
           from ekbe into table it_pohistory
           where ebeln = itab-ebeln
           and ebelp = itab-ebelp.
    sort it_pohistory by xblnr.
    read table it_pohistory with key xblnr = itab-xblnr bewtp = 'E' binary search.
    if sy-subrc = 0.
        SELECT SINGLE BKTXT
                  FRBNR
                  budat
                  FROM MKPF INTO (BKTXT,FRBNR,budat)
                  WHERE MBLNR = it_pohistory-belnr
                  and mjahr = it_pohistory-gjahr.
        move it_pohistory-belnr to itab-lfbnr.
        move frbnr to itab-frbnr.
        perform get_custom_invoice.
    endif.
    ENDIF.
    MODIFY ITAB.
    clear: bktxt,frbnr,budat.
    ENDLOOP.
    SORT itab BY lfbnr belnr. " Sorting by GR no.
    endform.                    " CUSTOMS
    *&      Form  get_custom_invoice
          text
    -->  p1        text
    <--  p2        text
    form get_custom_invoice .
    CALL FUNCTION 'GET_CURRENT_YEAR'
    EXPORTING
       BUKRS         = p_bukrs
       DATE          =  budat
    IMPORTING
       CURRY         = gjahr
    determine if wrong characters were entered
    IF ( BKTXT CN '1234567890' ).
    *string contains wrong characters!
          ITAB-BELNR1 = BKTXT.
          ITAB-remarks = 'Wrng BoE Ref'.
        EXIT.
      ENDIF.
    CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
      EXPORTING
        input         = BKTXT
    IMPORTING
       OUTPUT        = BELNR
    ITAB-BELNR1 = BELNR.
    *For getting the Customs MIRO doc, it is assumed that the Fiscal Year of Customs Miro is same as Fiscal Year of Migo Posting Date
    clear it_custom.
    refresh it_custom.
    SELECT WRBTR
           KSCHL
           EBELN
           EBELP
           FROM RSEG INTO CORRESPONDING FIELDS OF IT_CUSTOM
           WHERE BELNR = BELNR
           and gjahr = gjahr.
    if sy-subrc = 0.
      APPEND IT_CUSTOM.
    endif.
    ENDSELECT.
    LOOP AT IT_CUSTOM.
        IF IT_CUSTOM-EBELN = ITAB-EBELN AND IT_CUSTOM-EBELP = ITAB-EBELP.
             CASE IT_CUSTOM-KSCHL.
                 WHEN 'JCDB'.
                     MOVE IT_CUSTOM-WRBTR TO ITAB-BED.
                 WHEN 'JCV1'.
                     MOVE IT_CUSTOM-WRBTR TO ITAB-CVD.
                 WHEN 'JECV'.
                     MOVE IT_CUSTOM-WRBTR TO ITAB-ECVD.
                 WHEN 'JEDB'.
                     MOVE IT_CUSTOM-WRBTR TO ITAB-ECED.
                 WHEN 'JCDS'.
                     MOVE IT_CUSTOM-WRBTR TO ITAB-SBED.
                 WHEN 'JCV2'.
                     MOVE IT_CUSTOM-WRBTR TO ITAB-NCVD.
              ENDCASE.
        ENDIF.
    ENDLOOP.
    endform.                    " get_custom_invoice
    *&      Form  filtering2
          text
    -->  p1        text
    <--  p2        text
    form filtering2 .
    loop at itab.
      if itab-lfbnr is initial.
          delete itab.
      endif.
    endloop.
    endform.                    " filtering2
    *& Form top_of_page
    text
    FORM top_of_page.
    CLEAR IT_DATA.
    REFRESH IT_DATA.
    *Company Details
    SELECT adrnr FROM t001 INTO adrnr1 WHERE bukrs = p_bukrs.
    ENDSELECT.
    SELECT name1 name2 FROM adrc INTO (comp_name1,comp_name2) WHERE addrnumber = adrnr1.
    ENDSELECT.
    concatenate comp_name1 comp_name2 into comp_name.
    wa_data-typ = 'H'.
    wa_data-info = comp_name.
    APPEND wa_data TO it_data.
    *Plant Details for Display
    loop at s_werks.
    SELECT single adrnr FROM t001w INTO adrnr1 WHERE werks = s_werks-low.
    SELECT single name1 name2 FROM adrc INTO (plant_name1,plant_name2) WHERE addrnumber = adrnr1.
    concatenate s_werks-low ' - ' plant_name1 ',' plant_name2 into plant_name.
    wa_data-info = plant_name.
    APPEND wa_data TO it_data.
    endloop.
    WRITE : s_budat-low TO date1,
            s_budat-high TO date2.
    if r1 = 'X'.
    CONCATENATE 'Import Purchase Register From :' date1 ' To : '   date2 INTO title.
    elseif r2 = 'X'.
    CONCATENATE 'Imp.Pur.Reg- Inv.Header From :' date1 ' To : '   date2 INTO title.
    endif.
    wa_data-info = title.
    APPEND wa_data TO it_data.
    CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
    EXPORTING
    it_list_commentary = it_data
    I_LOGO =
    I_END_OF_LIST_GRID =
    CLEAR WA_DATA.
    CLEAR IT_DATA.
    ENDFORM. "top_of_page
    *&      Form  importheader
          text
    -->  p1        text
    <--  p2        text
    form importheader .
    LOOP AT itab.
      MOVE-CORRESPONDING itab TO it_header.
      APPEND it_header.
    ENDLOOP.
    SORT it_header BY belnr.
    <b>LOOP AT it_header.
    AT END OF belnr.
      READ TABLE it_header INDEX sy-tabix.
      SUM.                </b>                                      " Summing the Amount for each Vendor Invoice No.
      MOVE-CORRESPONDING it_header TO it_temp14.
      APPEND it_temp14.
      CLEAR it_temp14.
    ENDAT.
    ENDLOOP.
    SORT it_temp14  BY belnr  ASCENDING.                                 " SORTING BY MIRO NUMBER
    endform.                    " importheader
    *&      Form  build_fieldcat1
          text
    -->  p1        text
    <--  p2        text
    form build_fieldcat1 .
    IF itab[] IS INITIAL.
      MESSAGE 'No Values exist for the Selection.' TYPE 'S'.
      STOP.
    ENDIF.
      DEFINE m_fieldcat.
        itfieldcat-fieldname = &1.
        itfieldcat-col_pos = &2.
        itfieldcat-seltext_l = &3.
        itfieldcat-do_sum = &4.
        itfieldcat-outputlen = &5.
        append itfieldcat to itfieldcat.
        clear itfieldcat.
      END-OF-DEFINITION.
      m_fieldcat 'BELNR' '' 'MIRO NO' '' 10.
      m_fieldcat 'LIFNR' '' 'VENDOR CODE' '' 10.
      m_fieldcat 'NAME1' '' 'VENDOR NAME'  '' 14.
      m_fieldcat 'STR_SUPPL1' '' 'VENDOR ADDRESS' '' '15'  .
      m_fieldcat 'POST_CODE1' '' 'PINCODE' '' 6.
      m_fieldcat 'XBLNR' '' 'VEN INV NO' '' 16.
      m_fieldcat 'BLDAT' '' 'VEN INV DATE' '' 8.
      m_fieldcat 'WERKS' '' 'PLANT' '' 8.
      m_fieldcat 'WRBTR' '' 'VAL. OF GOODS' '' 11.
      m_fieldcat 'WAERS' '' 'CURR' '' 5.
      m_fieldcat 'INRVAL' '' 'INRVALUE' '' 11.
      m_fieldcat 'BED' '' 'BED' '' 10.
      m_fieldcat 'CVD' '' 'CVD' '' 10.
      m_fieldcat 'ECVD' '' 'CESS ON CVD' '' 10.
      m_fieldcat 'ECED' '' 'CESS ON DUTIES' '' 13.
    *Bill of Lading Removed and Bill of Entry Added.
    m_fieldcat 'FRBNR' '' 'BILL OF LADING' '' 13.
      m_fieldcat 'BELNR1' '' 'BILL OF ENTRY' '' 13.
      m_fieldcat 'REVERSE' '' 'Reversed' '' 2.
      m_fieldcat 'FIDOC' '' 'FI DOC NO' '' 10.
      m_fieldcat 'MWSKZ' '' 'TC' '' 2.
      m_fieldcat 'BKLAS' '' 'VL CLS' '' 4.
      m_fieldcat 'CITY1' '' 'VENDOR CITY' '' 10.
      m_fieldcat 'QTR_MTH' '' 'MONTH' '' 10.
      m_fieldcat 'QTR_YR' '' 'YEAR' '' 4.
      m_fieldcat 'REMARKS' '' 'REMARKS' '' 15.
      ENDFORM.                    " build_fieldcat
    *&      Form  alv_display_header
          text
    -->  p1        text
    <--  p2        text
    form alv_display_header .
    IF sy-batch = space.
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
          i_callback_program      = sy-repid
          is_layout               = gd_layout
          i_callback_user_command = 'LIST2'
          I_CALLBACK_TOP_OF_PAGE  = 'TOP_OF_PAGE'
          it_fieldcat             = itfieldcat[]
          i_save                  = 'A'
          is_print                = gd_prntparams
          it_sort                 = itsort[]
        TABLES
          t_outtab                = it_temp14
          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.
    ELSEIF sy-batch = 'X'.
      CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
       EXPORTING
         i_callback_program             = sy-repid
         it_fieldcat                    = itfieldcat[]
          it_sort                       = itsort[]
        TABLES
          t_outtab                       = it_temp14
       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.
    ENDIF.
    endform.                    " alv_display_header
    *&      Form  list1
          text
         -->R_UCOMM    text
         -->RS_SELFIELDtext
    FORM list2 USING r_ucomm LIKE sy-ucomm
                      rs_selfield TYPE slis_selfield.
    Check function code
      CASE r_ucomm.
        WHEN '&IC1'.
          IF rs_selfield-fieldname = 'FIDOC'.
       AND rs_selfield-fieldname = 'GJAHR'.
        Read data table, using index of row user clicked on
            READ TABLE it_temp14
         INTO wa_ekko
            INDEX rs_selfield-tabindex.
        Set parameter ID for transaction screen field
            SET PARAMETER ID 'BLN' FIELD it_temp14-fidoc.
            SET PARAMETER ID 'BUK' FIELD p_bukrs.
            SET PARAMETER ID 'GJR' FIELD it_temp14-gjahr.
        Sxecute transaction ME23N, and skip initial data entry screen
            CALL TRANSACTION 'FB03' AND SKIP FIRST SCREEN.
          ENDIF.
          IF rs_selfield-fieldname = 'BELNR'.
       AND rs_selfield-fieldname = 'GJAHR'.
        Read data table, using index of row user clicked on
            READ TABLE it_temp14
         INTO wa_ekko
            INDEX rs_selfield-tabindex.
        Set parameter ID for transaction screen field
            SET PARAMETER ID 'RBN' FIELD it_temp14-BELNR.
            SET PARAMETER ID 'GJR' FIELD it_temp14-gjahr.
        Sxecute transaction ME23N, and skip initial data entry screen
            CALL TRANSACTION 'MIR4' AND SKIP FIRST SCREEN.
          ENDIF.
          IF rs_selfield-fieldname = 'BELNR1'.
       AND rs_selfield-fieldname = 'GJAHR'.
        Read data table, using index of row user clicked on
            READ TABLE it_temp14
         INTO wa_ekko
            INDEX rs_selfield-tabindex.
        Set parameter ID for transaction screen field
            SET PARAMETER ID 'RBN' FIELD it_temp14-BELNR1.
            SET PARAMETER ID 'GJR' FIELD it_temp14-gjahr.
        Sxecute transaction ME23N, and skip initial data entry screen
            CALL TRANSACTION 'MIR4' AND SKIP FIRST SCREEN.
          ENDIF.
      ENDCASE.
    ENDFORM.
    Message was edited by:
            Kiran K

    Sandeep,
    It is working fine for all the dates,but going giving dump only for a particular date.
    KURSF is of length 9.Is it including decimal places.
    So,if i declare a varibale of type p decimals 5 and then move actual kursf value to this variable and then SUM,it will work fine.
    data:kursf1 type p decimals 5.
    move it_header-kursf to it_header-kursf1.
    or
    just declare the existing kursf as type p decimals 5
    But why it is not giving dump for other dates.
    Thanks,
    K.Kiran.

  • How to solve the dump eror

    hi
         when i execute this report it execute perfectly. o/p is come perfect.
    But when i double click by mistake on this o/p it  give me the dump error .
    i don't know why this is happen. i am not been able to solve this problem.
    can anyone solve this problem and send modified coding to me.
    thanks in advance.
    Dinesh
    *& Report  ZBIL
    REPORT  ZBIL NO STANDARD PAGE HEADING.
    TABLES: VBRK,
            VBRP,
            KNA1,
            VBAK,
            LIKP,
            J_1IEXCHDR,
            MARM.
    TYPE-POOLS:SLIS.
    TYPES: BEGIN OF IT_FINAL,
           KUNAG LIKE VBRK-KUNAG,
           KDGRP LIKE VBRK-KDGRP,
           VBELN LIKE VBRK-VBELN,
           FKSTO LIKE VBRK-FKSTO,
           FKDAT LIKE VBRK-FKDAT,
          stceg like vbrk-stceg,
           STCEG(20) TYPE C,
           REGIO LIKE VBRK-REGIO,
           RFBSK LIKE VBRK-RFBSK,
           AUBEL LIKE VBRP-AUBEL,
           WERKS LIKE VBRP-WERKS,
           VGBEL LIKE VBRP-VGBEL,
           MATNR LIKE VBRP-MATNR,
           VRKME LIKE VBRP-VRKME,
           FKIMG LIKE VBRP-FKIMG,
           NETWR LIKE VBRP-NETWR,             "netwr_fp,
           MWSBP LIKE VBRP-MWSBP,
           KZWI4 LIKE  VBRP-KZWI4,
           VSTEL LIKE VBRP-VSTEL,
           FKIMG1 TYPE FKIMG,
           NAME1 LIKE KNA1-NAME1,
           ORT01 LIKE KNA1-ORT01,
           PSTLZ LIKE KNA1-PSTLZ,
           EKONT LIKE KNA1-EKONT,
           KUNNR LIKE KNA1-KUNNR,
           STRAS(35) TYPE C,
           AUDAT LIKE VBAK-AUDAT,
           WADAT_IST LIKE LIKP-WADAT_IST,
           EXNUM(10) TYPE C,
           RDOC LIKE J_1IEXCHDR-RDOC,
           UMREZ LIKE MARM-UMREZ,
           MEINH LIKE MARM-MEINH,
           UMREN LIKE MARM-UMREN,
           END OF IT_FINAL.
    TYPES: BEGIN OF IT_VBRK,
           KUNAG LIKE VBRK-KUNAG,
           KDGRP LIKE VBRK-KDGRP,
           VBELN LIKE VBRK-VBELN,
           FKSTO LIKE VBRK-FKSTO,
           FKDAT LIKE VBRK-FKDAT,
          stceg like vbrk-stceg,
           STCEG(20) TYPE C,
           REGIO LIKE VBRK-REGIO,
           RFBSK LIKE VBRK-RFBSK,
         END OF IT_VBRK.
    TYPES: BEGIN OF IT_VBRP,
            WERKS LIKE VBRP-WERKS,
            VGBEL LIKE VBRP-VGBEL,
            MATNR LIKE VBRP-MATNR,
            VRKME LIKE VBRP-VRKME,
            FKIMG LIKE VBRP-FKIMG,
            NETWR LIKE VBRP-NETWR,            "like vbrp-netwr,
            MWSBP LIKE VBRP-MWSBP,              "like vbrp-mwsbp,
            KZWI4 LIKE VBRP-MWSBP,          "   like vbrp-kzwi4,
            AUBEL LIKE VBRP-AUBEL,
            VBELN LIKE VBRP-VBELN,
            VSTEL LIKE VBRP-VSTEL,
          END OF IT_VBRP.
    TYPES:BEGIN OF IT_KNA1,
          NAME1 LIKE KNA1-NAME1,
          ORT01 LIKE KNA1-ORT01,
          PSTLZ LIKE KNA1-PSTLZ,
          EKONT LIKE KNA1-EKONT,
          KUNNR LIKE KNA1-KUNNR,
          STRAS(35) TYPE C,
          END OF IT_KNA1.
    TYPES: BEGIN OF IT_VBAK,
           VBELN LIKE VBAK-VBELN,
           AUDAT LIKE VBAK-AUDAT,
           KUNNR LIKE VBAK-KUNNR,
           END OF IT_VBAK.
    TYPES: BEGIN OF IT_LIKP,
           WADAT_IST LIKE LIKP-WADAT_IST,
           KUNAG LIKE LIKP-KUNAG,
           VBELN LIKE LIKP-VBELN,
           END OF IT_LIKP.
    TYPES: BEGIN OF IT_J_1IEXCHDR,
           EXNUM(10) TYPE C,
           KUNAG LIKE J_1IEXCHDR-KUNAG,
           WERKS LIKE J_1IEXCHDR-WERKS,
           RDOC LIKE J_1IEXCHDR-RDOC,
           END OF IT_J_1IEXCHDR.
    TYPES: BEGIN OF IT_MARM,
           MATNR LIKE MARM-MATNR,
           UMREZ LIKE MARM-UMREZ,
           MEINH LIKE MARM-MEINH,
           UMREN LIKE MARM-UMREN,
           END OF IT_MARM.
    *INTERNAL TABLE DECLARATION
    DATA: I_FINAL TYPE STANDARD TABLE OF IT_FINAL,
          I_VBRP TYPE  STANDARD TABLE OF IT_VBRP,
          I_VBRK TYPE  STANDARD TABLE OF IT_VBRK,
          I_KNA1 TYPE  STANDARD TABLE OF IT_KNA1,
          I_VBAK TYPE  STANDARD TABLE OF IT_VBAK,
          I_LIKP TYPE  STANDARD TABLE OF IT_LIKP,
          I_J_1IEXCHDR TYPE  STANDARD TABLE OF IT_J_1IEXCHDR,
          I_MARM TYPE  STANDARD TABLE OF IT_MARM.
    *DECLARATION FOR THE WORK AREA
    DATA: WA_FINAL TYPE IT_FINAL,
           WA_VBRP TYPE IT_VBRP,
           WA_VBRK TYPE IT_VBRK,
           WA_KNA1 TYPE IT_KNA1,
           WA_VBAK TYPE IT_VBAK,
           WA_LIKP TYPE IT_LIKP,
           WA_J_1IEXCHDR TYPE IT_J_1IEXCHDR,
           WA_MARM TYPE IT_MARM.
    * DECLARATION FOR THE FIELD CATALOG.
    DATA: FIELDCATALOG TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE,
          WA_FIELDCATALOG TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE,
          GD_LAYOUT TYPE SLIS_LAYOUT_ALV.
    DATA IT_SORT1 TYPE SLIS_T_SORTINFO_ALV WITH HEADER LINE.
    DATA HEADING1 TYPE SLIS_T_LISTHEADER WITH HEADER LINE.
    DATA  GD_REPID LIKE SY-REPID.
    *DECLARATION FOR THE SELECTION SCREEN
    SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
    SELECT-OPTIONS: CUST FOR VBRK-KUNAG,
                    CUST_GRP FOR VBRK-KDGRP,
                    MAT_NO FOR VBRP-MATNR,
                    PLANT FOR VBRP-WERKS OBLIGATORY,
                    SHIP_PT FOR VBRP-VSTEL,
                    BILL_DOC FOR VBRK-VBELN,
                    SAL_OFF FOR VBRP-VKBUR,
                    BILL_TYP FOR VBRK-FKART,
                    DATE FOR VBRK-FKDAT.
    PARAMETERS:REGIO LIKE VBRK-REGIO DEFAULT  '13'  OBLIGATORY.
    SELECTION-SCREEN :END OF BLOCK B1.
    *DECLARATION FOR THE SUBROUTIN FOR BASIC LIST.
    PERFORM F_GET_I_VBRK_DATA.
    PERFORM F_GET_I_VBRP_DATA.
    PERFORM F_GET_I_KNA1_DATA.
    PERFORM F_GET_I_VBAK_DATA.
    PERFORM F_GET_I_LIKP_DATA.
    PERFORM F_GET_I_J_1IEXCHDR_DATA.
    PERFORM F_GET_I_MARM_DATA.
    PERFORM F_GET_I_FINAL_DATA.
    PERFORM DATA_BUILD.
    PERFORM DATA_CALL.
    FORM F_GET_I_VBRK_DATA.
    SELECT  KUNAG KDGRP VBELN FKSTO FKDAT STCEG REGIO RFBSK REGIO
    FROM VBRK
    INTO CORRESPONDING FIELDS OF TABLE I_VBRK
    WHERE FKDAT IN DATE
    AND KUNAG IN CUST
    AND KDGRP IN CUST_GRP
    AND  VBELN IN BILL_DOC
    AND FKART IN BILL_TYP.
    *AND REGIO LIKE REGIO.
    ENDFORM.
    FORM F_GET_I_VBRP_DATA.
    SELECT  WERKS VGBEL MATNR VRKME FKIMG NETWR MWSBP KZWI4 VBELN AUBEL VSTEL
    FROM VBRP
    INTO CORRESPONDING FIELDS OF TABLE I_VBRP FOR ALL ENTRIES IN I_VBRK
    WHERE VBELN = I_VBRK-VBELN
    AND VKBUR IN SAL_OFF
    AND MATNR IN MAT_NO
    AND VSTEL IN SHIP_PT
    AND WERKS IN PLANT .
    ENDFORM.
    FORM F_GET_I_KNA1_DATA.
    SELECT NAME1 ORT01 PSTLZ EKONT KUNNR STRAS
    FROM KNA1
    INTO CORRESPONDING FIELDS OF TABLE I_KNA1
    FOR ALL ENTRIES IN I_VBRK
    WHERE KUNNR = I_VBRK-KUNAG.
    ENDFORM.
    FORM F_GET_I_VBAK_DATA.
    SELECT VBELN AUDAT KUNNR
    FROM VBAK
    INTO CORRESPONDING FIELDS OF TABLE I_VBAK
    FOR ALL ENTRIES IN I_VBRP
    WHERE VBELN = I_VBRP-AUBEL.
    *for all entries in i_vbrk
    *where kunnr = i_vbrk-kunag .
    ENDFORM.
    FORM F_GET_I_LIKP_DATA.
    SELECT WADAT_IST KUNAG VBELN
    FROM LIKP
    INTO CORRESPONDING FIELDS OF TABLE I_LIKP
    FOR ALL ENTRIES IN I_VBRP
    WHERE VBELN = I_VBRP-VGBEL.
    *for all entries in i_vbrk
    *where kunag = i_vbrk-kunag.
    ENDFORM.
    FORM F_GET_I_J_1IEXCHDR_DATA.
    SELECT EXNUM  WERKS  KUNAG RDOC
    FROM J_1IEXCHDR
    INTO CORRESPONDING FIELDS OF TABLE I_J_1IEXCHDR
    FOR ALL ENTRIES IN I_VBRK
    WHERE RDOC = I_VBRK-VBELN .
    ENDFORM.
    FORM F_GET_I_MARM_DATA.
    SELECT  MATNR UMREZ UMREN MEINH
    FROM MARM
    INTO CORRESPONDING FIELDS OF  TABLE I_MARM
    FOR ALL ENTRIES IN I_VBRP
    WHERE MEINH = 'EA' AND MATNR = I_VBRP-MATNR.
    ENDFORM.
    *for all entries in i_vbrp
    *where werks = i_vbrp-werks .
    *where kunag = i_vbrk-kunag .
    FORM F_GET_I_FINAL_DATA.
    LOOP AT I_VBRP INTO WA_VBRP.
    WA_FINAL-WERKS = WA_VBRP-WERKS.
    WA_FINAL-VGBEL = WA_VBRP-VGBEL.
    WA_FINAL-MATNR = WA_VBRP-MATNR.
    WA_FINAL-VRKME = WA_VBRP-VRKME.
    WA_FINAL-FKIMG = WA_VBRP-FKIMG.
    WA_FINAL-NETWR = WA_VBRP-NETWR.
    WA_FINAL-MWSBP = WA_VBRP-MWSBP.
    WA_FINAL-KZWI4 = WA_VBRP-KZWI4.
    WA_FINAL-AUBEL = WA_VBRP-AUBEL.
    WA_FINAL-VSTEL = WA_VBRP-VSTEL.
    WA_FINAL-VBELN = WA_VBRP-VBELN.
    CLEAR WA_VBRK.
    READ TABLE I_VBRK INTO WA_VBRK WITH KEY VBELN = WA_VBRP-VBELN.
    IF SY-SUBRC = 0.
    WA_FINAL-KUNAG = WA_VBRK-KUNAG.
    WA_FINAL-KDGRP = WA_VBRK-KDGRP.
    WA_FINAL-VBELN = WA_VBRK-VBELN.
    WA_FINAL-FKSTO = WA_VBRK-FKSTO.
    WA_FINAL-FKDAT = WA_VBRK-FKDAT.
    WA_FINAL-STCEG = WA_VBRK-STCEG.
    WA_FINAL-REGIO = WA_VBRK-REGIO.
    WA_FINAL-RFBSK = WA_VBRK-RFBSK.
    ENDIF.
    CLEAR WA_KNA1.
    READ TABLE I_KNA1 INTO WA_KNA1 WITH KEY KUNNR = WA_VBRK-KUNAG.
    IF SY-SUBRC = 0.
    WA_FINAL-NAME1 = WA_KNA1-NAME1.
    WA_FINAL-ORT01 = WA_KNA1-ORT01.
    WA_FINAL-PSTLZ = WA_KNA1-PSTLZ.
    WA_FINAL-STRAS = WA_KNA1-STRAS.
    WA_FINAL-KUNAG = WA_KNA1-KUNNR.
    ENDIF.
    CLEAR WA_VBAK.
    READ TABLE I_VBAK INTO WA_VBAK WITH KEY  VBELN = WA_VBRP-AUBEL.          "kunnr = wa_vbrk-kunag.
    IF SY-SUBRC = 0.
    WA_FINAL-AUDAT = WA_VBAK-AUDAT.
    WA_FINAL-KUNAG = WA_VBAK-KUNNR.
    ENDIF.
    CLEAR WA_LIKP.
    READ TABLE I_LIKP INTO WA_LIKP WITH KEY  VBELN = WA_VBRP-VGBEL.           "kunag = wa_vbrk-kunag.
    IF SY-SUBRC = 0.
    WA_FINAL-WADAT_IST = WA_LIKP-WADAT_IST.
    WA_FINAL-KUNAG = WA_LIKP-KUNAG.
    ENDIF.
    CLEAR WA_J_1IEXCHDR.
    READ TABLE I_J_1IEXCHDR INTO WA_J_1IEXCHDR WITH  KEY  RDOC = WA_VBRK-VBELN. "kunag = wa_vbrk-kunag.
    IF SY-SUBRC = 0.
    WA_FINAL-EXNUM = WA_J_1IEXCHDR-EXNUM.
    WA_FINAL-KUNAG = WA_J_1IEXCHDR-KUNAG.
    WA_FINAL-WERKS = WA_J_1IEXCHDR-WERKS.
    WA_FINAL-RDOC = WA_J_1IEXCHDR-RDOC.
    ENDIF.
    CLEAR WA_MARM.
    READ TABLE I_MARM INTO WA_MARM WITH  KEY MATNR = WA_VBRP-MATNR.
    IF SY-SUBRC = 0.
    WA_FINAL-MEINH = WA_MARM-MEINH.
    WA_FINAL-UMREZ = WA_MARM-UMREZ.
    WA_FINAL-UMREN = WA_MARM-UMREN.
    WA_FINAL-MATNR = WA_MARM-MATNR.
    WA_FINAL-FKIMG1 = WA_VBRP-FKIMG * ( WA_MARM-UMREN / WA_MARM-UMREZ ).
    ENDIF.
    APPEND WA_FINAL TO I_FINAL.
    ENDLOOP.
    ENDFORM.
    FORM DATA_BUILD.
    *break-point.
      WA_FIELDCATALOG-FIELDNAME = 'KUNAG'.
      WA_FIELDCATALOG-SELTEXT_M = 'Sold-to Party'.
      WA_FIELDCATALOG-OUTPUTLEN = 10 .
      APPEND WA_FIELDCATALOG TO FIELDCATALOG.
      CLEAR WA_FIELDCATALOG.
      WA_FIELDCATALOG-FIELDNAME = 'KDGRP'.
      WA_FIELDCATALOG-SELTEXT_M = 'Customer Group'.
      WA_FIELDCATALOG-OUTPUTLEN = 13 .
      APPEND WA_FIELDCATALOG TO FIELDCATALOG.
      CLEAR WA_FIELDCATALOG.
      WA_FIELDCATALOG-FIELDNAME = 'AUBEL'.
      WA_FIELDCATALOG-SELTEXT_M = 'Sales Doc'.
      WA_FIELDCATALOG-OUTPUTLEN = 10 .
      APPEND WA_FIELDCATALOG TO FIELDCATALOG.
      CLEAR WA_FIELDCATALOG.
      WA_FIELDCATALOG-FIELDNAME = 'AUDAT'.
      WA_FIELDCATALOG-SELTEXT_M = 'Doc Date'.
      WA_FIELDCATALOG-OUTPUTLEN = 10 .
      APPEND WA_FIELDCATALOG TO FIELDCATALOG.
      CLEAR WA_FIELDCATALOG.
      WA_FIELDCATALOG-FIELDNAME = 'VGBEL'.
      WA_FIELDCATALOG-SELTEXT_M = 'Pgi. No.'.
      WA_FIELDCATALOG-OUTPUTLEN = 10 .
      APPEND WA_FIELDCATALOG TO FIELDCATALOG.
      CLEAR WA_FIELDCATALOG.
      WA_FIELDCATALOG-FIELDNAME = 'WADAT_IST'.
      WA_FIELDCATALOG-SELTEXT_M = 'Pgi.Date'.
      WA_FIELDCATALOG-OUTPUTLEN = 10 .
      APPEND WA_FIELDCATALOG TO FIELDCATALOG.
      CLEAR WA_FIELDCATALOG.
      WA_FIELDCATALOG-FIELDNAME = 'EXNUM'.
      WA_FIELDCATALOG-SELTEXT_M = 'Excise No.'.
      WA_FIELDCATALOG-OUTPUTLEN = 10 .
      APPEND WA_FIELDCATALOG TO FIELDCATALOG.
      CLEAR WA_FIELDCATALOG.
      WA_FIELDCATALOG-FIELDNAME = 'VBELN' .
      WA_FIELDCATALOG-SELTEXT_M = 'Bill Doc'.
      WA_FIELDCATALOG-OUTPUTLEN = 12 .
      WA_FIELDCATALOG-KEY = 'X'.
      APPEND WA_FIELDCATALOG TO FIELDCATALOG.
      CLEAR WA_FIELDCATALOG.
      WA_FIELDCATALOG-FIELDNAME = 'WERKS'.
      WA_FIELDCATALOG-SELTEXT_M = 'Plant'.
      WA_FIELDCATALOG-OUTPUTLEN = 8 .
      APPEND WA_FIELDCATALOG TO FIELDCATALOG.
      CLEAR WA_FIELDCATALOG.
      WA_FIELDCATALOG-FIELDNAME = 'FKSTO'.
      WA_FIELDCATALOG-SELTEXT_M = 'Cancel'.
      WA_FIELDCATALOG-OUTPUTLEN = 8 .
      APPEND WA_FIELDCATALOG TO FIELDCATALOG.
      CLEAR WA_FIELDCATALOG.
      WA_FIELDCATALOG-FIELDNAME = 'FKDAT'.
      WA_FIELDCATALOG-SELTEXT_M = 'Billing Date'.
      WA_FIELDCATALOG-OUTPUTLEN = 12 .
      APPEND WA_FIELDCATALOG TO FIELDCATALOG.
      CLEAR WA_FIELDCATALOG.
      WA_FIELDCATALOG-FIELDNAME = 'MATNR'.
      WA_FIELDCATALOG-SELTEXT_M = 'Mat. No.'.
      WA_FIELDCATALOG-OUTPUTLEN = 12 .
      APPEND WA_FIELDCATALOG TO FIELDCATALOG.
      CLEAR WA_FIELDCATALOG.
      WA_FIELDCATALOG-FIELDNAME = 'VRKME'.
      WA_FIELDCATALOG-SELTEXT_M = 'Sales Unit'.
      WA_FIELDCATALOG-OUTPUTLEN = 10 .
    WA_FIELDCATALOG-SUBTOT = 'X'.
      APPEND WA_FIELDCATALOG TO FIELDCATALOG.
      CLEAR WA_FIELDCATALOG.
      WA_FIELDCATALOG-FIELDNAME = 'FKIMG'.
      WA_FIELDCATALOG-SELTEXT_L = 'Billed Qty in M/4FT/EA'.
      WA_FIELDCATALOG-OUTPUTLEN = 20 .
      WA_FIELDCATALOG-DO_SUM = 'X'.
    COLLECT WA_FIELDCATALOG INTO FIELDCATALOG.
      APPEND WA_FIELDCATALOG TO FIELDCATALOG.
      CLEAR WA_FIELDCATALOG.
    WA_FIELDCATALOG-FIELDNAME = 'FKIMG1'.
      WA_FIELDCATALOG-SELTEXT_M = 'Billed Qty in NOS.'.
      WA_FIELDCATALOG-OUTPUTLEN = 20 .
      WA_FIELDCATALOG-DO_SUM = 'X'.
    COLLECT WA_FIELDCATALOG INTO FIELDCATALOG.
      APPEND WA_FIELDCATALOG TO FIELDCATALOG.
      CLEAR WA_FIELDCATALOG.
      WA_FIELDCATALOG-FIELDNAME = 'NETWR'.
      WA_FIELDCATALOG-SELTEXT_M = 'Net Value'.
      WA_FIELDCATALOG-OUTPUTLEN = 15 .
      WA_FIELDCATALOG-DO_SUM = 'X'.
      APPEND WA_FIELDCATALOG TO FIELDCATALOG.
      CLEAR WA_FIELDCATALOG.
      WA_FIELDCATALOG-FIELDNAME = 'MWSBP'.
      WA_FIELDCATALOG-SELTEXT_M = 'Tax Amount'.
      WA_FIELDCATALOG-OUTPUTLEN = 15 .
      WA_FIELDCATALOG-DO_SUM = 'X'.
      APPEND WA_FIELDCATALOG TO FIELDCATALOG.
      CLEAR WA_FIELDCATALOG.
      WA_FIELDCATALOG-FIELDNAME = 'STCEG'.
      WA_FIELDCATALOG-SELTEXT_M = 'Vat Reg. No.'.
      WA_FIELDCATALOG-OUTPUTLEN = 15 .
      APPEND WA_FIELDCATALOG TO FIELDCATALOG.
      CLEAR WA_FIELDCATALOG.
      WA_FIELDCATALOG-FIELDNAME = 'VSTEL'.
      WA_FIELDCATALOG-SELTEXT_M = 'Shipping Pt'.
      WA_FIELDCATALOG-OUTPUTLEN = 10 .
      APPEND WA_FIELDCATALOG TO FIELDCATALOG.
      CLEAR WA_FIELDCATALOG.
      WA_FIELDCATALOG-FIELDNAME = 'REGIO'.
      WA_FIELDCATALOG-SELTEXT_M = 'Region'.
      WA_FIELDCATALOG-OUTPUTLEN = 8 .
      APPEND WA_FIELDCATALOG TO FIELDCATALOG.
      CLEAR WA_FIELDCATALOG.
      WA_FIELDCATALOG-FIELDNAME = 'RFBSK'.
      WA_FIELDCATALOG-SELTEXT_M = 'PsSt'.
      WA_FIELDCATALOG-OUTPUTLEN = 5 .
      APPEND WA_FIELDCATALOG TO FIELDCATALOG.
      CLEAR WA_FIELDCATALOG.
      WA_FIELDCATALOG-FIELDNAME = 'KZWI4'.
      WA_FIELDCATALOG-SELTEXT_M = 'Subtotal'.
      WA_FIELDCATALOG-OUTPUTLEN = 10 .
      WA_FIELDCATALOG-DO_SUM = 'X'.
      APPEND WA_FIELDCATALOG TO FIELDCATALOG.
      CLEAR WA_FIELDCATALOG.
      WA_FIELDCATALOG-FIELDNAME = 'NAME1'.
      WA_FIELDCATALOG-SELTEXT_M = 'Party Name'.
      WA_FIELDCATALOG-OUTPUTLEN = 15 .
      APPEND WA_FIELDCATALOG TO FIELDCATALOG.
      CLEAR WA_FIELDCATALOG.
      WA_FIELDCATALOG-FIELDNAME = 'STRAS'.
      WA_FIELDCATALOG-SELTEXT_M = 'Street Name'.
      WA_FIELDCATALOG-OUTPUTLEN = 15 .
      APPEND WA_FIELDCATALOG TO FIELDCATALOG.
      CLEAR WA_FIELDCATALOG.
      WA_FIELDCATALOG-FIELDNAME = 'ORT01'.
      WA_FIELDCATALOG-SELTEXT_M = 'City'.
      WA_FIELDCATALOG-OUTPUTLEN = 10 .
      APPEND WA_FIELDCATALOG TO FIELDCATALOG.
      CLEAR WA_FIELDCATALOG.
      WA_FIELDCATALOG-FIELDNAME = 'PSTLZ'.
      WA_FIELDCATALOG-SELTEXT_M = 'Postal Code'.
      WA_FIELDCATALOG-OUTPUTLEN = 10 .
      APPEND WA_FIELDCATALOG TO FIELDCATALOG.
      CLEAR WA_FIELDCATALOG.
    REFRESH IT_SORT1.
    CLEAR IT_SORT1.
      IT_SORT1-FIELDNAME = 'VBELN'.
      IT_SORT1-UP        = 'X'.
      IT_SORT1-SUBTOT = 'X'.
      APPEND IT_SORT1.
      CLEAR IT_SORT1.
    IT_SORT1-FIELDNAME = 'VRKME'.
    IT_SORT1-UP        = 'X'.
    IT_SORT1-SUBTOT = 'X'.
    APPEND IT_SORT1.
    CLEAR IT_SORT1.
      ENDFORM.
      FORM DATA_CALL.
    data : itab type it_final occurs 0,
    wa_itab type it_final.
    *loop at i_final into wa_final.
    *MOVE wa_final-VRKME to wa_itab-VRKME.
    *add wa_final-fkimg to wa_itab-fkimg.
    *MOVE wa_final-VRKME to wa_itab-VRKME.
    *add wa_final-fkimg to wa_itab-fkimg.
    *MOVE wa_final-VRKME to wa_itab-VRKME.
    *append wa_itab to itab.
    *clear: wa_final, wa_itab.
    **endon.
    **endat.
    endloop.
    *i_final[] = itab[].
      GD_REPID = SY-REPID.
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
       EXPORTING
      I_INTERFACE_CHECK                 = ' '
      I_BYPASSING_BUFFER                = ' '
      I_BUFFER_ACTIVE                   = ' '
         I_CALLBACK_PROGRAM                = GD_REPID
      I_CALLBACK_PF_STATUS_SET          = ' '
         I_CALLBACK_USER_COMMAND           = 'USER-COMMAND'
        I_CALLBACK_TOP_OF_PAGE            = 'TOP_OF_PAGE'
      I_CALLBACK_HTML_TOP_OF_PAGE       = ' '
      I_CALLBACK_HTML_END_OF_LIST       = ' '
      I_STRUCTURE_NAME                  =
      I_BACKGROUND_ID                   = ' '
         I_GRID_TITLE                      = 'List Of Billing Document'
      I_GRID_SETTINGS                   =
       IS_LAYOUT                         = GD_LAYOUT
        IT_FIELDCAT                       = FIELDCATALOG[]
      IT_EXCLUDING                      =
      IT_SPECIAL_GROUPS                 =
       IT_SORT                           = IT_SORT1[]
      IT_FILTER                         =
      IS_SEL_HIDE                       =
      I_DEFAULT                         = 'X'
       I_SAVE                            = 'X'
      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
      IT_ALV_GRAPHICS                   =
      IT_HYPERLINK                      =
      IT_ADD_FIELDCAT                   =
      IT_EXCEPT_QINFO                   =
      I_HTML_HEIGHT_TOP                 =
      I_HTML_HEIGHT_END                 =
    IMPORTING
      E_EXIT_CAUSED_BY_CALLER           =
      ES_EXIT_CAUSED_BY_USER            =
        TABLES
          T_OUTTAB                          = I_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.
    ENDFORM.                    "data_call

    hi,
    just comment this line.
    I_CALLBACK_USER_COMMAND = 'USER-COMMAND'
    as it is only useful in interactive reports.

  • ALV Print dump

    Hi
    I am getting ABAP dump when i printing alv report using PRINT button.
    Error is
    Field symbol has not yet been assigned
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
          I_CALLBACK_PROGRAM      = G_REPID
          I_CALLBACK_USER_COMMAND = G_USER_COMMAND
          IT_FIELDCAT             = FIELDCAT[]
          IS_LAYOUT               = GS_LAYOUT
          I_SAVE                  = G_SAVE
          IT_SORT                 = GS_SORT
          IT_FILTER               = GS_FILTER
          IS_VARIANT              = GS_VARIANT
          IT_EVENTS               = GT_EVENTS[]
          IS_PRINT                = GS_PRINT
        IMPORTING
          E_EXIT_CAUSED_BY_CALLER = G_EXIT_CAUSED_BY_CALLER
          ES_EXIT_CAUSED_BY_USER  = GS_EXIT_CAUSED_BY_USER
        TABLES
          T_OUTTAB                = I_PODETL
        EXCEPTIONS
          PROGRAM_ERROR           = 1
          OTHERS                  = 2.
    Pls advise me
    Thanks
    Kumar

    hi check this..
    use this...
    wa_fieldcat-fieldname = 'FIELD'.
    wa_fieldcat-reptext_ddic = 'Descrition;.
    append wa_fieldcat to  it_fieldcat .
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
          I_CALLBACK_PROGRAM      = G_REPID
          I_CALLBACK_USER_COMMAND = G_USER_COMMAND
          IT_FIELDCAT             = FIELDCAT[]
          IS_LAYOUT               = GS_LAYOUT
          I_SAVE                  = G_SAVE
          IT_SORT                 = GS_SORT
          IT_FILTER               = GS_FILTER
          IS_VARIANT              = GS_VARIANT
          IT_EVENTS               = GT_EVENTS[]
          IS_PRINT                = GS_PRINT
        TABLES
          T_OUTTAB                = I_PODETL
        EXCEPTIONS
          PROGRAM_ERROR           = 1
          OTHERS                  = 2.
    regards,
    venkat.

  • Short Dump while executing ALV Grid.

    Hi All,
    I m getting a short dump while trying to execute an ALV.
    The dump exception is of type
    CX_SY_DYN_CALL_ILLEGAL_TYPE class.
    The message displayed is :  " Call to form 'GI_FIELDCAT' is incorrect .The actual parameter in PERFORM is different data type than requested for form GI_FIELDCAT "  .
    The part of programe included is as follows:
      FORM build_fieldcat .
        PERFORM gi_fieldcat USING 'MBLNR' text-014 '1' '20'.
        PERFORM gi_fieldcat USING 'ZEILE' text-005 '2' '4'.
        PERFORM gi_fieldcat USING 'MATNR' text-006 '3' '18'.
        PERFORM gi_fieldcat USING 'MAKTX' text-028 '4' '40'.
        PERFORM gi_fieldcat USING 'MATKL' text-029 '5' '40'.
        PERFORM gi_fieldcat USING 'BUDAT' text-027 '6' '10'.
        PERFORM gi_fieldcat USING 'MENGE' text-026 '7' '9'.
        PERFORM gi_fieldcat USING 'DMBTR' text-025 '8' '13'.
        PERFORM gi_fieldcat USING 'WAERS' text-011 '9' '5'.
        PERFORM gi_fieldcat USING 'RSNUM' text-012 '10' '10'.
        PERFORM gi_fieldcat USING 'PSPHI' text-013 '11' '10'.
    ENDFORM.                    " build_fieldcat
    FORM gi_fieldcat  USING    fieldname TYPE slis_fieldcat_alv-fieldname
                               colmname  TYPE slis_fieldcat_alv-seltext_m
                               colmpos   TYPE slis_fieldcat_alv-col_pos
                               outputlen TYPE slis_fieldcat_alv-outputlen.
      wa_fieldcat-fieldname   = fieldname.
      wa_fieldcat-seltext_m   = colmname.
      wa_fieldcat-col_pos     = colmpos.
      wa_fieldcat-outputlen   = outputlen.
    wa_fieldcat-
      APPEND wa_fieldcat TO it_fieldcat.
      CLEAR  wa_fieldcat.
    ENDFORM.                    " gi_fieldcat
    Can ayone gimmi a solution for the same.

    Hi,
    Try to change ur code like the below.
    Attached: sample code
    Building field catalog
      PERFORM modify_catlog USING:
      'GT_OUTPUT' 'AUART'  text-t02  '1',
      'GT_OUTPUT' 'KUNNR'  text-t03  '2',
      'GT_OUTPUT' 'NAME'   text-t04  '3',
      'GT_OUTPUT' 'KWMENG' text-t05  '4',
      'GT_OUTPUT' 'VRKME'  text-t06  '5',
      'GT_OUTPUT' 'LFIMG'  text-t07  '6',
      'GT_OUTPUT' 'GEWEI'  text-t08  '7',
      'GT_OUTPUT' 'VOLUM'  text-t09  '8',
      'GT_OUTPUT' 'VOLEH'  text-t10  '9',
      'GT_OUTPUT' 'BRGEW'  text-t11 '10',
      'GT_OUTPUT' 'UOMGW'  text-t12 '11',
      'GT_OUTPUT' 'VARCE'  text-t13 '12',
      'GT_OUTPUT' 'UOMVR'  text-t14 '13'.
    FORM modify_catlog USING    pa_tabname TYPE string
                                pa_field   TYPE string
                                pa_text    TYPE string
                                pa_pos     TYPE string.
      CLEAR gs_fieldcatalog.
    *Modifying field catalog
      gs_fieldcatalog-col_pos = pa_pos.
      gs_fieldcatalog-fieldname = pa_field.
      gs_fieldcatalog-tabname = pa_tabname.
      gs_fieldcatalog-seltext_m = pa_text.
      APPEND gs_fieldcatalog TO gt_fieldcatalog.
      CLEAR gs_fieldcatalog.
    l_repid = sy-repid.
    To call function to display ALV output
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
           EXPORTING
                i_callback_program = l_repid
                it_fieldcat        = gt_fieldcatalog
                     TABLES
                t_outtab           = gt_output
           EXCEPTIONS
                program_error      = 1
                OTHERS             = 2.
      IF sy-subrc <> 0.
        MESSAGE e000 WITH text-t16.
      ENDIF.
    Reward if helpful.
    Regards,
    Ramya

  • Short dump while on double click event in ALV

    Hi ,
    I have created a ALV screen to display the customer number and NAme ,my requirement is that when i click on the Key field i.e. Customer number it should call the transaction xd03 for that  I have written the following code
    gs_layout-box_fieldname = 'SEL'.
    gs_layout-colwidth_optimize = 'X'.
    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
        is_layout                = gs_layout
         it_fieldcat              = fieldcatalog[]
         i_callback_pf_status_set = 'PF_STATUS'
        i_callback_user_command  = 'USER_COMMAND'
      TABLES
        t_outtab                 = t_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 user_command USING r_ucomm LIKE sy-ucomm
                            rs_selfield TYPE slis_selfield.
      CASE r_ucomm.
        WHEN '&IC1'.
          IF rs_selfield-fieldname = 'KUNNR'.
            READ TABLE t_itab INTO w_itab
            WITH KEY kunnr = rs_selfield-value.
            IF sy-subrc = 0.
              SET PARAMETER ID 'KUN' FIELD rs_selfield-value.
              CALL TRANSACTION 'XD03' AND SKIP FIRST SCREEN.
            ENDIF.
          ENDIF.
          CLEAR r_ucomm.
      ENDCASE.
    ENDFORM.                    "user_command
    FORM pf_status USING rt_extab TYPE slis_t_extab.
      SET PF-STATUS 'STANDARD1'.
    ENDFORM.                    "pf_status
    Problem is when i double click on the Customer No field on the ALV ouput i Am getting a Short dump.. "MOVE_TO_LIT_NOTALLOWED_NODATA"..
    How should i overcome this runtime error....
    Thanks in advance,
    Nishant

    >
    Abhii wrote:
    > There was a problem in the SET PARAMETER ID statement.
    > Nishant, Make the code changes I have suggested, you will get the output.
    Either you possess telepathic skills or you are omniscient.
    Before asserting your solution on someone be sure what exactly is the problem. If you check the OP's code, CALL TRANSACTION will be called only when the READ TABLE is successful.
    So how does your solution add benefit to the existing one.
    BR,
    Suhas

Maybe you are looking for

  • Mail.jar is locked when sending a mail using servlet and not releasing

    Hi everybody, The mail.jar is locked in tomcat while sending the first message and not released until the tomcat get restarts. the problem is not recorded in any logs. 1. Please create a servlet that sends mail 2. Send a mail to any mailid 3. then af

  • Mail - Dreamweaver - Hotmail Problem

    Hi, I downloaded the trail version of Adobe Dreamweaver and it sort of works. I can create a html newsletter and sent it using Mail.app... HOWEVER... The images appear in Mail and Outlook Express but they do not appear when you look at the e-mail thr

  • Issue with the shawdow table

    I am in the process of understanding the shawdow table and the error log table. i have a table created with a shadow table in place. 1. ex : table emp( empno, ename), emp_err( ...., empno,ename) it contains the values (1,'A'). Now i place the empno w

  • Konqueror and sftp: only green window

    I have always liked to use konqueror for remote access via sftp, even though I don't use kde, because it's so easy, very intuitive. But something seems to have got a bit broken recently because all I get now when I log in to a remote site is a green

  • Xorg RAM consumption

    Hi, I've been wondering for a long time what is the average consumption of Xorg for a dual monitor. I use a 1024*768 + 1680*1050 setup and Xorg+openbox+xcompmgr takes me in average 110 to 160MB of RAM (without xcompmgr it starts with 85MB +-). Isnt t