Top_of_page is not working in ALV hierarchy?

Hi,
      I have written following code for top_of_page using event but which is not working...This report is developed for interactive report.
Note: passed the it_events into ALV hierarchy functional module.
FORM build_event_tab .
   CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
     EXPORTING
       i_list_type = 1
     IMPORTING
       et_events   = it_events[].
   READ TABLE it_events INTO wa_events WITH KEY form = 'TOP_OF_PAGE'.
   IF sy-subrc = 0.
     wa_events-form = 'TOP_OF_PAGE'.
     APPEND wa_events TO it_events.
   ENDIF.
ENDFORM. "Get_events
FORM top_of_page USING document TYPE REF TO cl_dd_document.
   DATA: dl_text(255) TYPE c,
         lv_cutime TYPE sy-uzeit,
         lv_cudt(20) TYPE c.
   lv_cudt = sy-datum.
*--Passing Date----*
   WRITE  lv_cudt TO dl_text.
   CONCATENATE 'Date : ' lv_cudt+6(2) '-'
                         lv_cudt+4(2) '-'
                         lv_cudt+0(4) INTO dl_text.
   CALL METHOD document->add_text
     EXPORTING
       text = dl_text.
   CLEAR : dl_text.
   CALL METHOD document->add_gap
     EXPORTING
       width = 50.
   WRITE 'Company Name' TO dl_text.
   CALL METHOD document->add_text
     EXPORTING
       text         = dl_text
       sap_emphasis = cl_dd_area=>heading
       sap_style    = cl_dd_area=>heading
       sap_color    = cl_dd_area=>list_total_inv.
   CLEAR : dl_text.
   CALL METHOD document->add_gap
     EXPORTING
       width = 150.
   lv_cutime = sy-uzeit.
   CONCATENATE 'Time : ' lv_cutime+0(2) ':'
                         lv_cutime+2(2) ':'
                         lv_cutime+4(2) INTO dl_text.
   CALL METHOD document->add_text
     EXPORTING
       text = dl_text.
   CALL METHOD document->add_gap
     EXPORTING
       width = 60.
   WRITE 'Title' TO dl_text.
   CALL METHOD document->add_text
     EXPORTING
       text         = dl_text
       sap_emphasis = cl_dd_area=>heading
       sap_style    = cl_dd_area=>heading
       sap_color    = cl_dd_area=>list_total_inv.
   CLEAR : dl_text.
   CALL METHOD document->add_gap
     EXPORTING
       width = 50.
ENDFORM.                    "html_top_of_page
Thanks
Shree

PERFORM build_fieldcat.
  PERFORM build_event_tab.
  PERFORM alv_display.
*---Build fieldcat
FORM build_fieldcat.
  wa_fieldcat-tabname = 'IT_VENDOR'.
  wa_fieldcat-fieldname = 'LIFNR'.
  wa_fieldcat-col_pos   = '2'.
  wa_fieldcat-seltext_l = 'SUPPLIER'.
  wa_fieldcat-outputlen = 20.
  APPEND wa_fieldcat TO it_fieldcat.
  CLEAR wa_fieldcat.
  wa_fieldcat-tabname = 'IT_VENDOR'.
  wa_fieldcat-fieldname = 'NAME1'.
  wa_fieldcat-col_pos   = '2'.
  wa_fieldcat-seltext_l = 'VENDOR NAME'.
  wa_fieldcat-outputlen = 40.
  APPEND wa_fieldcat TO it_fieldcat.
  CLEAR wa_fieldcat.
  wa_fieldcat-tabname = 'IT_FINAL'.
  wa_fieldcat-fieldname = 'WERKS'.
  wa_fieldcat-col_pos   = '1'.
  wa_fieldcat-seltext_l = 'Plant'.
  wa_fieldcat-outputlen = 5.
  APPEND wa_fieldcat TO it_fieldcat.
  CLEAR wa_fieldcat.
  wa_fieldcat-tabname = 'IT_FINAL'.
  wa_fieldcat-fieldname = 'AWKEY'.
  wa_fieldcat-col_pos   = '2'.
  wa_fieldcat-seltext_l = ' Document'.
  wa_fieldcat-hotspot = 'X'.
  wa_fieldcat-outputlen = 16.
  APPEND wa_fieldcat TO it_fieldcat.
  CLEAR wa_fieldcat.
  wa_fieldcat-tabname = 'IT_FINAL'.
  wa_fieldcat-fieldname = 'BELNR'.
  wa_fieldcat-col_pos   = '3'.
  wa_fieldcat-seltext_l = 'A/c Document'.
  wa_fieldcat-hotspot = 'X'.
  wa_fieldcat-outputlen = 16.
  APPEND wa_fieldcat TO it_fieldcat.
  CLEAR wa_fieldcat.
  wa_fieldcat-tabname = 'IT_FINAL'.
  wa_fieldcat-fieldname = 'BUDAT'.
  wa_fieldcat-col_pos   = '4'.
  wa_fieldcat-seltext_l = 'PJ Date'.
  wa_fieldcat-outputlen = 16.
  APPEND wa_fieldcat TO it_fieldcat.
  CLEAR wa_fieldcat.
  wa_fieldcat-tabname = 'IT_FINAL'.
  wa_fieldcat-fieldname = 'XBLNR'.
  wa_fieldcat-col_pos   = '5'.
  wa_fieldcat-seltext_l = 'Inv'.
  wa_fieldcat-outputlen = 16.
  APPEND wa_fieldcat TO it_fieldcat.
  CLEAR wa_fieldcat.
  wa_fieldcat-tabname = 'IT_FINAL'.
  wa_fieldcat-fieldname = 'BLDAT'.
  wa_fieldcat-col_pos   = '6'.
  wa_fieldcat-seltext_l = 'PJ Date'.
  wa_fieldcat-outputlen = 16.
  APPEND wa_fieldcat TO it_fieldcat.
  CLEAR wa_fieldcat.
  wa_fieldcat-tabname = 'IT_FINAL'.
  wa_fieldcat-fieldname = 'DMBTR'.
  wa_fieldcat-col_pos   = '7'.
  wa_fieldcat-seltext_l = 'Bill.Amount'.
  wa_fieldcat-outputlen = 19.
  wa_fieldcat-do_sum   = 'X'.
  APPEND wa_fieldcat TO it_fieldcat.
  CLEAR wa_fieldcat.
  wa_fieldcat-tabname = 'IT_FINAL'.
  wa_fieldcat-fieldname = 'HKONT'.
  wa_fieldcat-col_pos   = '8'.
  wa_fieldcat-seltext_l = 'Cost Ctr'.
  wa_fieldcat-outputlen = 16.
  APPEND wa_fieldcat TO it_fieldcat.
  CLEAR wa_fieldcat.
ENDFORM.                    "Build_fieldcat
*----ALV Display-----*
FORM alv_display.
  key-header01 = 'LIFNR'.
  key-item01   = 'LIFNR'.
  DELETE ADJACENT DUPLICATES FROM it_vendor.
  DELETE ADJACENT DUPLICATES FROM it_final.
  CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
    EXPORTING
      i_callback_program       = sy-repid
      i_callback_user_command  = 'USER_COMMAND'
      i_callback_pf_status_set = 'PFSTATUS'
      it_fieldcat              = it_fieldcat[]
      i_tabname_header         = 'IT_VENDOR'
      i_tabname_item           = 'IT_FINAL'
      it_events                = it_events[]
      is_keyinfo               = key
    TABLES
      t_outtab_header          = it_vendor[]
      t_outtab_item            = it_final[].
ENDFORM.                    "alv_display
*----interactive method--
FORM user_command USING r_ucomm TYPE sy-ucomm
                        rs_selfield TYPE slis_selfield.
  CASE r_ucomm.
    WHEN '&IC1'.
      READ TABLE it_final INTO wa_final INDEX rs_selfield-tabindex.
      IF sy-subrc = 0.
        IF rs_selfield-fieldname = 'BELNR'.
          SET PARAMETER ID 'BLN' FIELD wa_final-belnr.
          SET PARAMETER ID 'BUK' FIELD pa_bukrs.
          SET PARAMETER ID 'GJA' FIELD pa_gjahr.
          CALL TRANSACTION 'FB03' AND SKIP FIRST SCREEN.
        ELSEIF rs_selfield-fieldname = 'AWKEY'.
          SET PARAMETER ID 'RBN' FIELD wa_final-awkey.
          SET PARAMETER ID 'GJR' FIELD pa_gjahr.
          CALL TRANSACTION 'MIR4' AND SKIP FIRST SCREEN.
        ELSEIF rs_selfield-fieldname = 'LFBNR'.
          SET PARAMETER ID 'BLN' FIELD it_bsak-lfbnr.
          SET PARAMETER ID 'BUK' FIELD pa_bukrs.
          SET PARAMETER ID 'GJA' FIELD pa_gjahr.
          CALL TRANSACTION 'FB03' AND SKIP FIRST SCREEN.
        ELSEIF rs_selfield-fieldname = 'EBELN'.
          SELECT SINGLE
                 ebeln
                 INTO wk_ebeln
                 FROM ekko
                 WHERE ebeln = it_bsak-ebeln
                 AND bstyp = 'F'.
          IF sy-subrc EQ 0.
            SET PARAMETER ID 'BES' FIELD it_bsak-ebeln.
            CALL TRANSACTION 'ME23N' AND SKIP FIRST SCREEN.
          ELSE.
            SET PARAMETER ID 'VRT' FIELD it_bsak-ebeln.
            CALL TRANSACTION 'ME33' AND SKIP FIRST SCREEN.
          ENDIF.
        ENDIF.
      ENDIF.
  ENDCASE.
ENDFORM.                    "user_command
FORM pfstatus USING ut_extab TYPE slis_t_extab.
  SET PF-STATUS 'STANDARD_FULLSCREEN' OF PROGRAM 'SAPLKKBL'.
ENDFORM.                    "pfstatus
*---Authorization check---
FORM bukrs_check.
  SELECT SINGLE
         butxt "Name of the Company Code / Company
         ort01 "City
         INTO (wk_company, wk_city) FROM t001
         WHERE  bukrs = pa_bukrs.
  IF sy-subrc <> 0.
    MESSAGE 'create your own message' TYPE 'I'.
  ENDIF.
ENDFORM.                    " BUKRS_CHECK
FORM build_event_tab.
  CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
    EXPORTING
      i_list_type = 0
    IMPORTING
      et_events   = it_events[].
  READ TABLE it_events INTO wa_events
     WITH KEY name = 'SLIS_EV_TOP_OF_PAGE'.
  IF sy-subrc = 0.
    wa_events-form = 'TOP_OF_PAGE'.
    MODIFY it_events FROM wa_events INDEX sy-tabix.
  ENDIF.
  READ TABLE it_events INTO wa_events WITH KEY name =
                'SLIS_EV_END_OF_PAGE'.
  IF sy-subrc = 0.
    wa_events-form = 'END_OF_PAGE'.
    MODIFY it_events FROM wa_events INDEX sy-tabix.
  ENDIF.
ENDFORM. "Get_events
FORM end_of_page.
  DATA: it_header TYPE slis_t_listheader,
        wa_header TYPE slis_listheader.
  wa_header-typ = 'S'.
  wa_header-key = 'MATERIAL'.
*  wa_line-info = p1.
  APPEND wa_header TO it_header.
  CLEAR wa_header.
*  READ TABLE it_maktx WITH KEY matnr = p1.
  wa_header-typ = 'S'.
  wa_header-key = 'DESCRIPTION'.
*  wa_line-info = it_maktx-maktx.
  APPEND  wa_header TO it_header.
  CLEAR wa_header.
  CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
     EXPORTING
*      i_logo             = 'ENJOYSAP_LOGO'
       it_list_commentary = it_header.
ENDFORM.                    "END_OF_PAGE
FORM top_of_page USING document TYPE REF TO cl_dd_document.
  DATA: dl_text(255) TYPE c,
        lv_cutime TYPE sy-uzeit,
        lv_cudt(20) TYPE c.
  lv_cudt = sy-datum.
*--Passing Date----*
  WRITE  lv_cudt TO dl_text.
  CONCATENATE 'Date : ' lv_cudt+6(2) '-'
                        lv_cudt+4(2) '-'
                        lv_cudt+0(4) INTO dl_text.
  CALL METHOD document->add_text
    EXPORTING
      text = dl_text.
  CLEAR : dl_text.
  CALL METHOD document->add_gap
    EXPORTING
      width = 50.
  WRITE 'INCAP CON MFG SER (P) LTD' TO dl_text.
  CALL METHOD document->add_text
    EXPORTING
      text         = dl_text
      sap_emphasis = cl_dd_area=>heading
      sap_style    = cl_dd_area=>heading
      sap_color    = cl_dd_area=>list_total_inv.
  CLEAR : dl_text.
  CALL METHOD document->add_gap
    EXPORTING
      width = 150.
  lv_cutime = sy-uzeit.
  CONCATENATE 'Time : ' lv_cutime+0(2) ':'
                        lv_cutime+2(2) ':'
                        lv_cutime+4(2) INTO dl_text.
  CALL METHOD document->add_text
    EXPORTING
      text = dl_text.
  CALL METHOD document->add_gap
    EXPORTING
      width = 60.
  WRITE 'Purchase Journal' TO dl_text.
  CALL METHOD document->add_text
    EXPORTING
      text         = dl_text
      sap_emphasis = cl_dd_area=>heading
      sap_style    = cl_dd_area=>heading
      sap_color    = cl_dd_area=>list_total_inv.
  CLEAR : dl_text.
  CALL METHOD document->add_gap
    EXPORTING
      width = 50.
ENDFORM.                    "html_top_of_page

Similar Messages

  • Sub:Filtering is not working in ALV Grid

    Hi All,
    I developed a new ALV report,where in the out put i can set filtering for other columns(ex:Date,Number),but i can'nt able to set Filtering for one of the column which is CHAR type.
    But when we went to table for this field filtering is working,but not in the ALV Grid  of our report.
    Regards,
    Seshadri G

    hi,
    1) for filtering, we create an internak table of type <b>LVC_T_FILT</b>,
    U can assign fields to the above created internal as per u requirements.
    2) passing the above internal table to CHANGING parameter of method SET_TABLE FORFIRST_DISPLAY in ALV GRID.
    <b>IT_FILTER = < internal table TYPE LVC_T_FLIT>.</b>
    <u><b>OR call this method for setting filter criteria as per u r requirement.</b></u>
    Set current filter settings. A row of the table describes the selection conditions for column entries that are not to be displayed.
    You should never manually set up the internal table with the filter settings. Use this method only to set filter criteria that you got using get_filter_criteria or a layout.
    Features
    CALL METHOD <ref. var. to CL_GUI_ALV_GRID > ->set_filter_criteria
       EXPORTING
          IT_FILTER  =   <internal table of type LVC_T_FILT > .
    Parameter
    Meaning
    IT_FILTER
    Table with filter settings
    regards,
    AshokReddy.
    Message was edited by:
            Ashok Reddy
    Message was edited by:
            Ashok Reddy

  • Scrollup and down icons not working in ALV. Please help!

    Hi Experts,
           I have a ALV webdynpro ABAP report. I have to show only fixed no of rows.
           But the scrollup and scroll down icons in the ALV (^) not working when I use subtotal (aggregation).
           Interestingly scrolling works perfectly if I remove my subtotal code.  
           My subtotal code is like this:
    *...Sort PRODUCT and group it for subtotal
    *lr_field_settings ?= l_value.
    *lr_field = lr_field_settings->get_field( 'PRODUCT' ).
    *lr_field->if_salv_wd_sort~set_group_aggregation_allowed( ABAP_TRUE ).
    *lr_field->if_salv_wd_sort~create_sort_rule( ).
    *l_sortrule = lr_field->if_salv_wd_sort~GET_SORT_RULE(  ).
    *l_sortrule->set_sort_order( if_salv_wd_c_sort=>sort_order_ascending ).
    *l_sortrule->set_group_aggregation( ABAP_TRUE ).
    **...Aggregate Field QTY
    *lr_field = lr_field_settings->get_field( 'QTY' ).
    *lr_field->if_salv_wd_aggr~create_aggr_rule( ).
    *lr_aggr_rule = lr_field->if_salv_wd_aggr~get_aggr_rule(  ).
    *lr_aggr_rule->set_aggregation_type( if_salv_wd_c_aggregation=>aggrtype_total ).
    **lr_field_settings ?= l_value.
    **lr_field_settings->set_group_aggr_displayed( abap_true ).
           One more thing, In addition to subtotal it also shows grand total in the end. Is this the normal feature or my code for subtotal is wrong?
           So what could be the problem?
           Any sample code will be really helpfull. Please help!
    Thanks
    Gopal
    Message was edited by:
            gopalkrishna baliga

    Hi Gopal,
    Please try to build the effect you commented out in the settings of the ALV. You can save it as a special layout. If scrolling works then, you should check which part of your coding leads to the problem and possibly correct it.
    If this is not possible, just create an OSS message.
    Ciao, Regina

  • Filter Not working in ALV grid

    Hi All,
    The filter button in ALV Grid is not working for some fields. if the filter button is selected for a particular field in the ALV grid then no entries are getting displayed in the ALV. For few fields it is working. for few fields is it not displaying any entries after selecting filter.
    Please let me know what may be the possible causes for this issue.
    Thanks in Advance!
    Thanks & Regards,
    Preethi G

    Hi,
      Ex: your output is something like this
      A                     B                         C
      1                    2                             3
      4                    2                              5
      5                    3                              6
    When you filter B for value 2, then internally it creates one more internal table like this
    A                    B                         C
    1                002                         3
    4                002                         5
    5                003                         6
    it tries to matches value 2 to 002 and it fails to retrive the record.
    The solution is try to do the conversion exit on the column/field you are trying to filter it. It will work.
    Regards,
    Ramesh.

  • Drilldown not working properly in Hierarchy

    Hi
    I am using hierarchy in my VC model. I refered following document
    https://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/4155b345-0a01-0010-ac9f-b3b2c34e993c
    As per the ccode given in the document, Drill Up function is properly but drildown is not working properly. what could be the reason?
    Thanks & Regards
    Deepdas
    Edited by: Deepdas on Jul 15, 2009 4:41 PM

    Hi
    In the code for drilldown go to the expression ' %3D2' this will enable you to drilldown only to the second level. After '%3D_' enter the level number upto which you want the drill down. Ex - if you want drilldown to the 4th level then enter '%3D4'.
    I think this is only your problem, if not please exxplain what kind of error you are getting.
    Regards
    Sandeep

  • Filter not working in ALV Report....

    Hi All,
    I have developed an ALV Report using REUSE_ALV_GRID_DISPLAY.
    Everything is working perfectly except Filtering...
    When i enter data for filtering, the ALV list will become empty. Then if i choose to delete the entry made in filter window, the filter input shows only first 4 digits of the entered value.......If i delete that value, again the data will be displayed in the ALV Screen.....
    All other standard Functions like sort, export to excel sheet are working fine...
    What might be the reason for this bug..?????
    Please Help me...
    Regards
    Pavan

    Thanks Prasanth,
    This is the code...
    It has been observed that few columns can be filtered...Like date, Quantity and few more...
    But there is a column for Production Order number, which can not be filtered...
    What might be the reason..?????
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
          EXPORTING
            i_callback_program     = v_repid
            i_callback_top_of_page = 'TOP_OF_PAGE'
            is_layout              = gs_layout
            it_fieldcat            = gt_fieldcat[]
            it_sort                = t_sort[]
            i_default              = c_x
            is_variant             = v_variant
            i_save                 = c_a
            it_events              = t_events
            is_print               = wa_prntparams
          TABLES
            t_outtab               = i_aufk
          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.

  • Hide delete option is not working in ALV List  Display- urgent

    Hi All,
    In my program i am displaying the output by using alv list display. after displaying the data i am displaying my own pf status here. in this i have few pushbuttons like
    selest all, deselect all, hide . first two options are working fine. when i click hide button selected records are going to be hide.but this is not happening in my program. any body cam send me the code plz.
    i am sending my code below. if possible please modify and resend the code asap.
    my code:
    type-pools : slis.
    tables : zuser_secobjects.
    data : t_header1 like zuser_secobjects.
    data : begin of it_secobjects occurs 0.
            include structure t_header1.
    *data :  box,
           input(1) type c,
    data :   checkbox type c,
            flag type c,
          end of it_secobjects.
    data : wa_ita like line of it_secobjects.
    *data : it_secobjects like zuser_secobjects occurs 0 with header line.
    data : i_field type slis_t_fieldcat_alv with header line.
    data : w_field like line of i_field.
    data : i_sort type slis_t_sortinfo_alv.
    data : w_sort like line of i_sort.
    data : it_filt1 type slis_t_filter_alv with header line.
    data:
    i_tabname type tabname,
    i_repid like sy-repid,
    is_lout type slis_layout_alv.
    data :   it_filt type slis_t_filter_alv   with header line,
             it_evts type slis_t_event        with header line.
    DATA : is_vari type disvariant.
    constants :   c_default_vari value 'X',
                  c_save_vari    value 'U',
                   c_checkfield type slis_fieldname     value 'ACTION',
                   c_f2code     type sy-ucomm           value '&ETA'.
    data : chk_box type slis_fieldname.
    selection-screen: begin of block b1 with frame title text-t01.
    parameters : p_appln type zuser_secobjects-appln.
    parameters : p_user type usr02-bname, "zuser_secobjects-appln_user,
    p_partnr type zuser_secobjects-appln_partner,
    p_ptype type zuser_secobjects-partner_type default '02',
    p_upostn type zuser_secobjects-user_position,
    p_sdate like likp-erdat default sy-datum,
    p_edate(10) default '12/31/9999',
    p_revnum type zuser_secobjects-revnum,
    p_cted type zuser_secobjects-created_by,
    p_cdate type zuser_secobjects-creation_date,
    p_ctime type zuser_secobjects-creation_time,
    p_chnby type zuser_secobjects-changed_by,
    p_cdate1 type zuser_secobjects-changed_date,
    p_ctime1 type zuser_secobjects-changed_time.
    selection-screen: end of block b1.
    form user_command using p_ucomm like sy-ucomm
    rs_selfield type slis_selfield.
    *DATA :   it_filt type slis_t_filter_alv   with header line.
      case p_ucomm.
        when 'SELECT_ALL'. " SELALL is the FCODE of ur push button
          loop at it_secobjects into wa_ita.
            wa_ita-checkbox = 'X'.
            modify it_secobjects from wa_ita.
          endloop.
      rs_selfield-refresh = 'X'.   "<-  ADD THIS
      when 'DESLCT_ALL'.
        loop at it_secobjects into wa_ita.
            wa_ita-checkbox = ' '.
            modify it_secobjects from wa_ita.
          endloop.
      rs_selfield-refresh = 'X'.   "<-  ADD THIS
        is_lout-f2code               = c_f2code.
        is_lout-box_fieldname        = c_checkfield.
        is_lout-get_selinfos         = 'X'.
        is_lout-detail_popup         = 'X'.
        is_lout-detail_initial_lines = 'X'.
    when 'HIDE_DEL'.
          rs_selfield-exit  = 'X'.
          it_filt-fieldname = 'CHECKBOX'.
          it_filt-tabname   = '1'.
          it_filt-valuf     = 'X'.
          it_filt-intlen    = '1'.
          it_filt-inttype   = 'C'.
          it_filt-datatype  = 'CHAR'.
          it_filt-valuf_int = 'X'.
          it_filt-sign0     = 'E'.
          it_filt-optio     = 'EQ'.
          if it_filt[] is initial.
            append it_filt.
          else.
            modify it_filt index 1.
          endif.
         perform display using i_object.
    PERForm  ALV_LIST_DISPLAY.
    WHEN 'SHOW_DEL'.
          rs_selfield-exit = 'X'.
          free it_filt.
    PERForm  ALV_LIST_DISPLAY.
    when 'SAVE1'.
           select * from zuser_secobjects where
                        appln = zuser_secobjects-appln
                  and   appln_partner = zuser_secobjects-appln_partner
                  and   partner_type = zuser_secobjects-partner_type
                  and   start_date = zuser_secobjects-start_date
                  and   end_date = zuser_secobjects-end_date.
          endselect.
          if sy-subrc eq 0.
            message e000(ZV) with 'Duplicate Entry'.
          endif.
      endcase.
    endform.
    *&      Form  delete
    form delete.
      data : begin of is_secobjects occurs 0.
              include structure zuser_secobjects.
      data : checkbox type c.
      data : end of is_secobjects.
      is_secobjects-checkbox = 'X'.
      modify is_secobjects
        from it_secobjects
        transporting checkbox
      where checkbox = 'X'.
    endform.
    *&      Form  get_data
    form get_data.
      select * from zuser_secobjects
      into table it_secobjects.
    endform.                    " get_data
    *&      Form  prepare_fieldcatalog
          text
    -->  p1        text
    <--  p2        text
    form prepare_fieldcatalog.
      clear: w_field,i_field.
      refresh:i_field.
      i_field-key = 'X'.
      i_field-col_pos = 1.
      i_field-ddictxt = 'S'.
      i_field-seltext_s = '@11@'.
      i_field-checkbox = 'X'.
      i_field-input = 'X'.
      i_field-fieldname = 'HEADER'.
      i_field-outputlen = 0.
      append i_field.
      clear i_field.
      w_field-fieldname = 'APPLN'.
      w_field-tabname = 'IT_SECOBJECTS'.
      w_field-seltext_l = text-m01.
      w_field-outputlen = '10'.
      w_field-col_pos = 1.
      append w_field to i_field.
      clear w_field.
      w_field-fieldname = 'APPLN_USER'.
      w_field-tabname = 'IT_SECOBJECTS'.
      w_field-just = 'C'.
      w_field-seltext_l = text-m02.
      w_field-outputlen = '7'.
      w_field-col_pos = 2.
      append w_field to i_field.
      clear w_field.
    endform.                    " prepare_fieldcatalog
    *&      Form  ALV_LIST_DISPLAY
          text
    -->  p1        text
    <--  p2        text
    form alv_list_display.
      i_repid = sy-repid.
      is_lout-box_fieldname = 'CHECKBOX'.
      it_filt-fieldname = 'CHECKBOX'.
      call function 'REUSE_ALV_LIST_DISPLAY'
           exporting
                i_callback_program       = i_repid
                i_callback_pf_status_set = 'PF_STATUS_SET'
                i_callback_user_command  = 'USER_COMMAND'
                is_layout                = is_lout
                it_fieldcat              = i_field[]
                it_filter                = it_filt[]
                 it_events                = it_evts[]
                i_default                = c_default_vari
                i_save                   = c_save_vari
                is_variant               = is_vari
           tables
                t_outtab                 = it_secobjects.
    endform.                    " ALV_LIST_DISPLAY
    *&      Form  display
          text
         -->P_I_OBJECT  text
    form display using    object.
      case object.
    ENDCASE.
    endform.                    " display
    thanks,
    maheedhar.t

    Hi,
    What do you mean by Hiding the records.
    Deleting completely from the screen.
    You can just delete the records from the internal table and pass to field catalog before displaying again.
    or serach in the slis structrue for hiding the contents of the output.
    reward if useful
    regards,
    Anji

  • Tab not working on ALV report output in Persona

    In normal SAP GUI we can move the cursor position on ALV report output between different column by pressing TAB on keyboard. But in case of persona 2.00, TAB doesn't work and we have to click on each cell of the report output whatever we want to highlight. Is there any settings or SAP note we can implement to so TAB will work on persona.
    Thanks,
    harkamal

    Hi Devendra Singh,
    I think it's not possible to show all field values in another Language (Eg Thai) But it's possible if it's short Text, Long Text etc
    SE63 and follow menu
    Translation
    ABAP Objects
    Short Text / Long Text Etc..
    AND
    Translation
    NON ABAP Objects
    For that also you have to maintain it first in SE63..
    [SAP Help1|http://help.sap.com/erp2005_ehp_04/helpdata/EN/77/5719d2492011d1894a0000e829fbbd/frameset.htm]
    [SAP Help2|http://help.sap.com/erp2005_ehp_04/helpdata/EN/b4/54601d77f38e429ffad9e3e11c1b25/frameset.htm]
    Hope it will solve your problem..
    Thanks & Regards
    ilesh 24x7
    ilesh Nandaniya

  • Action for ENTER KEY is not working in alv grid output (Classical)

    Hi Experts,
      I have searched SDN around 8 hours and could not get any help on my below issue.
      I am developing ALV report using function module (Classical ALV). ALV output has 4 input enable fields, if user enters data in any of those fields and clicks on enter button from key pad..the remaining fields needs to be filled automatically.
      I am facing the issue with enter key, even if i press enter key in the output there is no action and hence no user command triggered. May be i am using wrong funcion code in wrong way.
      Could any one tell me what function code can we assign for ENTER action in PF-STATUS?
    Regards,
    Murali Mohan

    Hi
    Try this simple code, it works fine:
    TYPE-POOLS: SLIS.
    DATA: BEGIN OF ITAB1 OCCURS 0,
           BUKRS LIKE T001-BUKRS,
           BUTXT LIKE T001-BUTXT,
          END OF ITAB1.
    DATA: GT_FIELDCAT   TYPE SLIS_T_FIELDCAT_ALV,
          GT_REPID    LIKE SY-REPID.
    START-OF-SELECTION.
      SELECT BUKRS BUTXT INTO TABLE ITAB1
         FROM T001.
    END-OF-SELECTION.
      GT_REPID = SY-REPID.
      CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
        EXPORTING
          I_PROGRAM_NAME     = GT_REPID
          I_INTERNAL_TABNAME = 'ITAB1'
          I_INCLNAME         = GT_REPID
        CHANGING
          CT_FIELDCAT        = GT_FIELDCAT.
      CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
        EXPORTING
          I_CALLBACK_PROGRAM       = GT_REPID
          I_CALLBACK_PF_STATUS_SET = 'SET_PF_STATUS'
          I_CALLBACK_USER_COMMAND  = 'USER_COMMAND'
          IT_FIELDCAT              = GT_FIELDCAT
        TABLES
          T_OUTTAB                 = ITAB1.
    FORM USER_COMMAND USING R_UCOMM     LIKE SY-UCOMM
                          RS_SELFIELD TYPE SLIS_SELFIELD.
      CASE R_UCOMM.
        WHEN 'ENTER'. MESSAGE I208(00) WITH 'Pressed ENTER key'.
        WHEN OTHERS.
      ENDCASE.
    ENDFORM.                    "USER_COMMAND
    FORM SET_PF_STATUS  USING RT_EXTAB TYPE SLIS_T_EXTAB.
      SET PF-STATUS 'LIST_ALV' EXCLUDING RT_EXTAB.
    ENDFORM.                    "SET_PF_STATUS
    Max

  • Print Preview and Export not working FROM ALV Report

    Hi
    I have this ALV report which is working fine. But when I try to do a print preview it doesn't show the columns which r sorted. The columns r there but the data starts from the one which is not sorted so the layout is all messed up. In the ALV report the columns that r sorted groups them into one, I mean they just show only one time rest of the row for the same thing is blank it doesn't repeat the same data in those column. I am not sure whether that's causing it or not.
    Please help.

    Hi Anwarul,
    do not sort passing parameters for sorting. Create a layout (called ALV variant) or do the sorting online clicking columns(s) and sort icons. It will not change when displayed in print preview.
    What function/object do you use?
    Regards,
    Clemens

  • Download Option Not Working in ALV Using Classes

    Hi,
    Can anyone let me know what im missing since i get only my header downloaded when i download my output to EXCEL.
    Im using ALV using CLASSES.
    Thanks,
    Anita

    REPORT ZTMM_STOCK  MESSAGE-ID zmsg
                    LINE-SIZE 270
                    LINE-COUNT 58
                    NO STANDARD PAGE HEADING.
    tables: YGFMLINV,  "Material Ledger - Inventory Data Extract
            lfa1,      "Vendor Master (General Section)
            setheader, "Set Header and Directory(checking profit center grp)
            mseg,
            t001w,
            mslbh,
            mslb,
            t001.
    Internal Tables Declaration
    data: begin of i_ygfmlinv occurs 0,
           BDATJ like ygfmlinv-bdatj,     "Posting date YYYY
           POPER like ygfmlinv-poper,     "Posting period
           BUKRS like ygfmlinv-bukrs,     "Company Code
           PRCTR like ygfmlinv-prctr,     "Profit center
           WERKS like ygfmlinv-werks,     "Plant
           BKLAS like ygfmlinv-bklas,     "Valuation class
           MATNR like ygfmlinv-matnr,     "Material number
           BWTAR  like ygfmlinv-bwtar,    "Valuation type
           STOCK_IND like ygfmlinv-stock_ind, "Stock indicators
           MEINS like ygfmlinv-meins,    "Base unit of measure
           MLAST like ygfmlinv-mlast,  "Material Price Dtermination: Control
           LBKUM like ygfmlinv-lbkum,      "Total valuated stock
           vprsv like ygfmlinv-vprsv,     "Price control indicator
           lc_mvp_prc like ygfmlinv-lc_mvp_prc, "LC:Moving Avg/Periodic Prc
           LC_CURTP like ygfmlinv-LC_CURTP, "Currency Type
           LC_CURRENCY like ygfmlinv-lc_currency, "Currency Key
           gc_curtp like ygfmlinv-gc_curtp, "Grp.Curr Type
           gc_currency like ygfmlinv-gc_currency, " Grp.Curr
           LC_TOT_AMT like ygfmlinv-lc_tot_amt, "LC: Total Amount
           KONTS   LIKE T030-KONTS,       "G/L Account No
           XBILK   LIKE SKA1-XBILK,
           lc_cogs like ygfmlinv-lc_var_amt,
           lifnr like mslbh-lifnr,
           lc_trfix_amt like ygfmlinv-lc_trfix_amt,
           lc_lofix_amt like ygfmlinv-lc_lofix_amt,
           lc_var_amt like ygfmlinv-lc_var_amt,
           lc_utp_amt like ygfmlinv-lc_utp_amt,
          end of i_ygfmlinv.
    data: begin of i_mslbh occurs 0,
          MATNR like mslbh-matnr, "Material number
          SOBKZ like mslbh-sobkz, "Special stock indicator
          LIFNR like mslbh-lifnr, "Account number of vendor or creditor
          WERKS like mslbh-werks, "Plant
          CHARG like mslbh-charg, "Batch number
          LFGJA like mslbh-lfgja, "Fiscal year of current period
          LFMON like mslbh-lfmon, "Current period (posting period)
          LBLAB like mslbh-lblab, "Current period (posting period)
          LBINS like mslbh-lbins, "Stock in quality inspection
         end of i_mslbh.
    data: begin of i_MSLB occurs 0,
           MATNR like mslb-matnr,
           WERKS like mslb-werks,
           SOBKZ like mslb-sobkz,
           LIFNR like mslb-lifnr,
           LFGJA like mslb-lfgja,
           LFMON like mslb-lfmon,
           LBLAB like mslb-lblab,
           LBINS like mslb-lbins,
           LBEIN like mslb-lbein,
          end of i_mslb.
    *data: begin of i_t030 occurs 0,
         KTOPL like t030-ktopl,
         BKLAS like t030-bklas,
         KONTS like t030-konts,
         end of i_t030.
    *data: begin of i_ska1 occurs 0,
         SAKNR like ska1-saknr,
         XBILK like ska1-xbilk,
         end of i_ska1.
    DATA : BEGIN OF i_non_subc OCCURS 0,
          MATNR         LIKE YGFMLINV-MATNR,        "Material
          WERKS         LIKE YGFMLINV-WERKS,    "Plant,
          bukrs         like ygfmlinv-bukrs,    "Company Code
          BKLAS         LIKE YGFMLINV-BKLAS,    "Val Class
          PRCTR         LIKE YGFMLINV-PRCTR,   "Profit Center
          BWTAR         LIKE YGFMLINV-BWTAR,    "Val Type
          LBKUM         LIKE YGFMLINV-LBKUM,        "QTY
          PEINH         LIKE YGFMLINV-PEINH,        "Price Unit
          MEINS         LIKE YGFMLINV-MEINS,        "Unit of Measure
          lc_currency   like ygfmlinv-lc_currency,
          lc_curtp      like ygfmlinv-lc_curtp,
          gc_currency   like ygfmlinv-gc_currency,
          gc_curtp   like ygfmlinv-gc_currency,
          LC_VAR_AMT    LIKE YGFMLINV-LC_VAR_AMT,   "LC :Variable Amt
          LC_TRFIX_AMT  LIKE YGFMLINV-LC_TRFIX_AMT, "LC :Trnsfer Fixed Amt
          LC_LOFIX_AMT  LIKE YGFMLINV-LC_LOFIX_AMT, "LC:Local Fixed Amt.
          LC_COGS       LIKE YGFMLINV-LC_VAR_AMT,  "Total LC fixed COGS
                                                   "added as per CC01507
          LC_UTP_AMT    LIKE YGFMLINV-LC_UTP_AMT,   "LC:UTP Amount.
          LC_TR_VAL     LIKE YGFMLINV-LC_LOFIX_AMT,"TotalLC Transfer value
          XBILK         LIKE SKA1-XBILK,            "Balance Indicator
          gc_var_amt    like ygfmlinv-gc_var_amt,
          gc_trfix_amt like ygfmlinv-gc_trfix_amt,
          gc_lofix_amt like ygfmlinv-gc_lofix_amt,
          gc_cogs      like ygfmlinv-gc_var_amt,
          gc_utp_amt   like ygfmlinv-gc_utp_amt,
          gc_tr_val    like ygfmlinv-gc_lofix_amt,
    END OF i_non_subc.
    Final Output Table
    types: begin of t_output,
          matnr like ygfmlinv-matnr,
          lifnr like mslbh-lifnr,
          werks like ygfmlinv-werks,
          spstk like mslbh-lblab,
          totstk like ygfmlinv-lbkum,
          lc_currency like ygfmlinv-LC_CURRENCY,
          lc_curtp like ygfmlinv-lc_curtp,
          gc_curtp like ygfmlinv-gc_curtp,
          gc_currency like ygfmlinv-gc_currency,
          name1 like lfa1-name1,
          vprsv like ygfmlinv-vprsv,
          bukrs like ygfmlinv-bukrs,
          mlast like ygfmlinv-mlast,
          meins like ygfmlinv-meins,
          bklas like ygfmlinv-bklas,
          maktx like makt-maktx,
          stdprice(18),
          totval like ygfmlinv-lc_tot_amt,
          sobkz like mslbh-sobkz,
          end of t_output.
    Work Area for Final Output Table
    data: wa_output type t_output.
    ALV Display
    Name of Custom Container added on the screen
    data: G_CONTAINER TYPE SCRFNAME VALUE 'ZGRID_CTRL',
    ALV GRID Instance Reference
          G_GRID1 TYPE REF TO CL_GUI_ALV_GRID, "Grid
    Instance Reference to Custom Container
          G_CUSTOM_CONTAINER TYPE REF TO CL_GUI_CUSTOM_CONTAINER.
    PBO Status
    data: ok_code like sy-ucomm,
    Field Catalog Table
          gT_FIELDCAT      TYPE LVC_T_FCAT,
    Layout Structure
          gs_layout type lvc_s_layo,
    Sorting anf Subtotal
          gt_sort TYPE lvc_s_sort occurs 0,
    gt_output  type standard table  of t_output.
    data: g_curr(2).
          CLASS lcl_event_receiver DEFINITION
    class lcl_event_receiver definition.
      public section.
    Add SUB TOTAL TEXT to the ALV DISPLAY
        methods handle_subtotal_text
            for event subtotal_text of cl_gui_alv_grid
            importing es_subtottxt_info ep_subtot_line e_event_data.
    endclass.
    Declaration for EVENT Receiver
    data: event_receiver type ref to lcl_event_receiver,
         l_subtxt(60) value 'Subtotal Text'.
    field-symbols: <fs> type t_output,
                   <fs1>.
          CLASS LCL_EVENT_RECEIVER IMPLEMENTATION
    CLASS LCL_EVENT_RECEIVER IMPLEMENTATION.
      METHOD HANDLE_SUBTOTAL_TEXT.
    FIELD for which the SUBTOTAL is Calculated
        if es_subtottxt_info-criteria = 'MATNR'.
          ASSIGN EP_SUBTOT_LINE->* TO <FS1>.
          ASSIGN  E_EVENT_DATA->M_DATA->* TO <FS>.
          CONCATENATE es_subtottxt_info-keyword ':MATERIAL'
        <fs>-matnr INTO <fs1>.
        ENDIF.
      ENDMETHOD.                 "HANDLE_SUBTOTAL_TEXT
    ENDCLASS.                    "LCL_EVENT_RECEIVER IMPLEMENTATION
    Constants
    constants: c_eb(2) value 'EB',
               c_m value 'M',
               C_KTOPL(4) VALUE 'TCOA',
               C_KTOSL(3) VALUE 'BSX',
               C_KONTS(4) VALUE '002%'.
    Selection Screen
    selection-screen:begin of block b1 with frame title text-001.
    select-options: s_lifnr for lfa1-lifnr ,       "Vendor
            s_werks for YGFMLINV-werks obligatory, "Plant
            s_prctr for YGFMLINV-prctr, "Pr.Ctr
            s_matnr for ygfmlinv-matnr, "Mat.No
            s_bwtar for mseg-bwtar no-display.
    parameters: p_bukrs like YGFMLINV-bukrs obligatory, "C.Code
          p_pctrgp like  SETHEADER-SETNAME, "Pf.ct.Grp
          p_poper like YGFMLINV-poper obligatory, " Period
          p_bdatj like YGFMLINV-bdatj obligatory, " Year
          r_ccode  radiobutton group rad1 default 'X',
          r_grpcur radiobutton group rad1.
    selection-screen: end of block b1.
    Ranges Declaration
    RANGES : R_PROFIT_CTR FOR CEPC-PRCTR.
           INITIALIZATON
    *initialization.
      Validations for Selection Screen
    Validation for Vendor
    at selection-screen on s_lifnr.
      select single lifnr
               from lfa1
               into lfa1-lifnr
               where lifnr in s_lifnr.
      if sy-subrc ne 0.
        message e039.
      endif.
    Validation for Plant
    at selection-screen on s_werks.
      select single werks
             from t001w
             into t001w-werks
             where werks in s_werks.
      if sy-subrc ne 0.
        message e040.
      endif.
    Validation for Profit Center
    at selection-screen on s_prctr.
      select single prctr
              from ygfmlinv
              into ygfmlinv-prctr
             where prctr in s_prctr.
      if sy-subrc ne 0.
        message e041.
      endif.
    Validation for Company Code
    at selection-screen on p_bukrs.
      select single bukrs
             from t001
             into t001-bukrs
             where bukrs eq p_bukrs.
      if sy-subrc ne 0.
        message e042.
      endif.
    Validation for Profit Center Group
    at selection-screen on p_pctrgp.
      if not p_pctrgp is initial.
        select single setname
              from setheader
              into setheader-setname
              where setname eq p_pctrgp.
        if sy-subrc ne 0.
          message e043.
        endif.
      endif.
    Validation for Fiscal Period
    *at selection-screen on p_poper.
    select single poper
            from YGFMLINV
            into YGFMLINV-poper
            where poper eq p_poper.
    if sy-subrc ne 0.
       message e045.
    endif.
    Validation for Fiscal Year
    *at selection-screen on p_bdatj.
    select single bdatj
            from YGFMLINV
            into YGFMLINV-bdatj
            where bdatj eq p_bdatj.
    if sy-subrc ne 0.
       message e046.
    endif.
    start-of-selection.
      if p_pctrgp ne ' '.
        perform f_profit_center_select.
      endif.
      perform f_data_selection. "using p_profit_center..
    end-of-selection.
      call screen 100.
    *&      Form  f_data_selection
          text
    -->  p1        text
    <--  p2        text
    FORM f_data_selection.
      data: l_flg,
            l_lblab like mslbh-lblab,
            l_name1 like lfa1-name1,
            l_rate like mslbh-lblab,
            l_maktx like makt-maktx,
            l_diff_stk like mslbh-lblab,
            l_totval like ygfmlinv-lc_tot_amt.
    From profit center group get Profit Center
      LOOP AT R_PROFIT_CTR.
        IF R_PROFIT_CTR-LOW EQ R_PROFIT_CTR-HIGH.
          R_PROFIT_CTR-OPTION = 'EQ'.
          R_PROFIT_CTR-HIGH = SPACE.
          MODIFY R_PROFIT_CTR.
        ENDIF.
      ENDLOOP.
      if r_ccode eq 'X'.
        g_curr = '10'.
      else.
        g_curr = '30'.
      endif.
      if g_curr eq '10'.
    Fetch TOTAL STOCK ,VALUE from ML - Inv. Data Extract Table
        select BDATJ POPER BUKRS PRCTR WERKS BKLAS MATNR
                 BWTAR  STOCK_IND MEINS MLAST LBKUM
                 vprsv lc_mvp_prc LC_CURTP
                 LC_CURRENCY LC_TOT_AMT
                 lc_var_amt LC_UTP_AMT
                 lc_trfix_amt lc_lofix_amt
                 gc_curtp gc_currency
                 from YGFMLINV
                 into corresponding fields of table i_YGFMLINV
                 where bdatj eq p_bdatj and
                       poper eq p_poper and
                       bukrs eq p_bukrs and
                       werks in s_werks and
                       matnr in s_matnr and
                     STOCK_IND eq c_m and
                       trans_type eq c_eb and
                       lc_curtp eq g_curr.
      else.
    Fetch TOTAL STOCK ,VALUE from ML - Inv. Data Extract Table
        select BDATJ POPER BUKRS PRCTR WERKS BKLAS MATNR
                 BWTAR  STOCK_IND MEINS MLAST LBKUM
                 vprsv lc_mvp_prc LC_CURTP
                 LC_CURRENCY LC_TOT_AMT
                 lc_var_amt LC_UTP_AMT
                 lc_trfix_amt lc_lofix_amt
                 gc_curtp gc_currency
                 from YGFMLINV
                 into corresponding fields of table i_YGFMLINV
                 where bdatj eq p_bdatj and
                       poper eq p_poper and
                       bukrs eq p_bukrs and
                       werks in s_werks and
                       matnr in s_matnr and
                     STOCK_IND eq c_m and
                       trans_type eq c_eb and
                       gc_curtp eq g_curr.
      endif.
    Delete Entries not in Profit Center range
      LOOP AT I_YGFMLINV.
        IF  NOT I_YGFMLINV-PRCTR IN R_PROFIT_CTR.
          DELETE I_YGFMLINV.
        ENDIF.
      ENDLOOP.
      if not i_ygfmlinv[] is initial.
        data l_date like mkpf-budat.
        move : p_bdatj to l_date(4),
               p_poper to l_date+4(2),
               '31' to l_date+6(2).
    Get the TOTAL STOCK for Vendor and Material
        SELECT     MATNR
                   WERKS
                   CHARG
                   SOBKZ
                   LIFNR
                   LFGJA
                   LFMON
                   LBLAB
                   LBINS
                   FROM MSLBH INTO corresponding fields of TABLE I_MSLBH
                   for all entries in i_ygfmlinv
                   WHERE MATNR eq i_ygfmlinv-matnr and
                        WERKS EQ i_ygfmlinv-WERKS AND
                       SOBKZ in p_stkind AND
                        LIFNR in s_LIFNR AND
                        LFGJA GE P_BDATJ and
                        lfmon eq p_poper.
        if sy-subrc eq 0.
          DELETE I_MSLBH WHERE LFGJA EQ P_BDATJ AND
                               LFMON LT P_POPER.
        endif.
      endif.
      sort i_mslbh by matnr lifnr werks lfgja lfmon.
      sort i_ygfmlinv by matnr  werks bdatj poper.
      loop at i_mslbh.
        l_lblab = l_lblab + i_mslbh-lblab.
        at end of lifnr.
          l_flg = 'X'.
        endat.
        read table i_ygfmlinv with key matnr = i_mslbh-matnr
                                       werks = i_mslbh-werks
                                       bdatj = i_mslbh-lfgja
                                       poper = i_mslbh-lfmon
                                       binary search.
        if sy-subrc eq 0.
          select single name1 from lfa1 into l_name1
                   where lifnr eq i_mslbh-lifnr.
          if sy-subrc eq 0.
            select single maktx
                      from makt
                      into l_maktx
                      where matnr eq i_mslbh-matnr and
                            spras eq sy-langu.
            if l_flg eq 'X'.
    Subtract Total stk from Special Stock Vendor to get the difference
              l_diff_stk =   i_ygfmlinv-lbkum - l_lblab.
              move : i_mslbh-matnr to wa_output-matnr,
                     i_mslbh-lifnr to wa_output-lifnr,
                     i_mslbh-werks to wa_output-werks,
                     l_lblab to wa_output-totstk,
                     l_name1 to wa_output-name1,
                     i_ygfmlinv-vprsv to wa_output-vprsv,
                     i_ygfmlinv-meins to wa_output-meins,
                     i_ygfmlinv-lc_mvp_prc to wa_output-stdprice,
                     i_ygfmlinv-mlast to wa_output-mlast,
                     i_ygfmlinv-bukrs to wa_output-bukrs,
                     i_ygfmlinv-bklas to wa_output-bklas,
                     i_mslbh-sobkz to wa_output-sobkz.
              if g_curr eq '10'.
                move: i_ygfmlinv-lc_curtp to wa_output-lc_curtp,
                      i_ygfmlinv-lc_currency to wa_output-lc_currency.
              else.
                move: i_ygfmlinv-gc_curtp to wa_output-gc_curtp,
                      i_ygfmlinv-gc_currency to wa_output-gc_currency.
              endif.
              if wa_output-totstk ne 0.
                l_rate = i_ygfmlinv-LC_TOT_AMT  / i_ygfmlinv-lbkum.
                wa_output-totval =  l_rate * l_lblab.
              endif.
              append wa_output to gt_output.
              move wa_output-totval to l_totval.
              clear: l_rate,wa_output.
              if l_diff_stk ne 0.
                wa_output-totval = i_ygfmlinv-LC_TOT_AMT  -  l_totval.
                move: i_mslbh-matnr to wa_output-matnr,
    *Included - Remove
                      i_mslbh-matnr to wa_output-matnr,
                      i_mslbh-werks to wa_output-werks,
                      l_diff_stk to wa_output-totstk,
                      i_ygfmlinv-vprsv to wa_output-vprsv,
                      i_ygfmlinv-meins to wa_output-meins,
                      i_ygfmlinv-lc_mvp_prc to wa_output-stdprice,
                      i_ygfmlinv-mlast to wa_output-mlast,
                      i_ygfmlinv-bukrs to wa_output-bukrs,
                      i_ygfmlinv-bklas to wa_output-bklas.
                if g_curr eq '10'.
                  move: i_ygfmlinv-lc_curtp to wa_output-lc_curtp,
                        i_ygfmlinv-lc_currency to wa_output-lc_currency.
                else.
                  move: i_ygfmlinv-gc_curtp to wa_output-gc_curtp,
                        i_ygfmlinv-gc_currency to wa_output-gc_currency.
                endif.
                append wa_output to gt_output.
                clear: i_ygfmlinv,l_flg,l_lblab,l_name1,wa_output,
                       i_mslbh.
              endif.
            endif.
          endif.
        endif.
      endloop.
      sort: i_ygfmlinv by matnr werks,
                i_mslbh by matnr werks.
      LOOP AT I_YGFMLINV.
        read table i_mslbh with key matnr = i_ygfmlinv-matnr
                                        binary search.
        if sy-subrc eq 0.
          delete i_ygfmlinv.
          clear i_ygfmlinv.
        else.
          MOVE-CORRESPONDING I_YGFMLINV TO i_non_subc.
          APPEND i_non_subc.
          CLEAR I_YGFMLINV.
        endif.
      ENDLOOP.
      sort i_non_subc by matnr werks.
      data: l_lc_cogs(16) type p decimals 2,
            l_lc_tr_val(16) type p decimals 2,
            l_gc_cogs(16) type p decimals 2,
            l_gc_tr_val(16) type p decimals 2.
      LOOP AT i_non_subc.
        if g_curr eq '10'.
          l_LC_COGS   = i_non_subc-LC_TRFIX_AMT +
                        i_non_subc-LC_LOFIX_AMT.
          l_LC_TR_VAL = i_non_subc-LC_VAR_AMT + l_LC_COGS +
                        i_non_subc-LC_UTP_AMT.
        else.
          l_gc_cogs  = i_non_subc-gc_trfix_amt + i_non_subc-gc_lofix_amt.
          l_gc_tr_val = i_non_subc-gc_var_amt + i_non_subc-gc_cogs +
                        i_non_subc-gc_utp_amt.
        endif.
        at end of matnr.
          l_flg = 'X'.
        endat.
        if l_flg eq 'X'.
          move: i_non_subc-matnr to wa_output-matnr,
                i_non_subc-werks to wa_output-werks,
                i_non_subc-lbkum to wa_output-totstk,
                i_non_subc-meins to wa_output-meins,
                i_non_subc-bukrs to wa_output-bukrs,
                i_non_subc-bklas to wa_output-bklas,
                i_non_subc-lc_curtp to wa_output-lc_curtp,
                i_non_subc-lc_currency to wa_output-lc_currency,
                i_non_subc-gc_curtp to wa_output-gc_curtp,
                i_non_subc-gc_currency to wa_output-gc_currency.
          if g_curr eq '10'.
            move l_lc_tr_val to wa_output-totval.
          else.
            move  l_gc_tr_val to wa_output-totval.
          endif.
             i_non_subc-mlast to wa_output-mlast.
          select single maktx
                    from makt
                    into l_maktx
                    where matnr eq i_non_subc-matnr and
                          spras eq sy-langu.
          if sy-subrc eq 0.
            move l_maktx to wa_output-maktx.
            append wa_output to gt_output .
            clear: wa_output,l_flg,l_lc_tr_val,l_lc_cogs,
                   l_gc_cogs,l_gc_tr_val.
          endif.
        endif.
      ENDLOOP.
    ENDFORM.                    " f_data_selection
    *&      Module  STATUS_0100  OUTPUT
          text
    MODULE STATUS_0100 OUTPUT.
      SET PF-STATUS 'ZPF_STATUS'.
      SET TITLEBAR 'ZTITLE'.
    ENDMODULE.                 " STATUS_0100  OUTPUT
    *&      Module  alv_display  OUTPUT
          text
    MODULE alv_display OUTPUT.
      data: total type ref to data,
            subtotal1 type ref to data.
    field-symbols <total> like gt_output .
    field-symbols <subtotal1> like gt_output.
      if g_grid1 is initial.
        perform f_create_objects.
        perform f_build_field_catalog changing gt_fieldcat.
        perform f_prepare_layout changing gs_layout.
        perform f_sort_sub_total changing  gt_sort.
        CALL METHOD G_GRID1->GET_SORT_CRITERIA
          IMPORTING
            ET_SORT = gt_sort[]  .
       CALL METHOD g_grid1->GET_SUBTOTALS
         IMPORTING
           EP_COLLECT00   = total
           EP_COLLECT01   = subtotal1 .
               EP_COLLECT02   =
               EP_COLLECT03   =
               EP_COLLECT04   =
               EP_COLLECT05   =
               EP_COLLECT06   =
               EP_COLLECT07   =
               EP_COLLECT08   =
               EP_COLLECT09   =
               ET_GROUPLEVELS =             .
       assign total->* to <total>.
       assign subtotal1->* to <subtotal1>.
    *ALV Display - Specify Sorting,Filtering Criteria
        if gt_output[] is initial.
          message i015.
        endif.
        CALL METHOD G_GRID1->SET_TABLE_FOR_FIRST_DISPLAY
          EXPORTING
       I_BYPASSING_BUFFER            =
       I_BUFFER_ACTIVE               =
       I_CONSISTENCY_CHECK           =
       I_STRUCTURE_NAME              =
       IS_VARIANT                    =
       I_SAVE                        =
       I_DEFAULT                     = 'X'
            IS_LAYOUT                  = gs_layout
       IS_PRINT                      =
       IT_SPECIAL_GROUPS             =
       IT_TOOLBAR_EXCLUDING          =
       IT_HYPERLINK                  =
       IT_ALV_GRAPHICS               =
       IT_EXCEPT_QINFO               =
          CHANGING
            IT_OUTTAB                  = gt_output[]
            IT_FIELDCATALOG            = gt_fieldcat
            IT_SORT                    = gt_sort[]
       IT_FILTER                     =
          EXCEPTIONS
            INVALID_PARAMETER_COMBINATION = 1
            PROGRAM_ERROR                 = 2
            TOO_MANY_LINES                = 3
            others                        = 4        .
        IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
               WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
        ENDIF.
      else.
        CALL METHOD G_GRID1->REFRESH_TABLE_DISPLAY
    EXPORTING
       IS_STABLE      =
       I_SOFT_REFRESH =
          EXCEPTIONS
            FINISHED       = 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.
    ENDMODULE.                 " alv_display  OUTPUT
    *&      Module  USER_COMMAND_0100  INPUT
          text
    MODULE USER_COMMAND_0100 INPUT.
      case ok_code.
        when 'BACK'.
          set screen '0'.
          leave screen.
        when 'EXIT' or 'CANCEL'.
          PERFORM EXIT_PROGRAM.
      endcase.
      clear ok_code.
    ENDMODULE.                 " USER_COMMAND_0100  INPUT
    *&      Form  f_create_objects
          text
    -->  p1        text
    <--  p2        text
    FORM f_create_objects.
    Creating Custom Container Objects and GRID
      IF G_grid1 IS INITIAL.
    *Creating Custom Container Instance
    Pass the name of the control that you have created on the screen
        CREATE OBJECT G_CUSTOM_CONTAINER
               EXPORTING CONTAINER_NAME = 'ZGRID_CTRL'.
    *Creating ALV Grid Instance
        CREATE OBJECT G_GRID1 EXPORTING I_PARENT = G_CUSTOM_CONTAINER.
      endif.
    ENDFORM.                    " f_create_objects
    *&      Form  f_build_field_catalog
          text
    -->  p1        text
    <--  p2        text
    FORM f_build_field_catalog changing pt_fieldcat type lvc_t_fcat.
      data ls_fcat type lvc_s_fcat.
    Val Type
      ls_fcat-fieldname = 'BUKRS'.
      ls_fcat-inttype    = 'C'.
      ls_fcat-outputlen = '4'.
      ls_fcat-coltext   = 'Val.Type'.
      ls_fcat-seltext   = 'Val.Type'.
      ls_fcat-col_pos   = '1'.
      append ls_fcat to pt_fieldcat.
      clear ls_fcat.
    Val.Class
      ls_fcat-fieldname = 'BKLAS'.
      ls_fcat-TABNAME = 'YGFMLINV'.
      ls_fcat-outputlen = '4'.
      ls_fcat-coltext   = 'Val.Class'.
      ls_fcat-seltext   = 'Val.Class'.
      ls_fcat-col_pos   = '2'.
      append ls_fcat to pt_fieldcat.
      clear ls_fcat.
    *Plant
      ls_fcat-fieldname = 'WERKS'.
      ls_fcat-TABNAME = 'YGFMLINV'.
      ls_fcat-outputlen = '4'.
      ls_fcat-coltext   = 'Plant'.
      ls_fcat-seltext   = 'Plant'.
      ls_fcat-col_pos   = '3'.
      append ls_fcat to pt_fieldcat.
      clear ls_fcat.
    *Material
      ls_fcat-fieldname = 'MATNR'.
      ls_fcat-TABNAME = 'YGFMLINV'.
      ls_fcat-outputlen = '18'.
      ls_fcat-coltext   = 'Material'.
      ls_fcat-seltext   = 'Material'.
      ls_fcat-col_pos   = '4'.
      append ls_fcat to pt_fieldcat.
      clear ls_fcat.
    *Description
      ls_fcat-fieldname = 'MAKTX'.
      ls_fcat-TABNAME = 'MAKT'.
      ls_fcat-outputlen = '40'.
      ls_fcat-coltext   = 'Description'.
      ls_fcat-seltext   = 'Description'.
      ls_fcat-col_pos   = '5'.
      append ls_fcat to pt_fieldcat.
      clear ls_fcat.
    *Price Control
      ls_fcat-fieldname = 'VPRSV'.
      ls_fcat-TABNAME = 'YGFMLINV'.
      ls_fcat-outputlen = '1'.
      ls_fcat-coltext   = 'Price Control'.
      ls_fcat-seltext   = 'Price Control'.
      ls_fcat-col_pos   = '6'.
      append ls_fcat to pt_fieldcat.
      clear ls_fcat.
    *Price Determination
      ls_fcat-fieldname = 'MLAST'.
      ls_fcat-TABNAME = 'YGFMLINV'.
      ls_fcat-outputlen = '1'.
      ls_fcat-coltext   = 'Price Determination'.
      ls_fcat-seltext   = 'Price Determination'.
      ls_fcat-col_pos   = '7'.
      append ls_fcat to pt_fieldcat.
      clear ls_fcat.
    Total Stock
      ls_fcat-fieldname = 'TOTSTK'.
      ls_fcat-REF_TABLE = 'YGFMLINV'.
      ls_fcat-REF_FIELD = 'LBKUM'.
      ls_fcat-QFIELDNAME = 'MEINS'.
      ls_fcat-IFIELDNAME = 'YGFMLINV'.
      ls_fcat-coltext   = 'Total Stock'.
      ls_fcat-seltext   = 'Total Stock'.
      ls_fcat-col_pos   = '8'.
      ls_fcat-do_sum = 'X'.
      append ls_fcat to pt_fieldcat.
      clear ls_fcat.
    Std. Price
      ls_fcat-fieldname = 'STDPRICE'.
      ls_fcat-TABNAME = 'YGFMLINV'.
      ls_fcat-REF_TABLE = 'YGFMLINV'.
      ls_fcat-ref_field = 'LC_MVP_PRC'.
      ls_fcat-coltext = 'Std.Price'.
      ls_fcat-col_pos   = '9'.
      append ls_fcat to pt_fieldcat.
      clear ls_fcat.
      if g_curr eq '10'.
    Currency Type
        ls_fcat-fieldname = 'LC_CURTP'.
        ls_fcat-TABNAME = 'YGFMLINV'.
        ls_fcat-coltext = 'Currency Type'.
        ls_fcat-seltext = 'Currency Type'.
        ls_fcat-col_pos = '10'.
        append ls_fcat to pt_fieldcat.
        clear ls_fcat.
      else.
    Currency Type
        ls_fcat-fieldname = 'GC_CURTP'.
        ls_fcat-TABNAME = 'YGFMLINV'.
        ls_fcat-coltext = 'Currency Type'.
        ls_fcat-seltext = 'Currency Type'.
        ls_fcat-col_pos = '10'.
        append ls_fcat to pt_fieldcat.
        clear ls_fcat.
      endif.
    *Per Unit Price
      ls_fcat-fieldname = 'STDPRICE'.
      ls_fcat-TABNAME = 'YGFMLINV'.
      ls_fcat-ref_table = 'YGFMLINV'.
      ls_fcat-ref_field = 'LC_MVP_PRC'.
    ls_fcat-currency  = 'LC_CURRENCY'.
      ls_fcat-coltext = 'Per.Unit.Price'.
      ls_fcat-seltext = 'Per.Unit.Price'.
      ls_fcat-col_pos   = '11'.
      append ls_fcat to pt_fieldcat.
      clear ls_fcat.
    Quantity Measurement
      ls_fcat-fieldname = 'MEINS'.
      ls_fcat-TABNAME = 'YGFMLINV'.
      ls_fcat-coltext = 'Base Unit'.
      ls_fcat-seltext = 'Base Unit'.
      ls_fcat-col_pos = '12'.
      append ls_fcat to pt_fieldcat.
      clear ls_fcat.
    *Total Value
      ls_fcat-fieldname = 'TOTVAL'.
      ls_fcat-TABNAME = 'YGFMLINV'.
      ls_fcat-currency  = 'GC_CURRENCY'.
      ls_fcat-coltext   = 'Total Value'.
      ls_fcat-seltext   = 'Total Value'.
      ls_fcat-col_pos   = '13'.
      ls_fcat-do_sum = 'X'.
      append ls_fcat to pt_fieldcat.
      clear ls_fcat.
    *Value/period
      ls_fcat-fieldname = 'TOTVAL'.
      ls_fcat-TABNAME = 'YGFMLINV'.
      ls_fcat-currency  = 'GC_CURRENCY'.
      ls_fcat-coltext   = 'Value/Period'.
      ls_fcat-seltext   = 'Value/Period'.
      ls_fcat-col_pos   = '14'.
      append ls_fcat to pt_fieldcat.
      clear ls_fcat.
    *Vendor
      ls_fcat-fieldname = 'LIFNR'.
      ls_fcat-TABNAME = 'LFA1'.
      ls_fcat-coltext   = 'Vendor'.
      ls_fcat-seltext   = 'Vendor'.
      ls_fcat-col_pos   = '15'.
      append ls_fcat to pt_fieldcat.
      clear ls_fcat.
    *Vendor Description
      ls_fcat-fieldname = 'NAME1'.
      ls_fcat-TABNAME = 'LFA1'.
      ls_fcat-coltext = 'Vend.Desc'.
      ls_fcat-seltext = 'Vend.Desc'.
      ls_fcat-col_pos   = '16'.
      append ls_fcat to pt_fieldcat.
      clear ls_fcat.
    *Special Stock Indicator
      ls_fcat-fieldname = 'SOBKZ'.
      ls_fcat-TABNAME = 'MSLBH'.
      ls_fcat-coltext = 'Spl.Stock Ind'.
      ls_fcat-seltext = 'Spl.Stock Ind'.
      ls_fcat-col_pos   = '17'.
      append ls_fcat to pt_fieldcat.
      clear ls_fcat.
    ENDFORM.                    " f_build_field_catalog
    *&      Form  f_prepare_layout
          text
         <--P_GS_LAYOUT  text
    FORM f_prepare_layout CHANGING P_GS_LAYOUT type lvc_s_layo.
      p_gs_layout-zebra = 'X'.
      p_gs_layout-grid_title = 'Material List: Prices and Inventory Values'.
      p_gs_layout-smalltitle ='X'.
    p_gs_layout-no_totline = 'X'.
      p_gs_layout-no_totarr = 'X'.
    p_gs_layout-no_totexp = 'X'.
    p_gs_layout-totals_bef = 'X'.
    ENDFORM.                    " f_prepare_layout
    *&      Form  f_profit_center_select
    Validate the Profit Center Groups with Profit Center
    -->  p1        text
    <--  p2        text
    FORM f_profit_center_select.
      DATA:V_RETCODE LIKE BAPIRET2,
           V_GROUPNAME LIKE  BAPICO_GROUP-GROUPNAME ,
           p_kokrs like CEPC-KOKRS  value 'DU01',
           I_HIERARCHYNODES LIKE BAPISET_HIER OCCURS 0 WITH HEADER LINE,
           I_PRCTR LIKE BAPI1116_VALUES OCCURS 0 WITH HEADER LINE.
      V_GROUPNAME = P_PCTRGP.
      CALL FUNCTION 'BAPI_PROFITCENTERGRP_GETDETAIL'
           EXPORTING
                CONTROLLINGAREA = P_KOKRS
                GROUPNAME       = V_GROUPNAME
           IMPORTING
                RETURN          = V_RETCODE
           TABLES
                HIERARCHYNODES  = I_HIERARCHYNODES
                HIERARCHYVALUES = I_PRCTR.
      LOOP AT I_PRCTR.
        R_PROFIT_CTR-LOW = I_PRCTR-VALFROM.
        R_PROFIT_CTR-HIGH = I_PRCTR-VALTO.
        R_PROFIT_CTR-SIGN = 'I'.
        R_PROFIT_CTR-OPTION = 'BT'.
        APPEND R_PROFIT_CTR.
      ENDLOOP.
    ENDFORM.                    " f_profit_center_select
    *&      Form  f_sort_sub_total
          text
         <--P_GT_SORT  text
    FORM f_sort_sub_total CHANGING P_GT_SORT.
      DATA: ls_sort TYPE lvc_s_sort occurs 0 with header line.
    ls_sort-spos = '1' .
      ls_sort-fieldname = 'MATNR'.
      ls_sort-up = 'X'.
      ls_sort-subtot = 'X'.
      ls_sort-expa ='X'.
      ls_sort-group = 'UL'.
      append ls_sort TO gt_sort.
    ENDFORM.                    " f_sort_sub_total
    *&      Form  EXIT_PROGRAM
          text
    -->  p1        text
    <--  p2        text
    FORM EXIT_PROGRAM.
      data: g_repid like sy-repid.
      g_repid = sy-repid.
      CALL METHOD G_CUSTOM_CONTAINER->FREE.
      CALL METHOD CL_GUI_CFW=>FLUSH.
      IF SY-SUBRC NE 0.
    add your handling, for example
        CALL FUNCTION 'POPUP_TO_INFORM'
             EXPORTING
                  TITEL = G_REPID
                  TXT2  = SY-SUBRC
                  TXT1  = 'Error in Flush'(009).
      ENDIF.
      LEAVE PROGRAM.
    ENDFORM.                    " EXIT_PROGRAM

  • Filter Functionality is not working in ALV

    Hi,
    I have a ALV Report which contains a column named Delivery Status. The Delivery Status could be of 3 types->Not Delivered, Open and Fully Delivered.
    But the report is not getting filtered with respect to a certain delvery status.
    For example if I select the " Delivery Status" column and choose set filter and put "Open" as filter criteria, it returns me null value where as the report contains records having "Open" status.
    Please provide some solution.

    See the below example
    COL_POS = COL_POS + 1.
    GT_FIELDCAT-COL_POS = COL_POS.
    GT_FIELDCAT-FIELDNAME = 'EBELN'.
    GT_FIELDCAT-TABNAME = P_DETAIL.
    GT_FIELDCAT-REF_FIELD = 'EBELN'.
    GT_FIELDCAT-REF_TABLE = 'EKKO'.
    GT_FIELDCAT-KEY = 'X'.
    APPEND GT_FIELDCAT.
    CLEAR GT_FIELDCAT.
    can u please modify ur fieldcat ? remove all this..
    s_fieldcat-datatype = 'CHAR'.
    s_fieldcat-no_zero = ''.
    s_fieldcat-lzero = 'X'.
    s_fieldcat-NO_CONVEXT = 'X'.
    Regards
    Ravi

  • Why this code is not working for alv

    Dear
    Regards,
    i have implemented the same program for ALV which i have used earlier in the reports. but now it is showing no output:
    *& Report  ZTCT1_ALV2                                                  *
    REPORT  ztct1_alv2                              .
    CLASS lcl_event_receiver DEFINITION DEFERRED.
    * INCLUDING TABLES.
    TABLES: vbrk,
            vbrp,
            kna1,
            t001w,
            makt.
    * DECLARATION OF INTERNAL TABLES.
    DATA: BEGIN OF itab OCCURS 0,  "Including the fields of VBRK and VBRP
            kunag LIKE vbrk-kunag, "Customer Code
            name1 LIKE kna1-name1, "Customer Name
            vbeln LIKE vbrk-vbeln, "Invoice #
            fkdat LIKE vbrk-fkdat, "Invoice Date
            werks LIKE vbrp-werks, "Plant
            name2 LIKE t001w-name1,"Plant Description
            matnr LIKE vbrp-matnr, "Material #
            maktx LIKE makt-maktx, "Material Description
            meins LIKE vbrp-meins, "Unit of Measure
            fklmg LIKE vbrp-fklmg, "Quantity
            netwr LIKE vbrp-netwr, "Amount
          END OF itab,
          BEGIN OF itnm OCCURS 0,  "Including the fields of VBRK and KNA1
            kunag LIKE vbrk-kunag, "Customer Code
            name1 LIKE kna1-name1, "Customer Name
          END OF itnm,
          BEGIN OF itpt OCCURS 0,  "Including the fields of VBRP and T001W
            werks LIKE vbrp-werks, "Plant
            name1 LIKE t001w-name1,"Plant Description
          END OF itpt,
          BEGIN OF itmt OCCURS 0,  "Including the fields of VBRP and MAKT
            matnr LIKE vbrp-matnr, "Material #
            maktx LIKE makt-maktx, "Material description
          END OF itmt,
          BEGIN OF itsm OCCURS 0,
            kunag LIKE kna1-kunnr,
            name1 LIKE kna1-name1,
            fklmg LIKE vbrp-fklmg,
            netwr LIKE vbrp-netwr,
          END OF itsm,
          ok_code            LIKE sy-ucomm,
          save_ok            LIKE sy-ucomm,
          g_max              TYPE i VALUE 100,
          g_repid            LIKE sy-repid,
          gs_layout          TYPE lvc_s_layo,
          g_container        TYPE scrfname VALUE 'CUST_CONT',
          grid1              TYPE REF TO cl_gui_alv_grid,
          g_custom_container TYPE REF TO cl_gui_custom_container,
          grid2              TYPE REF TO cl_gui_alv_grid,
          gt_sort            TYPE lvc_t_sort,
          gt_fieldcatalog    TYPE lvc_t_fcat,
          w_tot_qty          LIKE vbrp-fklmg,
          w_tot_amt          LIKE vbrp-netwr,
    * Reference to Dialogbox Container.
          dialogbox_container TYPE REF TO cl_gui_dialogbox_container,
    * Reference to local class that handles events of GRID1 and
    * DIALOGBOX_CONTAINER
          event_receiver TYPE REF TO lcl_event_receiver.
    * SELECT-OPTIONS
    SELECTION-SCREEN SKIP 1.
    SELECTION-SCREEN BEGIN OF BLOCK input WITH FRAME TITLE text-000.
    SELECT-OPTIONS: s_werks FOR vbrp-werks, "Plant
                    s_kunag FOR vbrk-kunag, "Customer
                    s_matnr FOR vbrp-matnr, "Material Number
                    s_fkdat FOR vbrk-fkdat. "Invoice Date
    SELECTION-SCREEN END OF BLOCK input .
    SELECTION-SCREEN SKIP 1.
    * START-OF-SELECTION
    START-OF-SELECTION.
      SET SCREEN 100.
    * CLEARING INTERNAL TABLES.
      CLEAR: itab,
             itnm,
             itmt,
             itpt.
    * QUERY FOR JOINING TABLES VBRK AND VBRP
      SELECT vbrk~kunag
             vbrk~vbeln
             vbrk~fkdat
             vbrp~werks
             vbrp~matnr
             vbrp~meins
             vbrp~fklmg
             vbrp~netwr
             INTO CORRESPONDING FIELDS OF TABLE itab
             FROM vbrk
             INNER JOIN vbrp
                 ON vbrk~vbeln = vbrp~vbeln
             WHERE vbrk~kunag IN s_kunag
               AND vbrk~fkdat IN s_fkdat
               AND vbrp~matnr IN s_matnr
               AND vbrp~werks IN s_werks.
    * QUERY FOR JOINING TABLES VBRK AND KNA1
      SELECT kna1~kunnr AS kunag
             kna1~name1
             INTO TABLE itnm
             FROM kna1
             WHERE kna1~kunnr IN s_kunag.
    * QUERY FOR JOINING TABLES VBRP AND T001W
      SELECT t001w~werks
             t001w~name1
             INTO TABLE itpt
             FROM t001w
             WHERE t001w~werks IN s_werks.
    * QUERY FOR JOINING TABLES VBRP AND MAKT
      SELECT makt~matnr
             makt~maktx
             INTO TABLE itmt
             FROM makt
             WHERE makt~matnr IN s_matnr.
    * SORTING INTERNAL TABLES.
      SORT itab BY kunag.
    *    LOOP AT itab.
    *      CLEAR: itmt, itnm, itpt.
    *      READ TABLE itnm WITH KEY kunag = itab-kunag.
    *      READ TABLE itmt WITH KEY matnr = itab-matnr.
    *      READ TABLE itpt WITH KEY werks = itab-werks.
    *      itab-name1 = itnm-name1.
    *      itab-maktx = itmt-maktx.
    *      itab-name2 = itpt-name1.
    *      MODIFY itab.
    *    ENDLOOP.
    *    PERFORM fieldcatalog_init USING gt_fieldcatalog[] 'KUNAG' 'C' 'Customer Code'.
    *    PERFORM fieldcatalog_init USING gt_fieldcatalog[] 'NAME1' 'C' 'Customer Name'.
    *    PERFORM fieldcatalog_init USING gt_fieldcatalog[] 'VBELN' 'C' 'Invoice #'.
    *    PERFORM fieldcatalog_init USING gt_fieldcatalog[] 'FKDAT' 'DATS' 'Invoice Date'.
    *    PERFORM fieldcatalog_init USING gt_fieldcatalog[] 'WERKS' 'C' 'Plant'.
    *    PERFORM fieldcatalog_init USING gt_fieldcatalog[] 'NAME2' 'C' 'Plant Description'.
    *    PERFORM fieldcatalog_init USING gt_fieldcatalog[] 'MATNR' 'C' 'Material #'.
    *    PERFORM fieldcatalog_init USING gt_fieldcatalog[] 'MAKTX' 'C' 'Material Description'.
    *    PERFORM fieldcatalog_init USING gt_fieldcatalog[] 'MEINS' 'C' 'UoM'.
    *    PERFORM fieldcatalog_init USING gt_fieldcatalog[] 'FKLMG' 'QUAN' 'Quantity'.
    *    PERFORM fieldcatalog_init USING gt_fieldcatalog[] 'NETWR' 'CURR' 'Amount'.
        LOOP AT itab.
          CLEAR itsm.
          READ TABLE itnm WITH KEY kunag = itab-kunag.
          itsm-kunag = itab-kunag.
          itsm-name1 = itnm-name1.
          itsm-fklmg = itab-fklmg.
          itsm-netwr = itab-netwr.
          COLLECT itsm.
        ENDLOOP.
        PERFORM fieldcatalog_init USING gt_fieldcatalog[] 'KUNAG' 'C' 'Customer Code'.
        PERFORM fieldcatalog_init USING gt_fieldcatalog[] 'NAME1' 'C' 'Customer Name'.
        PERFORM fieldcatalog_init USING gt_fieldcatalog[] 'FKLMG' 'QUAN' 'Quantity'.
        PERFORM fieldcatalog_init USING gt_fieldcatalog[] 'NETWR' 'CURR' 'Amount'.
      PERFORM sort_build USING gt_sort[].
      PERFORM layout_init USING gs_layout.
    *   LOCAL CLASSES: Definition
    CLASS lcl_event_receiver DEFINITION.
      PUBLIC SECTION.
        METHODS:
        handle_double_click
            FOR EVENT double_click OF cl_gui_alv_grid
                IMPORTING e_row e_column,
        handle_close
            FOR EVENT close OF cl_gui_dialogbox_container
                IMPORTING sender.
      PRIVATE SECTION.
        DATA: dialogbox_status TYPE c.  "'X': does exist, SPACE: does not ex.
    ENDCLASS.                    "lcl_event_receiver DEFINITION
    *   LOCAL CLASSES: Implementation
    CLASS lcl_event_receiver IMPLEMENTATION.
    *   §3.At doubleclick(1): The event DOUBLE_CLICK provides
    *      parameters of the clicked row and column.
    *      Use row parameter to select a line of the
    *      corresponding internal table.
      METHOD handle_double_click.
        DATA: ls_sm LIKE LINE OF itsm,
              wa_itab LIKE ITAB.
    *   read selected row from internal table gt_sflight
        READ TABLE itsm INDEX e_row-index INTO ls_sm.
    *   §4.At Doubleclick(2): Select booking data
    *    READ TABLE ITAB WITH KEY KUNAG = LS_SM-KUNAG.    .
        READ TABLE ITAB INTO WA_ITAB WITH KEY KUNAG = LS_SM-KUNAG.
    *   §5.At doubleclick(3): Create dialogbox to show detail list
    *     (if not already existent)
        IF dialogbox_status IS INITIAL.
          dialogbox_status = 'X'.
          PERFORM create_detail_list.
        ELSE.
          CALL METHOD dialogbox_container->set_visible
            EXPORTING
              visible = 'X'.
          CALL METHOD grid2->refresh_table_display.
        ENDIF.
      ENDMETHOD.                    "handle_double_click
      METHOD handle_close.
    *   §6.Handle the CLOSE-button of the dialogbox
    *   set dialogbox invisible
    *   (the dialogbox is destroyed outomatically when the user
    *   switches to another dynpro).
        CALL METHOD sender->set_visible
          EXPORTING
            visible = space.
    *   In this example closing the dialogbox leads
    *   to make it invisible. It is also conceivable to destroy it
    *   and recreate it if the user doubleclicks a line again.
    *   Displaying a great amount of data has a greater impact on performance.
      ENDMETHOD.                    "handle_close
    ENDCLASS.                    "lcl_event_receiver IMPLEMENTATION
    *   lcl_event_receiver (Implementation)
    *=====================================================================
    *       FORM EXIT_PROGRAM                                             *
    FORM exit_program.
      CALL METHOD g_custom_container->free.
      CALL METHOD cl_gui_cfw=>flush.
      IF sy-subrc NE 0.
    * add your handling, for example
        CALL FUNCTION 'POPUP_TO_INFORM'
          EXPORTING
            titel = g_repid
            txt2  = sy-subrc
            txt1  = 'Error in FLush'(500).
      ENDIF.
      LEAVE TO SCREEN 0.
    ENDFORM.                    "exit_program
    *  MODULE PBO_ALV OUTPUT
    MODULE pbo_alv OUTPUT.
      SET PF-STATUS 'MAIN'.
      SET TITLEBAR 'MAIN100'.
      g_repid = sy-repid.
      IF g_custom_container IS INITIAL.
        READ TABLE itsm.
        CREATE OBJECT g_custom_container
          EXPORTING
            container_name = g_container
          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 = g_repid
              txt2  = sy-subrc
              txt1  = 'The control could not be created'(510).
        ENDIF.
        CREATE OBJECT grid1
          EXPORTING
            i_parent = g_custom_container.
        gs_layout-grid_title = 'Invoice Summary'.
        CALL METHOD grid1->set_table_for_first_display
          EXPORTING
            is_layout       = gs_layout
          CHANGING
            it_outtab       = itsm[]
            it_fieldcatalog = gt_fieldcatalog
            it_sort         = gt_sort.
        CREATE OBJECT event_receiver.
        SET HANDLER event_receiver->handle_double_click FOR grid1.
      ENDIF.
      CALL METHOD cl_gui_control=>set_focus
        EXPORTING
          control = grid1.
    ENDMODULE.                    "PBO_ALV OUTPUT
    *  MODULE PAI_ALV INPUT
    MODULE pai_alv INPUT.
      CALL METHOD cl_gui_cfw=>dispatch.
      CASE sy-ucomm.
        WHEN 'BACK' OR 'EXIT' OR 'CANCEL'.
          LEAVE TO SCREEN 0.
      ENDCASE.
    ENDMODULE.                    "PAI_ALV INPUT
    *&      Form  fieldcatalog_init
    *       text
    *      -->LT_FIELDCATtext
    *      -->VALUE(FIELDtextE)
    *      -->VALUE(FIELDtextE)
    *      -->VALUE(FIELDtextT)
    FORM fieldcatalog_init USING lt_fieldcatalog TYPE lvc_t_fcat
                           value(field_name) value(field_type) value(field_text).
      DATA: ls_fieldcatalog TYPE lvc_s_fcat.
      CLEAR ls_fieldcatalog.
      ls_fieldcatalog-fieldname = field_name.
      ls_fieldcatalog-datatype  = field_type.
      ls_fieldcatalog-reptext   = field_text.
      ls_fieldcatalog-coltext  =  field_text.
      ls_fieldcatalog-seltext  =  field_text.
      ls_fieldcatalog-tooltip  =  field_text.
      APPEND ls_fieldcatalog TO lt_fieldcatalog.
    ENDFORM.                    "fieldcatalog_init
    *&      Form  sort_build
    *       text
    *      -->LT_SORT    text
    FORM sort_build USING lt_sort TYPE lvc_t_sort.
      DATA: ls_sort TYPE lvc_s_sort.
      ls_sort-fieldname = 'KUNAG'.    "Fieldname on which to sort
      ls_sort-up        = 'X'.        "Sort Ascending
      APPEND ls_sort TO lt_sort.
      ls_sort-fieldname = 'NAME1'.    "Fieldname on which to sort
      ls_sort-up        = 'X'.        "Sort Ascending
      APPEND ls_sort TO lt_sort.
    ENDFORM.                    "sort_build
    *&      Form  layout_init
    *       text
    *      -->LS_LAYOUT  text
    FORM layout_init USING ls_layout TYPE lvc_s_layo.
      ls_layout-zebra      = 'X'.
      ls_layout-grid_title = 'Customer Details'.
      ls_layout-sel_mode   = 'A'.
      ls_layout-cwidth_opt = 'X'.
    ENDFORM.                    "layout_init
    *&      Form  create_detail_list
    *         text
    *    -->  p1        text
    *    <--  p2        text
    FORM create_detail_list.
    *   create dialogbox container as dynpro-instance
    *   When the user switches to another screen, it is
    *   destroyed by lifetime mangagement of CFW
      CREATE OBJECT dialogbox_container
          EXPORTING
            top = 150
            left = 150
            lifetime = cntl_lifetime_dynpro
            caption = 'INVOICE DETAILS'(200)
            width = 800
            height = 200.
      CREATE OBJECT grid2
          EXPORTING i_parent = dialogbox_container.
    *   Register ABAP OO event 'CLOSE'. It is not necessary to register this
    *   event at the frontend (this is done during creation).
      SET HANDLER event_receiver->handle_close FOR dialogbox_container.
    *   display data
      gs_layout-grid_title = 'Invoice Details'(100).
      CALL METHOD grid2->set_table_for_first_display
        EXPORTING
          i_structure_name = 'itab'
          is_layout        = gs_layout
        CHANGING
          it_outtab        = itab[]
          it_fieldcatalog  = gt_fieldcatalog
          it_sort          = gt_sort.
      CALL METHOD cl_gui_control=>set_focus
        EXPORTING
          control = grid2.
    ENDFORM.                    " create_detail_list[code][/
    code]

    Hi,
    I also copied and pasted the same code check once again by copying this code and create screens by double clicking on 100.
    CLASS lcl_event_receiver DEFINITION DEFERRED.
    * INCLUDING TABLES.
    TABLES: vbrk,
            vbrp,
            kna1,
            t001w,
            makt.
    * DECLARATION OF INTERNAL TABLES.
    DATA: BEGIN OF itab OCCURS 0,  "Including the fields of VBRK and VBRP
            kunag LIKE vbrk-kunag, "Customer Code
            name1 LIKE kna1-name1, "Customer Name
            vbeln LIKE vbrk-vbeln, "Invoice #
            fkdat LIKE vbrk-fkdat, "Invoice Date
            werks LIKE vbrp-werks, "Plant
            name2 LIKE t001w-name1,"Plant Description
            matnr LIKE vbrp-matnr, "Material #
            maktx LIKE makt-maktx, "Material Description
            meins LIKE vbrp-meins, "Unit of Measure
            fklmg LIKE vbrp-fklmg, "Quantity
            netwr LIKE vbrp-netwr, "Amount
          END OF itab,
          BEGIN OF itnm OCCURS 0,  "Including the fields of VBRK and KNA1
            kunag LIKE vbrk-kunag, "Customer Code
            name1 LIKE kna1-name1, "Customer Name
          END OF itnm,
          BEGIN OF itpt OCCURS 0,  "Including the fields of VBRP and T001W
            werks LIKE vbrp-werks, "Plant
            name1 LIKE t001w-name1,"Plant Description
          END OF itpt,
          BEGIN OF itmt OCCURS 0,  "Including the fields of VBRP and MAKT
            matnr LIKE vbrp-matnr, "Material #
            maktx LIKE makt-maktx, "Material description
          END OF itmt,
          BEGIN OF itsm OCCURS 0,
            kunag LIKE kna1-kunnr,
            name1 LIKE kna1-name1,
            fklmg LIKE vbrp-fklmg,
            netwr LIKE vbrp-netwr,
          END OF itsm,
          ok_code            LIKE sy-ucomm,
          save_ok            LIKE sy-ucomm,
          g_max              TYPE i VALUE 100,
          g_repid            LIKE sy-repid,
          gs_layout          TYPE lvc_s_layo,
          g_container        TYPE scrfname VALUE 'CUST_CONT',
          grid1              TYPE REF TO cl_gui_alv_grid,
          g_custom_container TYPE REF TO cl_gui_custom_container,
          grid2              TYPE REF TO cl_gui_alv_grid,
          gt_sort            TYPE lvc_t_sort,
          gt_fieldcatalog    TYPE lvc_t_fcat,
          w_tot_qty          LIKE vbrp-fklmg,
          w_tot_amt          LIKE vbrp-netwr,
    * Reference to Dialogbox Container.
          dialogbox_container TYPE REF TO cl_gui_dialogbox_container,
    * Reference to local class that handles events of GRID1 and
    * DIALOGBOX_CONTAINER
          event_receiver TYPE REF TO lcl_event_receiver.
    * SELECT-OPTIONS
    SELECTION-SCREEN SKIP 1.
    SELECTION-SCREEN BEGIN OF BLOCK input WITH FRAME TITLE text-000.
    SELECT-OPTIONS: s_werks FOR vbrp-werks, "Plant
                    s_kunag FOR vbrk-kunag, "Customer
                    s_matnr FOR vbrp-matnr, "Material Number
                    s_fkdat FOR vbrk-fkdat. "Invoice Date
    SELECTION-SCREEN END OF BLOCK input .
    SELECTION-SCREEN SKIP 1.
    * START-OF-SELECTION
    START-OF-SELECTION.
    SET SCREEN 100.
    * CLEARING INTERNAL TABLES.
      CLEAR: itab,
             itnm,
             itmt,
             itpt.
    * QUERY FOR JOINING TABLES VBRK AND VBRP
      SELECT vbrk~kunag
             vbrk~vbeln
             vbrk~fkdat
             vbrp~werks
             vbrp~matnr
             vbrp~meins
             vbrp~fklmg
             vbrp~netwr
             INTO CORRESPONDING FIELDS OF TABLE itab
             FROM vbrk
             INNER JOIN vbrp
                 ON vbrk~vbeln = vbrp~vbeln
             WHERE vbrk~kunag IN s_kunag
               AND vbrk~fkdat IN s_fkdat
               AND vbrp~matnr IN s_matnr
               AND vbrp~werks IN s_werks.
    * QUERY FOR JOINING TABLES VBRK AND KNA1
      SELECT kna1~kunnr AS kunag
             kna1~name1
             INTO TABLE itnm
             FROM kna1
             WHERE kna1~kunnr IN s_kunag.
    * QUERY FOR JOINING TABLES VBRP AND T001W
      SELECT t001w~werks
             t001w~name1
             INTO TABLE itpt
             FROM t001w
             WHERE t001w~werks IN s_werks.
    * QUERY FOR JOINING TABLES VBRP AND MAKT
      SELECT makt~matnr
             makt~maktx
             INTO TABLE itmt
             FROM makt
             WHERE makt~matnr IN s_matnr.
    * SORTING INTERNAL TABLES.
      SORT itab BY kunag.
        LOOP AT itab.
          CLEAR itsm.
          READ TABLE itnm WITH KEY kunag = itab-kunag.
          itsm-kunag = itab-kunag.
          itsm-name1 = itnm-name1.
          itsm-fklmg = itab-fklmg.
          itsm-netwr = itab-netwr.
          COLLECT itsm.
        ENDLOOP.
    * END-OF-SELECTION.
    * If not itsm[] is initial.
    *    CALL SCREEN 100.
    * endif.
    *   LOCAL CLASSES: Definition
    CLASS lcl_event_receiver DEFINITION.
      PUBLIC SECTION.
        METHODS:
        handle_double_click
            FOR EVENT double_click OF cl_gui_alv_grid
                IMPORTING e_row e_column,
        handle_close
            FOR EVENT close OF cl_gui_dialogbox_container
                IMPORTING sender.
      PRIVATE SECTION.
        DATA: dialogbox_status TYPE c.  "'X': does exist, SPACE: does not ex
    ENDCLASS.                    "lcl_event_receiver DEFINITION
    *   LOCAL CLASSES: Implementation
    CLASS lcl_event_receiver IMPLEMENTATION.
    *   §3.At doubleclick(1): The event DOUBLE_CLICK provides
    *      parameters of the clicked row and column.
    *      Use row parameter to select a line of the
    *      corresponding internal table.
      METHOD handle_double_click.
        DATA: ls_sm LIKE LINE OF itsm,
              wa_itab LIKE ITAB.
    *   read selected row from internal table gt_sflight
        READ TABLE itsm INDEX e_row-index INTO ls_sm.
    *   §4.At Doubleclick(2): Select booking data
    *    READ TABLE ITAB WITH KEY KUNAG = LS_SM-KUNAG.    .
        READ TABLE ITAB INTO WA_ITAB WITH KEY KUNAG = LS_SM-KUNAG.
    *   §5.At doubleclick(3): Create dialogbox to show detail list
    *     (if not already existent)
        IF dialogbox_status IS INITIAL.
          dialogbox_status = 'X'.
          PERFORM create_detail_list.
        ELSE.
          CALL METHOD dialogbox_container->set_visible
            EXPORTING
              visible = 'X'.
          CALL METHOD grid2->refresh_table_display.
        ENDIF.
      ENDMETHOD.                    "handle_double_click
      METHOD handle_close.
    *   §6.Handle the CLOSE-button of the dialogbox
    *   set dialogbox invisible
    *   (the dialogbox is destroyed outomatically when the user
    *   switches to another dynpro).
        CALL METHOD sender->set_visible
          EXPORTING
            visible = space.
    *   In this example closing the dialogbox leads
    *   to make it invisible. It is also conceivable to destroy it
    *   and recreate it if the user doubleclicks a line again.
    *   Displaying a great amount of data has a greater impact on
    *performance.
      ENDMETHOD.                    "handle_close
    ENDCLASS.                    "lcl_event_receiver IMPLEMENTATION
    *   lcl_event_receiver (Implementation)
    *=====================================================================
    *       FORM EXIT_PROGRAM                                             *
    FORM exit_program.
      CALL METHOD g_custom_container->free.
      CALL METHOD cl_gui_cfw=>flush.
      IF sy-subrc NE 0.
    * add your handling, for example
        CALL FUNCTION 'POPUP_TO_INFORM'
          EXPORTING
            titel = g_repid
            txt2  = sy-subrc
            txt1  = 'Error in FLush'(500).
      ENDIF.
      LEAVE TO SCREEN 0.
    ENDFORM.                    "exit_program
    *&      Module  STATUS_0100  OUTPUT
    *       text
    module STATUS_0100 output.
      SET PF-STATUS 'MAIN'.
      SET TITLEBAR 'MAIN100'.
      g_repid = sy-repid.
      IF g_custom_container IS INITIAL.
        READ TABLE itsm.
        CREATE OBJECT g_custom_container
          EXPORTING
            container_name = g_container
          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 = g_repid
              txt2  = sy-subrc
              txt1  = 'The control could not be created'(510).
        ENDIF.
        CREATE OBJECT grid1
          EXPORTING
            i_parent = g_custom_container.
        gs_layout-grid_title = 'Invoice Summary'.
    PERFORM fieldcatalog_init USING gt_fieldcatalog[] 'KUNAG' 'C'
    'Customer Code'.
        PERFORM fieldcatalog_init USING gt_fieldcatalog[] 'NAME1' 'C'
    'Customer Name'.
        PERFORM fieldcatalog_init USING gt_fieldcatalog[] 'FKLMG' 'QUAN'
    'Quantity'.
        PERFORM fieldcatalog_init USING gt_fieldcatalog[] 'NETWR' 'CURR'
    'Amount'.
      PERFORM sort_build USING gt_sort[].
      PERFORM layout_init USING gs_layout.
        CALL METHOD grid1->set_table_for_first_display
          EXPORTING
            is_layout       = gs_layout
          CHANGING
            it_outtab       = itsm[]
            it_fieldcatalog = gt_fieldcatalog
            it_sort         = gt_sort.
        CREATE OBJECT event_receiver.
        SET HANDLER event_receiver->handle_double_click FOR grid1.
      ENDIF.
      CALL METHOD cl_gui_control=>set_focus
        EXPORTING
          control = grid1.
    endmodule.                 " STATUS_0100  OUTPUT
    *  MODULE PAI_ALV INPUT
    MODULE USER_COMMAND_0100.
    CALL METHOD cl_gui_cfw=>dispatch.
      CASE sy-ucomm.
        WHEN 'BACK' OR 'EXIT' OR 'CANC'.
          LEAVE TO SCREEN 0.
      ENDCASE.
    ENDMODULE.                    "PAI_ALV INPUT
    *&      Form  fieldcatalog_init
    *       text
    *      -->LT_FIELDCATtext
    *      -->VALUE(FIELDtextE)
    *      -->VALUE(FIELDtextE)
    *      -->VALUE(FIELDtextT)
    FORM fieldcatalog_init USING lt_fieldcatalog TYPE lvc_t_fcat
                           value(field_name) value(field_type)
    value(field_text).
      DATA: ls_fieldcatalog TYPE lvc_s_fcat.
      CLEAR ls_fieldcatalog.
      ls_fieldcatalog-fieldname = field_name.
      ls_fieldcatalog-datatype  = field_type.
      ls_fieldcatalog-reptext   = field_text.
      ls_fieldcatalog-coltext  =  field_text.
      ls_fieldcatalog-seltext  =  field_text.
      ls_fieldcatalog-tooltip  =  field_text.
      APPEND ls_fieldcatalog TO lt_fieldcatalog.
    ENDFORM.                    "fieldcatalog_init
    *&      Form  sort_build
    *       text
    *      -->LT_SORT    text
    FORM sort_build USING lt_sort TYPE lvc_t_sort.
      DATA: ls_sort TYPE lvc_s_sort.
      ls_sort-fieldname = 'KUNAG'.    "Fieldname on which to sort
      ls_sort-up        = 'X'.        "Sort Ascending
      APPEND ls_sort TO lt_sort.
      ls_sort-fieldname = 'NAME1'.    "Fieldname on which to sort
      ls_sort-up        = 'X'.        "Sort Ascending
      APPEND ls_sort TO lt_sort.
    ENDFORM.                    "sort_build
    *&      Form  layout_init
    *       text
    *      -->LS_LAYOUT  text
    FORM layout_init USING ls_layout TYPE lvc_s_layo.
      ls_layout-zebra      = 'X'.
      ls_layout-grid_title = 'Customer Details'.
      ls_layout-sel_mode   = 'A'.
      ls_layout-cwidth_opt = 'X'.
    ENDFORM.                    "layout_init
    *&      Form  create_detail_list
    *         text
    *    -->  p1        text
    *    <--  p2        text
    FORM create_detail_list.
    *   create dialogbox container as dynpro-instance
    *   When the user switches to another screen, it is
    *   destroyed by lifetime mangagement of CFW
      CREATE OBJECT dialogbox_container
          EXPORTING
            top = 150
            left = 150
            lifetime = cntl_lifetime_dynpro
            caption = 'INVOICE DETAILS'(200)
            width = 800
            height = 200.
      CREATE OBJECT grid2
          EXPORTING i_parent = dialogbox_container.
    *   Register ABAP OO event 'CLOSE'. It is not necessary to register this
    *   event at the frontend (this is done during creation).
      SET HANDLER event_receiver->handle_close FOR dialogbox_container.
    *   display data
      gs_layout-grid_title = 'Invoice Details'(100).
      CALL METHOD grid2->set_table_for_first_display
        EXPORTING
          i_structure_name = 'itab'
          is_layout        = gs_layout
        CHANGING
          it_outtab        = itab[]
          it_fieldcatalog  = gt_fieldcatalog
          it_sort          = gt_sort.
      CALL METHOD cl_gui_control=>set_focus
        EXPORTING
          control = grid2.
    ENDFORM.                    " create_detail_list
    Nothing wrong in the code i am able to see the output with five records and the pop-up screen on double clicking a value.
    Kindly close the thread or revert back

  • Exception Aggregation is not working while Expanding hierarchy increases the total count

    Hi All ,
    I am working on Headcount report. I need to count the Employee based on the National Insurance no of a Employee so that the Employee will be count only once.
    On query execution query gives a correct result. After expanding the Org. Unit Hierarchy it will show a different result and more than that before expanding in the count column. Attachment is there for reference.
    Regards
    Arvind

    You need to close your resultSets, Statements and Connections before exiting the jsp. That is probably why you are experiencing this problem.

  • Colwidth_optimize not working for alv grid report

    Hi friends,
             I have developed an ALV grid report using 'REUSE_ALV_GRID_DISPLAY'.  The field catalog field columns are having the heading size more than 30 characters. So, to optimize the size of the headings, I am using SLIS_LAYOUT_ALV  and passing the value 'X' to colwidth_optimize.
    but still the column heading is not getting fully display. Rather it is display first 20 characters only.
    For your reference please find the code snippet
    *bold* **************** declarations ************************ *bold*
    DATA : fieldcat       TYPE slis_fieldcat_alv,
                 t_fieldcat     TYPE slis_t_fieldcat_alv,
                ws_layout      TYPE slis_layout_alv.
    *bold* **************** field catalogue ********************** *bold*
      CLEAR fieldcat.
      fieldcat-fieldname     = 'RFWRT_PD_MTRL'.
      fieldcat-seltext_m = 'Pending Quotation Spares Value'.   {quote} this heading not getting fully displayed {quote}
      fieldcat-tabname       = 'IT_FNL'.
    ***    FIELDCAT-REF_TABNAME   = 'VBFA'.
      fieldcat-col_pos       = col_pos.
      APPEND fieldcat TO t_fieldcat.
      ADD 1 TO col_pos.
      CLEAR fieldcat.
      fieldcat-fieldname     = 'RFWRT_PD_SERV'.
      fieldcat-seltext_m = 'Pend Quot-JobWorkVal'.
      fieldcat-tabname       = 'IT_FNL'.
      fieldcat-col_pos       = col_pos.
      APPEND fieldcat TO t_fieldcat.
      ADD 1 TO col_pos.
      ws_layout-colwidth_optimize = 'X'.
    *bold* ****************************** alv grid function call ******************** *bold*
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
       EXPORTING
    *    i_buffer_active                         = space
          i_callback_program                  = sy-repid
         i_callback_user_command        = 'USER_COMMAND'
    ***   i_callback_pf_status_set           = 'PF_STATUS'
    *   I_STRUCTURE_NAME                  =
         it_fieldcat                        = t_fieldcat[]
         is_layout                          =  ws_layout
        TABLES
          t_outtab                          = it_fnl
       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.
      CLEAR wa_fnl.
    Please look into it.
    Searched the forum for the similar issue. but didnt got any solution.
    Thanks and regards,
    Murali Krishna

    Hi DaveL,
    Thanks alot for your help. My problem solved.
    Can you please suggest me how we can optimize the column based on the total amount which is summed up (fieldcat-do_sum)
    Regards,
    Murali.

Maybe you are looking for