ABAP ALV Program
Program No Comments »REPORT zgrd_sd_flow_alv_001 .
TYPE-POOLS: slis.
TABLES: vbak,vbap, knvv, kna1, mara ,lips, vbrp.
TYPES: BEGIN OF record,
sdoc LIKE vbak-vbeln,
sitem LIKE vbap-posnr,
mcode LIKE mara-matnr,
mname LIKE vbap-arktx,
oquanti LIKE vbap-kwmeng,
ovalue LIKE vbap-netwr,
ocurrency LIKE vbap-waerk,
ddoc LIKE lips-vbeln,
ditem LIKE lips-posnr,
idoc LIKE vbrp-vbeln,
iitem LIKE vbrp-posnr,
END OF record.
DATA: itab TYPE STANDARD TABLE OF record WITH HEADER LINE.
DATA: name1 LIKE kna1-name1,
name2 LIKE kna1-name2.
DATA: i_fieldcat_alv TYPE slis_t_fieldcat_alv WITH HEADER LINE,
it_events TYPE slis_alv_event OCCURS 1 WITH HEADER LINE,
alv_event TYPE slis_t_event,
I_layout TYPE slis_layout_alv,
i_fieldcat TYPE slis_fieldcat_alv,
pos TYPE i VALUE 1,
w_repid LIKE sy-repid.
*———————————————————————-*
* Selection-screen design *
*———————————————————————-*
SELECT-OPTIONS: o_date FOR vbak-erdat OBLIGATORY. “sales docu date
PARAMETERS: customer LIKE vbak-kunnr OBLIGATORY
DEFAULT ‘GCN00010′, “customer code
material LIKE mara-matnr OBLIGATORY
DEFAULT ‘000000000280012001′. “material number
*———————————————————————-*
* Start of selection event *
*———————————————————————-*
*START-OF-SELECTION.
PERFORM data_selection.
perform layout_build.
PERFORM fields.
PERFORM append_alv_event CHANGING alv_event.
PERFORM display_data.
*———————————————————————-*
*form data_selection
**
*———————————————————————-*
FORM data_selection.
SELECT a~vbeln b~posnr c~matnr b~arktx b~kwmeng b~netwr b~waerk
c~vbeln c~posnr d~vbeln d~posnr
INTO (itab-sdoc, itab-sitem, itab-mcode, itab-mname,
itab-oquanti,itab-ovalue,itab-ocurrency, itab-ddoc,
itab-ditem, itab-idoc, itab-iitem)
FROM ( ( lips AS c
INNER JOIN vbrp AS d ON c~vbeln = d~vgbel
AND c~posnr = d~vgpos
INNER JOIN vbap AS b ON c~vgbel = b~vbeln
AND c~vgpos = b~posnr )
INNER JOIN vbak AS a ON a~vbeln = b~vbeln )
WHERE a~erdat IN o_date AND a~kunnr = customer AND b~matnr = material.
APPEND itab.
ENDSELECT.
IF sy-subrc NE 0.
MESSAGE ‘No Corresponding Record!’ TYPE ‘I’.
ENDIF.
ENDFORM. “data_selection
*———————————————————————-*
*form fields
**
*———————————————————————-*
FORM fields.
REFRESH i_fieldcat_alv.
pos = 1.
CLEAR i_fieldcat.
i_fieldcat-col_pos = pos.
i_fieldcat-fieldname = ‘SDOC’.
i_fieldcat-seltext_l = ‘주문번호’.
APPEND i_fieldcat TO i_fieldcat_alv.
pos = pos + 1.
i_fieldcat-col_pos = pos.
i_fieldcat-fieldname = ‘SITEM’.
i_fieldcat-seltext_l = ‘아이템번호’.
APPEND i_fieldcat TO i_fieldcat_alv.
pos = pos + 1.
i_fieldcat-col_pos = pos.
i_fieldcat-fieldname = ‘MCODE’.
i_fieldcat-seltext_l = ‘제품코드’.
APPEND i_fieldcat TO i_fieldcat_alv.
pos = pos + 1.
i_fieldcat-col_pos = pos.
i_fieldcat-fieldname = ‘MNAME’.
i_fieldcat-seltext_l = ‘제품명’.
APPEND i_fieldcat TO i_fieldcat_alv.
pos = pos + 1.
i_fieldcat-col_pos = pos.
i_fieldcat-fieldname = ‘OQUANTI’.
i_fieldcat-seltext_l = ‘주문수량’.
APPEND i_fieldcat TO i_fieldcat_alv.
pos = pos + 1.
i_fieldcat-col_pos = pos.
i_fieldcat-fieldname = ‘OVALUE’.
i_fieldcat-seltext_l = ‘주문실적’.
APPEND i_fieldcat TO i_fieldcat_alv.
pos = pos + 1.
i_fieldcat-col_pos = pos.
i_fieldcat-fieldname = ‘OCURRENCY’.
i_fieldcat-seltext_l = ‘단위’.
APPEND i_fieldcat TO i_fieldcat_alv.
pos = pos + 1.
i_fieldcat-col_pos = pos.
i_fieldcat-fieldname = ‘DDOC’.
i_fieldcat-seltext_l = ‘납품문서번호’.
APPEND i_fieldcat TO i_fieldcat_alv.
pos = pos + 1.
i_fieldcat-col_pos = pos.
i_fieldcat-fieldname = ‘DITEM’.
i_fieldcat-seltext_l = ‘아이템’.
APPEND i_fieldcat TO i_fieldcat_alv.
pos = pos + 1.
i_fieldcat-col_pos = pos.
i_fieldcat-fieldname = ‘IDOC’.
i_fieldcat-seltext_l = ‘대금청구번호’.
APPEND i_fieldcat TO i_fieldcat_alv.
pos = pos + 1.
i_fieldcat-col_pos = pos.
i_fieldcat-fieldname = ‘IITEM’.
i_fieldcat-seltext_l = ‘아이템번호’.
APPEND i_fieldcat TO i_fieldcat_alv.
CLEAR i_fieldcat.
ENDFORM. “fields
*———————————————————————-*
*form display_data
**
*———————————————————————-*
FORM display_data.
w_repid = sy-repid.
CALL FUNCTION ‘REUSE_ALV_LIST_DISPLAY’
EXPORTING
i_callback_program = w_repid
i_callback_user_command = ‘USER_COMMAND’
is_layout = i_layout
it_events = alv_event[]
* i_save = ‘ ‘
it_fieldcat = i_fieldcat_alv[]
TABLES
t_outtab = itab.
ENDFORM. “display_data
*———————————————————————-*
*form layout_build
**
*———————————————————————-*
Form layout_build.
* I_layout-detail_popup = ‘X’. ” Display row in popup
I_layout-get_selinfos = ‘X’. ” Read selection screen in
i_layout-colwidth_optimize = ‘X’.
* layout-zebra = ‘X’. “striped pattern
* I_layout-f2code = ‘&ETA’.
endform. ” BUILD_LAYOUT
*———————————————————————-*
* <–P_ALV_EVENT text
*———————————————————————-*
FORM append_alv_event CHANGING p_alv_event TYPE slis_t_event.
DATA ls_events TYPE slis_alv_event.
ls_events-name = ‘USER_COMMAND’.
ls_events-form = ‘USER_COMMAND’.
APPEND ls_events TO p_alv_event.
* ls_events-name = ‘TOP_OF_PAGE’.
* ls_events-form = ‘TOP_OF_PAGE’.
* APPEND ls_events TO p_alv_event.
ENDFORM. ” append_alv_event
*&———————————————————————*
*& Form LINE_SELECTION
*&———————————————————————*
* text
*———————————————————————-*
* –> p1 text
* <– p2 text
*———————————————————————-*
FORM user_command USING r_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.
CHECK r_ucomm EQ ‘&IC1′ AND NOT rs_selfield-value IS INITIAL.
CASE rs_selfield-fieldname.
WHEN ‘ITAB-SDOC’.
SET PARAMETER ID ‘AUN’ FIELD rs_selfield-valuE.
CALL TRANSACTION ‘VA03′ AND SKIP FIRST SCREEN.
WHEN ‘ITAB-DDOC’.
SET PARAMETER ID ‘VL’ FIELD rs_selfield-value.
CALL TRANSACTION ‘VL03N’ AND SKIP FIRST SCREEN.
WHEN ‘ITAB-IDOC’.
SET PARAMETER ID ‘VF’ FIELD rs_selfield-value.
CALL TRANSACTION ‘VF03′ AND SKIP FIRST SCREEN.
ENDCASE.
ENDFORM. ” LINE_SELECTION
Recent Comments