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

Download ALV Program

Related posts