How to Troubleshoot Apps for the Modern Connected Worker
Β
Example syntax alv grid list
1. Contoh/Example Syntax ALV Grid / List (ALV
Programming)
27/07/2010 β eryanta
Untukkeperluan reporting, SAP menyediakan Function Module ALV (ABAP List
Viewer/Apllication List Viewer).Berikutinicontoh syntax untukmembuat ALV Grid atau List.
Syntax di Include TOP
type-POOLs: slis, icon.
TYPES : BEGIN OF ty_ekpo,
cell,
icon(5),
ebeln TYPE ekpo-ebeln,
ebeln1 TYPE ekpo-ebeln,
ebelp TYPE ekpo-ebelp,
statu TYPE ekpo-statu,
aedat TYPE ekpo-aedat,
matnr TYPE ekpo-matnr,
menge TYPE ekpo-menge,
meins TYPE ekpo-meins,
netpr TYPE ekpo-netpr,
peinh TYPE ekpo-peinh,
line_color(4),
END OF ty_ekpo.
data: t_ekpo TYPE TABLE OF ty_ekpo,
x_ekpo TYPE ty_ekpo.
*ALV Data declaration
data: t_fieldcatalog TYPE slis_t_fieldcat_alv WITH HEADER LINE,
d_tab_group TYPE slis_t_sp_group_alv,
x_layout TYPE slis_layout_alv,
d_repid like sy-repid,
t_events TYPE slis_t_event,
x_prntparams TYPE slis_print_alv,
t_sort TYPE slis_t_sortinfo_alv,
t_alv_isort TYPE slis_t_sortinfo_alv WITH HEADER LINE,
t_alv_extab TYPE slis_t_extab WITH HEADER LINE.
Syntax di Include F01
PERFORM f_get_data.
PERFORM f_build_fieldcatalog.
2. PERFORM f_build_layout.
PERFORM f_build_events.
PERFORM f_build_print_params.
PERFORM f_display_alv_report.
*&βββββββββββββββββββββββ*
*& Form F_GET_DATA
*&βββββββββββββββββββββββ*
FORM f_get_data .
DATA ld_color.
SELECT ebeln ebelp statu aedat matnr menge meins netpr peinh
UP TO 10 ROWS FROM ekpo
INTO CORRESPONDING FIELDS OF TABLE t_ekpo.
*Populate field with color attributes
LOOP AT t_ekpo INTO x_ekpo.
x_ekpo-ebeln1 = x_ekpo-ebeln.
* Populate color variable with colour properties
* Char 1 = C (This is a color property)
* Char 2 = 3 (Color codes: 1 - 7)
* Char 3 = Intensified on/off ( 1 or 0 )
* Char 4 = Inverse display on/off ( 1 or 0 )
* i.e. wa_ekpo-line_color = βC410β²
ld_color = ld_color + 1.
* Only 7 colours so need to reset color value
IF ld_color = 8.
ld_color = 1.
ENDIF.
CONCATENATE βC' ld_color β10β² INTO x_ekpo-line_color.
* Show Icon
IF ld_color = 1.
x_ekpo-icon = β@08@β.
ELSEif ld_color = 2.
x_ekpo-icon = β@09@β.
else.
x_ekpo-icon = β@0A@β.
ENDIF.
* wa_ekpo-line_color = βC410β².
MODIFY t_ekpo FROM x_ekpo.
ENDLOOP.
ENDFORM.β F_GET_DATA
*&βββββββββββββββββββββββ*
*& Form F_BUILD_FIELDCATALOG
4. i_list_type = 0
IMPORTING
et_events = t_events[]
EXCEPTIONS
list_type_wrong = 1
OTHERS = 2.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
LOOP AT t_events INTO lx_events.
CASE lx_events-name.
WHEN slis_ev_top_of_page.
MOVE βF_TOP_OF_PAGEβ TO lx_events-form.
ENDCASE.
MODIFY t_events FROM lx_events.
ENDLOOP.
*Subtotal
CLEAR lx_events.
READ TABLE t_events INTO lx_events
WITH KEY name = slis_ev_subtotal_text.
if sy-subrc eq 0.
MOVE c_formname_subtotal_text to lx_events-form.
MODIFY t_events FROM lx_events INDEX sy-tabix.
ENDIF.
ENDFORM.β F_BUILD_EVENTS
*&βββββββββββββββββββββββ*
*& Form F_BUILD_PRINT_PARAMS
*&βββββββββββββββββββββββ*
FORM f_build_print_params .
ENDFORM.β F_BUILD_PRINT_PARAMS
*&βββββββββββββββββββββββ*
*& Form F_DISPLAY_ALV_REPORT
*&βββββββββββββββββββββββ*
FORM f_display_alv_report .
d_repid = sy-repid.
CALL FUNCTION βREUSE_ALV_GRID_DISPLAYβ
EXPORTING
* I_INTERFACE_CHECK =ββ
6. 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. β F_DISPLAY_ALV_REPORT
*&βββββββββββββββββββββββ*
*& Form F_SUB_FILL_ALV_FIELD_CATALOG
*&βββββββββββββββββββββββ*
FORM f_sub_fill_alv_field_catalog USING
p_rowpos TYPE sycurow
p_colpos TYPE sycucol
p_fldnam TYPE fieldname
p_tabnam TYPE tabname
p_justif TYPE char1
p_seltext TYPE dd03p-scrtext_l
p_out TYPE char1
p_tech TYPE char1
p_qfield TYPE slis_fieldname
p_qtab TYPE slis_tabname.
DATA: lx_fcat TYPE slis_fieldcat_alv.
lx_fcat-row_pos = p_rowpos.
lx_fcat-col_pos = p_colpos.
lx_fcat-fieldname = p_fldnam.
lx_fcat-tabname = p_tabnam.
lx_fcat-just = p_justif.
lx_fcat-seltext_l = p_seltext.
lx_fcat-no_out = p_out.
lx_fcat-tech = p_tech.
lx_fcat-qfieldname = p_qfield.
lx_fcat-qtabname = p_qtab.
IF p_fldnam = βNETPRβ.
lx_fcat-do_sum = βXβ.
ENDIF.
APPEND lx_fcat TO t_fieldcatalog.
CLEAR lx_fcat.
ENDFORM.β F_SUB_FILL_ALV_FIELD_CATALOG
7. *&βββββββββββββββββββββββ*
*& Form F_TOP_OF_PAGE
*&βββββββββββββββββββββββ*
FORM f_top_of_page.
*ALV Header Declarations
DATA: lt_header TYPE slis_t_listheader,
lx_header TYPE slis_listheader,
lt_line LIKE lx_header-info,
ld_lines TYPE i,
ld_linesc(10) TYPE c.
*Title
lx_header-typ = βHβ.
lx_header-info = βEKPO Table Reportβ.
APPEND lx_header TO lt_header.
CLEAR lx_header.
*Date
lx_header-typ = βSβ.
lx_header-key = βDate: β.
CONCATENATE sy-datum+6(2) β.β
sy-datum+4(2) β.β
sy-datum(4) INTO lx_header-info.
APPEND lx_header TO lt_header.
CLEAR lx_header.
*Total No. of records Selected
DESCRIBE TABLE t_ekpo LINES ld_lines.
ld_linesc = ld_lines.
CONCATENATE βTotal No. of records Selected: β ld_linesc
INTO lt_line SEPARATED BY space.
lx_header-typ = βAβ.
lx_header-info = lt_line.
APPEND lx_header TO lt_header.
CLEAR: lx_header, lt_line.
CALL FUNCTION βREUSE_ALV_COMMENTARY_WRITEβ
EXPORTING
it_list_commentary = lt_header
* I_LOGO = βPHOTOTRIβ
* I_END_OF_LIST_GRID =
* I_ALV_FORM =
.
ENDFORM. βF_TOP_OF_PAGE
8. *&βββββββββββββββββββββββ*
*& Form F_ALV_STATUS
*&βββββββββββββββββββββββ*
FORM f_alv_status USING fu_extab TYPE slis_t_extab.
REFRESH fu_extab.
SET PF-STATUS βSTANDARDβ EXCLUDING fu_extab.
ENDFORM. βF_ALV_STATUS
*&βββββββββββββββββββββββ*
*& Form F_USER_COMMAND
*&βββββββββββββββββββββββ*
FORM f_user_command USING ld_r_ucomm LIKE sy-ucomm
lx_rs_selfield TYPE slis_selfield.
CASE ld_r_ucomm.
WHEN β&IC1β².
IF lx_rs_selfield-fieldname = βEBELN1β².
READ TABLE t_ekpo INTO x_ekpo INDEX lx_rs_selfield-tabindex.
MESSAGE i003(aq) WITH βAnda memilih Purchase order β
x_ekpo-ebeln.
CLEAR x_ekpo.
ENDIF.
WHEN βSHOWβ.
LOOP AT t_ekpo INTO x_ekpo.
IF x_ekpo-cell EQ βXβ.
MESSAGE i003(aq) WITH βAnda memilih Purchase order β
x_ekpo-ebeln1.
ENDIF.
ENDLOOP.
CLEAR x_ekpo.
ENDCASE.
ENDFORM. βF_USER_COMMAND
FORM F_SUBTOTAL_TEXT CHANGING ld_total TYPE any
ld_subtot_text TYPE slis_subtot_text.
*Material level sub total
if ld_subtot_text-criteria = βEBELNβ.
ld_subtot_text-display_text_for_subtotal
= βSubtotalβ.
ENDIF.
ENDFORM.
9. Kemudianbuat GUI Status dengan status βSTANDARDβ.
Kemudianpilih Template Status βList Viewerβ (Extras>Adjust Template).
Activate semua, lalueksekusi.
Hasilnyaadalah βALV Gridβ, untukmengubahmenjadiβALV Listβ, masukke subroutine
βFORM f_display_alv_reportβ, ubah β β
CALL FUNCTION βREUSE_ALV_GRID_DISPLAYmenjadi β
CALL FUNCTION βREUSE_ALV_LIST_DISPLAY β.