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

reports

Former Member
0 Likes
474

hai, i am new to abap can you plz give the real time report program on material using alvs ? plz give with requirement?

3 REPLIES 3
Read only

pavel_parshenkov2
Participant
0 Likes
445

hi look at development class 'SLIS' (in SE80 ).

this class with examples of ALV.

Read only

Former Member
0 Likes
445

Check the below sample code :

TYPE-POOLS: slis.
TABLES: vbap.
TYPES : BEGIN OF t_vbap,
	 vbeln TYPE vbeln_va,
	 posnr TYPE posnr,
	 matnr TYPE matnr,
	 charg TYPE charg_d,
	 matkl TYPE matkl,
	 meins TYPE meins,
	 brgew TYPE brgew,
	 ntgew TYPE ntgew,
	 gewei TYPE gewei,
*        col(4) TYPE c,
END OF t_vbap.
 
DATA:   i_vbap TYPE STANDARD TABLE OF  t_vbap,
	 wa_vbap TYPE t_vbap,
        wa_vbap_fc TYPE slis_fieldcat_alv,
        i_vbap_fc TYPE STANDARD TABLE OF  slis_fieldcat_alv,
        wa_layout TYPE slis_layout_alv,
        i_layout TYPE slis_layout_alv,
        it_events TYPE slis_t_event,
        wa_events TYPE slis_alv_event.
 
*DATA: i_index TYPE sytabix.
SELECTION-SCREEN: BEGIN OF BLOCK b1 WITH FRAME TITLE text-002.
SELECT-OPTIONS: s_vbeln FOR vbap-vbeln.
SELECTION-SCREEN: END OF BLOCK b1.
 
SELECT vbeln
	posnr
	matnr	
	charg
	matkl
	meins
	brgew
	ntgew
	gewei
FROM vbap
INTO TABLE i_vbap
WHERE vbeln IN s_vbeln.
 
 
 
 
 
 
wa_events-name = 'TOP_OF_PAGE'.
wa_events-form = 'TOP_OF_PAGE'.
APPEND wa_events TO it_events.
 
 
wa_events-name = 'END_OF_LIST'.
wa_events-form = 'END_OF_LIST'.
APPEND wa_events TO it_events.
 
 
wa_events-name = 'USER_COMMAND'.
wa_events-form = 'USER_COMMAND'.
APPEND wa_events TO it_events.
 
 
wa_vbap_fc-col_pos = '1'.
wa_vbap_fc-fieldname = 'VBELN'.
wa_vbap_fc-tabname = 'i_vbap'.
wa_vbap_fc-seltext_l = 'Sales Document' .
wa_vbap_fc-hotspot = 'X'.
wa_vbap_fc-emphasize = 'C110'.
APPEND wa_vbap_fc TO i_vbap_fc.
CLEAR wa_vbap_fc.
 
 
wa_vbap_fc-col_pos = '2'.
wa_vbap_fc-fieldname = 'POSNR'.
wa_vbap_fc-tabname = 'i_vbap_fc'.
wa_vbap_fc-seltext_l = 'Sales Document Item' .
*WA_VBAP_FC-HOTSPOT = 'X'.
wa_vbap_fc-emphasize = 'C210'.
APPEND wa_vbap_fc TO i_vbap_fc.
CLEAR wa_vbap_fc.
 
wa_vbap_fc-col_pos = '3'.
wa_vbap_fc-fieldname = 'MATNR'.
wa_vbap_fc-seltext_l = 'Material Number' .
wa_vbap_fc-tabname = 'i_vbap_fc'.
*WA_VBAP_FC-HOTSPOT = 'X'.
wa_vbap_fc-emphasize = 'C310'.
APPEND wa_vbap_fc TO i_vbap_fc.
CLEAR wa_vbap_fc.
 
wa_vbap_fc-col_pos = '4'.
wa_vbap_fc-fieldname = 'CHARG'.
wa_vbap_fc-seltext_l = 'Batch Number' .
wa_vbap_fc-tabname = 'i_vbap_fc'.
*WA_VBAP_FC-HOTSPOT = 'X'.
wa_vbap_fc-emphasize = 'C410'.
APPEND wa_vbap_fc TO i_vbap_fc.
CLEAR wa_vbap_fc.
 
wa_vbap_fc-col_pos = '5'.
wa_vbap_fc-fieldname = 'MATKL'.
wa_vbap_fc-seltext_l = 'Material group' .
wa_vbap_fc-tabname = 'i_vbap_fc'.
*WA_VBAP_FC-HOTSPOT = 'X'.
wa_vbap_fc-emphasize = 'C510'.
APPEND wa_vbap_fc TO i_vbap_fc.
CLEAR wa_vbap_fc.
 
wa_vbap_fc-col_pos = '6'.
wa_vbap_fc-fieldname = 'MEINS'.
wa_vbap_fc-seltext_l = 'Base Unit of Measure' .
wa_vbap_fc-tabname = 'i_vbap_fc'.
*WA_VBAP_FC-HOTSPOT = 'X'.
wa_vbap_fc-emphasize = 'C610'.
APPEND wa_vbap_fc TO i_vbap_fc.
CLEAR wa_vbap_fc.
 
wa_vbap_fc-col_pos = '7'.
wa_vbap_fc-fieldname = 'BRGEW'.
wa_vbap_fc-seltext_l = 'Gross Weight of the Item' .
wa_vbap_fc-tabname = 'i_vbap_fc'.
*WA_VBAP_FC-HOTSPOT = 'X'.
wa_vbap_fc-emphasize = 'C710'.
APPEND wa_vbap_fc TO i_vbap_fc.
CLEAR wa_vbap_fc.
 
wa_vbap_fc-col_pos = '8'.
wa_vbap_fc-fieldname = 'NTGEW'.
wa_vbap_fc-tabname = 'i_vbap_fc'.
wa_vbap_fc-seltext_l = 'Net Weight' .
*WA_VBAP_FC-HOTSPOT = 'X'.
wa_vbap_fc-emphasize = 'C100'.
APPEND wa_vbap_fc TO i_vbap_fc.
CLEAR wa_vbap_fc.
 
wa_vbap_fc-col_pos = '9'.
wa_vbap_fc-fieldname = 'GEWEI'.
wa_vbap_fc-seltext_l = 'Weight Unit' .
wa_vbap_fc-tabname = 'i_vbap_fc'.
*WA_VBAP_FC-HOTSPOT = 'X'.
wa_vbap_fc-emphasize = 'C300'.
APPEND wa_vbap_fc TO i_vbap_fc.
CLEAR wa_vbap_fc.
 
 
 
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
*    I_INTERFACE_CHECK                 = ' '
*    I_BYPASSING_BUFFER                = ' '
*    I_BUFFER_ACTIVE                   = ' '
     i_callback_program                = sy-repid
*    I_CALLBACK_PF_STATUS_SET          = ' '
*    I_CALLBACK_USER_COMMAND           = ' '
*    i_callback_top_of_page            = 'HEADER'
*    I_CALLBACK_HTML_TOP_OF_PAGE       = ' '
*    I_CALLBACK_HTML_END_OF_LIST       = ' '
*    I_STRUCTURE_NAME                  =
*    I_BACKGROUND_ID                   = ' '
*    I_GRID_TITLE                      =
*    I_GRID_SETTINGS                   =
     is_layout                         = wa_layout
     it_fieldcat                       = i_vbap_fc
*    IT_EXCLUDING                      =
*    IT_SPECIAL_GROUPS                 =
*    IT_SORT                           =
*    IT_FILTER                         =
*    IS_SEL_HIDE                       =
 
*    I_DEFAULT                         = 'X'
*    I_SAVE                            = ' '
*    IS_VARIANT                        =
     it_events                         = it_events
*    IT_EVENT_EXIT                     =
*    IS_PRINT                          =
*    IS_REPREP_ID                      =
*    I_SCREEN_START_COLUMN             = 0
*    I_SCREEN_START_LINE               = 0
*    I_SCREEN_END_COLUMN               = 0
*    I_SCREEN_END_LINE                 = 0
*    I_HTML_HEIGHT_TOP                 = 0
*    I_HTML_HEIGHT_END                 = 0
*    IT_ALV_GRAPHICS                   =
*    IT_HYPERLINK                      =
*    IT_ADD_FIELDCAT                   =
*    IT_EXCEPT_QINFO                   =
*    IR_SALV_FULLSCREEN_ADAPTER        =
*  IMPORTING
*    E_EXIT_CAUSED_BY_CALLER           =
*    ES_EXIT_CAUSED_BY_USER            =
     TABLES
     t_outtab                          = i_vbap
*  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.
	
 
*INCLUDE zpsalv1_187_get_dataf01.
 
*&---------------------------------------------------------------------*
*&      Form  TOP_OF_PAGE
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM top_of_page.
 
DATA:  t_header TYPE slis_t_listheader,
       wa_header TYPE slis_listheader.
 
* Title
wa_header-typ  = 'H'.
wa_header-info = 'Order Table Report'.
*  wa_header-col = 'C100'.
APPEND wa_header TO t_header.
CLEAR wa_header.
 
 
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
  EXPORTING
    it_list_commentary       = t_header
   i_logo                   = 'Z_CAP_LOGO'
*   I_END_OF_LIST_GRID       =
*   I_ALV_FORM               =
          .
 
 
ENDFORM.                    "TOP_OF_PAGE
 
 
*&---------------------------------------------------------------------*
*&      Form  END_OF_LIST
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM end_of_list.
 
  DATA: t_header TYPE slis_t_listheader,
          wa_header TYPE slis_listheader.
  CLEAR wa_header.
 
* Title
  wa_header-typ  = 'H'.
  wa_header-info = 'Order Table Report FOOTER'.
*  wa_header-col = 'C100'.
  APPEND wa_header TO t_header.
  CLEAR wa_header.
 
 
  CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
    EXPORTING
      it_list_commentary       = t_header
     i_logo                   = 'Z_CAP_LOGO'
*   I_END_OF_LIST_GRID       =
*   I_ALV_FORM               =
            .
 
 
ENDFORM.                    "END_OF_LIST
 
 
 
 
*&---------------------------------------------------------------------*
*&      Form  USER_COMMAND
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->R_UCOMM      text
*      -->RS_SELFIELD  text
*----------------------------------------------------------------------*
FORM user_command USING r_ucomm LIKE sy-ucomm
     rs_selfield TYPE slis_selfield.
 
  CASE r_ucomm.
    WHEN '&IC1'.
 
      CASE rs_selfield-sel_tab_field.
 
        WHEN 'i_vbap-VBELN'.
 
          SET PARAMETER ID 'AUN' FIELD rs_selfield-value.
          CALL TRANSACTION 'VA02'.
 
      ENDCASE.
 
 
 
  ENDCASE.
ENDFORM.                    "USER_COMMAND

Regards,

Raghu

Read only

Former Member
0 Likes
445

Hi, you can refer to the following's code for an example on how to use ALV It's a simple ALV ... Please reward if you find it useful. Thanks..

REPORT zexample_alv .

  • Declare type-pools, tables and infotypes

TYPE-POOLS: slis.

TABLES: pernr.

INFOTYPES: 0001, 0002.

----


  • DATA

----


DATA: l_date(11) TYPE c,

l_gender(7) TYPE c.

DATA: l_line TYPE i VALUE 0.

TYPES: BEGIN OF t_emp,

pernr TYPE pa0002-pernr,

werks TYPE pa0001-werks, "personnel area

btrtl TYPE pa0001-btrtl, "personnel subarea

nachn TYPE pa0002-nachn, "last name

vorna TYPE pa0002-vorna, "first name

gesch(7) TYPE c, "gender

gbdat(11) TYPE c, "birth date

ftext TYPE fatxt, "marital status

END OF t_emp.

DATA: li_emp TYPE STANDARD TABLE OF t_emp INITIAL SIZE 0.

DATA: wa_emp TYPE t_emp.

  • To build ALV

DATA : wa_layout TYPE slis_layout_alv,

li_fieldcat TYPE slis_t_fieldcat_alv,

wa_fieldcat TYPE slis_fieldcat_alv.

&----


*& AT SELECTION-SCREEN

&----


START-OF-SELECTION.

GET pernr.

IF p0002-natio NE 'US'.

REJECT.

ENDIF.

----


  • pernr

----


wa_emp-pernr = pernr-pernr.

----


  • infotype 0001

----


wa_emp-werks = p0001-werks.

wa_emp-btrtl = p0001-btrtl.

----


  • infotype 0002

----


wa_emp-nachn = p0002-nachn.

wa_emp-vorna = p0002-vorna.

PERFORM format_gender USING p0002-gesch CHANGING l_gender.

wa_emp-gesch = l_gender.

  • birth date

IF p0002-gbdat <> ''.

PERFORM format_date USING p0002-gbdat CHANGING l_date.

wa_emp-gbdat = l_date.

ENDIF.

  • marital status

SELECT SINGLE ftext

INTO wa_emp-ftext

FROM t502t

WHERE famst EQ p0002-famst

AND sprsl EQ sy-langu.

  • append work area into itab

APPEND wa_emp TO li_emp.

CLEAR wa_emp.

END-OF-SELECTION.

DESCRIBE TABLE li_emp LINES l_line.

IF l_line GE 0.

PERFORM: build_layout,

build_fieldcat,

write_report.

ELSE.

MESSAGE e001(00) WITH 'No record found'.

ENDIF.

&----


*& Form format_date

&----


  • text

----


  • -->P_L_DATE text

  • <--P_L_DATE2 text

----


FORM format_date USING p_l_date

CHANGING p_l_date_format.

DATA: l_month(3) TYPE c.

CASE p_l_date+4(2).

WHEN '01'.

l_month = 'JAN'.

WHEN '02'.

l_month = 'FEB'.

WHEN '03'.

l_month = 'MAR'.

WHEN '04'.

l_month = 'APR'.

WHEN '05'.

l_month = 'MAY'.

WHEN '06'.

l_month = 'JUN'.

WHEN '07'.

l_month = 'JUL'.

WHEN '08'.

l_month = 'AUG'.

WHEN '09'.

l_month = 'SEP'.

WHEN '10'.

l_month = 'OCT'.

WHEN '11'.

l_month = 'NOV'.

WHEN '12'.

l_month = 'DEC'.

ENDCASE.

CONCATENATE p_l_date6(2) '-' l_month '-' p_l_date0(4) INTO

p_l_date_format.

ENDFORM. " format_date

&----


*& Form format_gender

&----


  • text

----


  • -->P_L_GENDER text

  • <--P_L_GENDER2 text

----


FORM format_gender USING p_l_gender

CHANGING p_l_gender_format.

IF p_l_gender = '1'.

p_l_gender_format = 'Male'.

ELSEIF p_l_gender = '2'.

p_l_gender_format = 'Female'.

ELSE.

p_l_gender_format = 'Unknown'.

ENDIF.

ENDFORM. " format_gender

&----


*& Form write_itab

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM write_itab .

LOOP AT li_emp INTO wa_emp.

WRITE: / sy-tabix, ') ', wa_emp-pernr, wa_emp-nachn, wa_emp-vorna,

wa_emp-gesch, wa_emp-gbdat, wa_emp-ftext.

ENDLOOP.

ENDFORM. " write_itab

&----


*& Form build_layout

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM build_layout.

wa_layout-colwidth_optimize = 'X'.

wa_layout-zebra = 'X'.

wa_layout-no_input = 'X'.

wa_layout-window_titlebar = sy-title.

ENDFORM. "build_layout

&----


*& Form build_fieldcat

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM build_fieldcat .

  • Assign variables to Table gt_fieldcat

PERFORM : build_fieldcat_assign USING '1' 'PERNR' 'Employee Number',

build_fieldcat_assign USING '2' 'WERKS' 'Personnel Area',

build_fieldcat_assign USING '3' 'BTRTL' 'Personnel Subarea',

build_fieldcat_assign USING '4' 'NACHN' 'Last Name',

build_fieldcat_assign USING '5' 'VORNA' 'First Name',

build_fieldcat_assign USING '6' 'GESCH' 'Gender',

build_fieldcat_assign USING '7' 'GBDAT' 'Birth Date',

build_fieldcat_assign USING '8' 'FTEXT' 'Marital Status'.

ENDFORM. " build_fieldcat

&----


*& Form build_fieldcat_assign

&----


  • text

----


  • -->P_0334 text

  • -->P_0335 text

  • -->P_0336 text

  • -->P_0337 text

----


FORM build_fieldcat_assign USING l_col_pos

l_fieldname

l_seltext_l.

wa_fieldcat-col_pos = l_col_pos.

wa_fieldcat-fieldname = l_fieldname.

wa_fieldcat-seltext_l = l_seltext_l.

  • Append and Clear

APPEND wa_fieldcat TO li_fieldcat.

CLEAR wa_fieldcat.

ENDFORM. " build_fieldcat_assign

&----


*& Form write_report

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM write_report .

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

is_layout = wa_layout

it_fieldcat = li_fieldcat

  • I_SAVE = ' '

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

TABLES

t_outtab = li_emp

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. " write_report