Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

ALV code in function module

abdulazeez12
Active Contributor
0 Likes
340

Hi

I have created a report and it gets displayed in ALV. My requirement was to put the whole code in a function module, including the ALV functionality...I have put the same..the problem is that I am not able to see the TOP-OF-PAGE..

I am putting a sample code of what exactly I did in the function module..let me know what needs to be done..

FUNCTION ZAZTEST.

*"----


""Local Interface:

*" IMPORTING

*" REFERENCE(GV_REPID) TYPE SY-REPID

*" TABLES

*" S_KUNNR STRUCTURE JITO_KUNNR_RANGE

*"----


perform sub_get_customers tables s_kunnr

changing gt_kna1.

perform sub_prepare_fieldcatalog using :

'KUNNR' 'Customer No' '10' 'GT_KNA1' space space changing gt_fieldcat,

'NAME1' 'Name' '35' 'GT_KNA1' space space changing gt_fieldcat,

'LAND1' 'Country' '4' 'GT_KNA1' space space changing gt_fieldcat,

'ORT01' 'City' '35' 'GT_KNA1' space space changing gt_fieldcat.

perform sub_build_alv_events changing gt_events.

perform sub_comment_build tables s_kunnr changing gt_list_top_of_page.

PERFORM sub_display using gv_repid gt_fieldcat gt_events gt_kna1.

ENDFUNCTION.

form sub_get_customers tables p_kunnr structure JITO_KUNNR_RANGE

changing p_it_kna1 type tt_kna1.

select kunnr name1 land1 ort01

from kna1

into table p_it_kna1

where kunnr in p_kunnr.

if sy-subrc eq 0.

sort p_it_kna1 by kunnr.

endif.

endform.

*&----


------

  • Prepare Field Catalog

*----


------

  • -->lv_F fieldname

  • -->lv_D column Description

  • -->lv_L Output length

  • -->lv_T Tablename

  • --lv_A Reference table name

  • --lv_B Reference Field Name

*----


------

FORM sub_prepare_fieldcatalog using value(lv_f)

value(lv_d)

value(lv_t)

value(lv_l)

value(lv_a)

value(lv_b)

changing pt_fieldcat TYPE slis_t_fieldcat_alv.

DATA: gs_fieldcat TYPE slis_fieldcat_alv.

gs_fieldcat-fieldname = lv_f.

gs_fieldcat-seltext_m = lv_d.

gs_fieldcat-tabname = lv_t.

gs_fieldcat-outputlen = lv_l.

gs_fieldcat-ref_tabname = lv_a.

gs_fieldcat-ref_fieldname = lv_b.

APPEND gs_fieldcat TO Pt_fieldcat.

CLEAR gs_fieldcat.

ENDFORM. "sub_prepare_fieldcatalog

*&----


*------

*& Form sub_build_alv_events

*&----


FORM sub_build_alv_events CHANGING PT_EVENTS TYPE slis_t_event.

DATA: ls_index TYPE sy-tabix,

GS_EVENTS TYPE slis_alv_event.

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

i_list_type = 0

IMPORTING

et_events = Pt_events[]

EXCEPTIONS

list_type_wrong = 0

OTHERS = 0.

READ TABLE Pt_events

INTO gs_events

WITH KEY name = slis_ev_top_of_page

.

IF sy-subrc = 0.

ls_index = sy-tabix.

gs_events-form = c_ev_top_of_page.

MODIFY Pt_events FROM gs_events INDEX ls_index.

ENDIF.

CLEAR gs_events.

ENDFORM. " sub_build_alv_events

*&----


*------

*& Form sub_comment_build

*&----


*------

  • text: print select options in the output

*&----


FORM sub_comment_build tables p_kunnr structure JITO_KUNNR_RANGE

changing gt_top_of_page type slis_t_listheader.

DATA: ls_line TYPE slis_listheader,

lv_Low(10) type c,

lv_high(10) type c.

lv_low = p_kunnr-low.

lv_high = p_kunnr-high.

CLEAR: ls_line.

ls_line-typ = 'H'.

ls_line-info = 'Customer Details'.

APPEND ls_line TO gt_top_of_page.

IF NOT lv_low IS INITIAL AND NOT lv_high IS INITIAL.

CLEAR: ls_line.

ls_line-typ = 'S'.

ls_line-key = 'Customer No'. "TEXT DESCRIPTION

CONCATENATE lv_low 'to' lv_high INTO ls_line-info

SEPARATED BY space.

APPEND ls_line TO gt_top_of_page.

elseif lv_low is initial and lv_high is initial.

CLEAR: ls_line.

ls_line-typ = 'S'.

ls_line-key = 'Customer No'.

ls_line-info = 'ALL Values'.

APPEND ls_line TO gt_top_of_page.

ELSEIF lv_high IS INITIAL.

CLEAR: ls_line.

ls_line-typ = 'S'.

ls_line-key = 'Customer No'.

ls_line-info = lv_low.

APPEND ls_line TO gt_top_of_page.

ENDIF.

endform.

*

form SUB_EVENT_TOP_OF_PAGE.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

it_list_commentary = gt_list_top_of_page.

ENDFORM. "sub_comment_build

**&----


*-----

**& Form sub_display

**&----


*-----

    • ALV Grid Display

**----


Form sub_display using pv_repid type sy-repid

pt_fieldcat TYPE slis_t_fieldcat_alv

pt_events type slis_t_event

pt_kna1 type TT_kna1.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

i_callback_program = pv_repid

it_fieldcat = Pt_fieldcat

it_events = Pt_events[]

TABLES

t_outtab = Pt_kna1

EXCEPTIONS

program_error = 1

OTHERS = 2.

IF sy-subrc <> 0.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

ENDFORM. "sub_display

1 REPLY 1
Read only

Former Member
0 Likes
313

Hello shakir,

You can refer to the code below:


TYPE-POOLS : slis.

* internal table declaration
Data:i_fieldcat TYPE STANDARD TABLE OF slis_fieldcat_alv,
      top_header TYPE slis_t_listheader.  "Table to store The Values of Top-Of-Page Parameter for ALV   

* work area declaration

Data: wa_top_header TYPE slis_listheader,
        wa_fieldcat   TYPE slis_fieldcat_alv.

* CONSTANTS
CONSTANTS: c_h    TYPE slis_listheader VALUE 'H',
                     c_s    TYPE slis_listheader VALUE 'S'.



********* calling a subroutine to display the fields ********************

    PERFORM zalv_display.


********* function module to display the report in Grid format ***********

    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
      EXPORTING
        i_callback_program     = sy-repid
        i_callback_top_of_page = 'TOP_OF_PAGE'
        it_fieldcat            = i_fieldcat
      TABLES
        t_outtab               = i_final
      EXCEPTIONS
        program_error          = 1
        OTHERS                 = 2.
    IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.


*&---------------------------------------------------------------------*
*&      Form  zalv_display
*&---------------------------------------------------------------------*
*       Subroutine To display the fields in grid format
*----------------------------------------------------------------------*

FORM zalv_display .

  PERFORM zalv_grid_disp USING '1'  'CHARG'      'I_FINAL'    'Shotton coil id'.
  PERFORM zalv_grid_disp USING '2'  'MATNR'      'I_FINAL'    'Material number'.
  PERFORM zalv_grid_disp USING '3'  'BESTQ'      'I_FINAL'    'Stock Status'.
  PERFORM zalv_grid_disp USING '4'  'AUFNR'      'I_FINAL'    'PROCESS ORDER NUMBER'.
  PERFORM zalv_grid_disp USING '5'  'KDAUF'      'I_FINAL'    'SALES ORDER NUM'.
  PERFORM zalv_grid_disp USING '6'  'GESME'      'I_FINAL'    'Coil Weight'.
  PERFORM zalv_grid_disp USING '7'  'WDATU'      'I_FINAL'    'Date of coil receipt'.
  PERFORM zalv_grid_disp USING '8'  'LGTYP'      'I_FINAL'    'Storage Type'.
  PERFORM zalv_grid_disp USING '9'  'LGPLA'      'I_FINAL'    'Storage Bin'.
  PERFORM zalv_grid_disp USING '10' 'COIL_STAT'  'I_FINAL'    'COIL STATUS'.
  PERFORM zalv_grid_disp USING '11' 'MAKTX'      'I_FINAL'    'MATERIAL DESP'.

ENDFORM.                    " zalv_display

*&---------------------------------------------------------------------*
*&      Form  zalv_grid_disp
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_0691   column position
*      -->P_0692   field name
*      -->P_0693   table name
*      -->P_0694   field text
*----------------------------------------------------------------------*
FORM zalv_grid_disp  USING    value(col_pos)     TYPE n
                              value(field_name)  TYPE c
                              value(tab_name)    TYPE c
                              value(sel_text)    TYPE c.

  wa_fieldcat-col_pos = col_pos.
  wa_fieldcat-fieldname = field_name.
  wa_fieldcat-tabname = tab_name.
  wa_fieldcat-seltext_l = sel_text.

  APPEND wa_fieldcat TO i_fieldcat.
  CLEAR wa_fieldcat.




ENDFORM.                    " zalv_grid_disp

*&---------------------------------------------------------------------*
*&      Form  top_of_page
*&---------------------------------------------------------------------*
*       module to display Header Information
*----------------------------------------------------------------------*

FORM top_of_page.

************************     HEADER     ********************************


  wa_top_header-typ = c_h.

  CONCATENATE 'CONCESSION'
              'COIL'
              'REPORT'
              INTO wa_top_header-info
              SEPARATED BY space.
  APPEND wa_top_header TO top_header.

  CLEAR wa_top_header.

  wa_top_header-typ  = c_s.
  wa_top_header-key  = 'Date:'.
  WRITE sy-datum TO wa_top_header-info.
  APPEND wa_top_header TO top_header.

  CLEAR wa_top_header.

  wa_top_header-typ  = c_s.
  wa_top_header-key  = 'User Name:'.
  WRITE sy-uname TO wa_top_header-info.
  APPEND wa_top_header TO top_header.


  CLEAR wa_top_header.

*  wa_top_header-typ  = c_s.
*  wa_top_header-key  = 'No.Of Records :'.
*  WRITE sy-dbcnt TO wa_top_header-info.
*  APPEND wa_top_header TO top_header.
*  CLEAR wa_top_header.

  CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
    EXPORTING
      it_list_commentary = top_header.

ENDFORM.                    "top_of_page