Vous êtes sur la page 1sur 8

*&---------------------------------------------------------------------*

*& Include ZVR_SALES_BLOCK_ALV_F01


*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Form INIT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM init .

CLEAR : wa_kna1, wa_vbak, wa_vbap,


wa_kna1_fcat, wa_vbak_fcat, wa_vbap_fcat,
wa_kna1_event, wa_vbak_event, wa_vbap_event,
wa_kna1_lay, wa_vbak_lay, wa_vbap_lay.

REFRESH : it_kna1, it_vbak, it_vbap,


it_kna1_fcat, it_vbak_fcat, it_vbap_fcat,
it_kna1_event, it_vbak_event, it_vbap_event.

ENDFORM. " INIT


*&---------------------------------------------------------------------*
*& Form FETCH_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM fetch_data .

***fetch KNA1 table data


SELECT kunnr
name1
ort01
regio
land1 FROM kna1
INTO TABLE it_kna1
WHERE kunnr IN s_kunnr.

IF it_kna1 IS NOT INITIAL.


***fetch VBAK table data
SELECT vbeln
ernam
auart
kunnr
netwr FROM vbak
INTO TABLE it_vbak
FOR ALL ENTRIES IN it_kna1
WHERE kunnr = it_kna1-kunnr.
IF it_vbak IS NOT INITIAL.
***fetch VBAP table data
SELECT vbeln
posnr
matnr
kwmeng
netpr FROM vbap
INTO TABLE it_vbap
FOR ALL ENTRIES IN it_vbak
WHERE vbeln = it_vbak-vbeln.
ENDIF.
ENDIF.

***check the no. of records


DESCRIBE TABLE : it_kna1 LINES gv_kna1_rec,
it_vbak LINES gv_vbak_rec,
it_vbap LINES gv_vbap_rec.

ENDFORM. " FETCH_DATA


*&---------------------------------------------------------------------*
*& Form FILL_FCAT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM fill_fcat .

***fill KNA1 fcat internal table


PERFORM fill_fcat_kna1 USING : '1' 'KUNNR' 'KNA1' 'Sold-to-party' 15 'C111',
'2' 'NAME1' 'KNA1' 'Name' 15 'C211',
'3' 'ORT01' 'KNA1' 'City' 15 'C311',
'4' 'REGIO' 'KNA1' 'State' 15 'C411',
'5' 'LAND1' 'KNA1' 'Country' 15 'C511'.

***fill VBAK fcat internal table


PERFORM fill_fcat_vbak USING : '1' 'VBELN' 'VBAK' 'SD Number' 15 'C111' 'X' 'X',
'2' 'ERNAM' 'VBAK' 'Created By' 25 'C211' ' ' '
',
'3' 'AUART' 'VBAK' 'SD Type' 15 'C311' ' ' ' ',
'4' 'KUNNR' 'VBAK' 'Sold-to-party' 15 'C411' 'X'
' ',
'5' 'NETWR' 'VBAK' 'Price' 15 'C511' ' ' ' '.

***fill VBAP fcat internal table


PERFORM fill_fcat_vbap USING : '1' 'VBELN' 'VBAP' 'SD Number' 15 'C111' ' ' 'X',
'2' 'POSNR' 'VBAP' 'SD Item' 15 'C211' ' ' ' ',
'3' 'MATNR' 'VBAP' 'Material' 15 'C311' ' ' ' ',
'4' 'KWMENG' 'VBAP' 'Quantity' 15 'C411' ' ' ' ',
'5' 'NETPR' 'VBAP' 'Net Price' 15 'C511' ' ' ' '.

ENDFORM. " FILL_FCAT


*&---------------------------------------------------------------------*
*& Form FILL_EVENT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM fill_event .

***fill KNA1 TOL & EOL event


wa_kna1_event-name = 'TOP_OF_LIST'.
wa_kna1_event-form = 'ZKNA1_HEADER'.
"PERFORM ZKNA1_HEADER.
APPEND wa_kna1_event TO it_kna1_event.
CLEAR wa_kna1_event .

wa_kna1_event-name = 'END_OF_LIST'.
wa_kna1_event-form = 'ZKNA1_FOOTER'.
"PERFORM ZKNA1_FOOTER.
APPEND wa_kna1_event TO it_kna1_event.
CLEAR wa_kna1_event .

***fill VBAK TOL & EOL event


wa_vbak_event-name = 'TOP_OF_LIST'.
wa_vbak_event-form = 'ZVBAK_HEADER'.
"PERFORM ZVBAK_HEADER.
APPEND wa_vbak_event TO it_vbak_event.
CLEAR wa_vbak_event .

wa_vbak_event-name = 'END_OF_LIST'.
wa_vbak_event-form = 'ZVBAK_FOOTER'.
"PERFORM ZVBAK_FOOTER.
APPEND wa_vbak_event TO it_vbak_event.
CLEAR wa_vbak_event .

***fill VBAP TOL & EOL event


wa_vbap_event-name = 'TOP_OF_LIST'.
wa_vbap_event-form = 'ZVBAP_HEADER'.
"PERFORM ZVBAP_HEADER.
APPEND wa_vbap_event TO it_vbap_event.
CLEAR wa_vbap_event .

wa_vbap_event-name = 'END_OF_LIST'.
wa_vbap_event-form = 'ZVBAP_FOOTER'.
"PERFORM ZVBAP_FOOTER.
APPEND wa_vbap_event TO it_vbap_event.
CLEAR wa_vbap_event .

ENDFORM. " FILL_EVENT


*&---------------------------------------------------------------------*
*& Form FILL_LAYOUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM fill_layout .

***fill KNA1 layout work area


wa_kna1_lay-zebra = 'X'.

***fill VBAK layout work area


wa_vbak_lay-zebra = 'X'.

***fill VBAP layout work area


wa_vbap_lay-zebra = 'X'.
ENDFORM. " FILL_LAYOUT
*&---------------------------------------------------------------------*
*& Form FILL_FCAT_KNA1
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_0121 text
* -->P_0122 text
* -->P_0123 text
* -->P_0124 text
* -->P_15 text
* -->P_0126 text
*----------------------------------------------------------------------*
FORM fill_fcat_kna1 USING col
fnam
tab
text
leng
emph.

wa_kna1_fcat-col_pos = col.
wa_kna1_fcat-fieldname = fnam.
wa_kna1_fcat-tabname = tab.
wa_kna1_fcat-seltext_m = text.
wa_kna1_fcat-outputlen = leng.
wa_kna1_fcat-emphasize = emph.
APPEND wa_kna1_fcat TO it_kna1_fcat.
CLEAR wa_kna1_fcat.

ENDFORM. " FILL_FCAT_KNA1


*&---------------------------------------------------------------------*
*& Form FILL_FCAT_VBAK
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_0166 text
* -->P_0167 text
* -->P_0168 text
* -->P_0169 text
* -->P_15 text
* -->P_0171 text
* -->P_0172 text
* -->P_0173 text
*----------------------------------------------------------------------*
FORM fill_fcat_vbak USING col
fnam
tab
text
leng
emph
hspot
nzero.

wa_vbak_fcat-col_pos = col.
wa_vbak_fcat-fieldname = fnam.
wa_vbak_fcat-tabname = tab.
wa_vbak_fcat-seltext_m = text.
wa_vbak_fcat-outputlen = leng.
wa_vbak_fcat-emphasize = emph.
wa_vbak_fcat-hotspot = hspot.
wa_vbak_fcat-no_zero = nzero.
APPEND wa_vbak_fcat TO it_vbak_fcat.
CLEAR wa_vbak_fcat.

ENDFORM. " FILL_FCAT_VBAK


*&---------------------------------------------------------------------*
*& Form FILL_FCAT_VBAP
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_0221 text
* -->P_0222 text
* -->P_0223 text
* -->P_0224 text
* -->P_15 text
* -->P_0226 text
* -->P_0227 text
* -->P_0228 text
*----------------------------------------------------------------------*
FORM fill_fcat_vbap USING col
fnam
tab
text
leng
emph
hspot
nzero.

wa_vbap_fcat-col_pos = col.
wa_vbap_fcat-fieldname = fnam.
wa_vbap_fcat-tabname = tab.
wa_vbap_fcat-seltext_m = text.
wa_vbap_fcat-outputlen = leng.
wa_vbap_fcat-emphasize = emph.
wa_vbap_fcat-hotspot = hspot.
wa_vbap_fcat-no_zero = nzero.
APPEND wa_vbap_fcat TO it_vbap_fcat.
CLEAR wa_vbap_fcat.

ENDFORM. " FILL_FCAT_VBAP


*&---------------------------------------------------------------------*
*& Form ZKNA1_HEADER
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM zkna1_header.

WRITE :/30 'Sold-to-party Information' COLOR 3.


SKIP.
ULINE.

ENDFORM. "ZKNA1_HEADER
*&---------------------------------------------------------------------*
*& Form ZKNA1_FOOTER
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM zkna1_footer.
SKIP.
WRITE :/30 'End of Sold-to-party Information' COLOR 3,
'Records' COLOR 3, gv_kna1_rec COLOR 3.

ENDFORM. "ZKNA1_FOOTER
*&---------------------------------------------------------------------*
*& Form ZVBAK_HEADER
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM zvbak_header.

WRITE :/30 'Sales Header Information' COLOR 4.


SKIP.
ULINE.

ENDFORM. "ZVBAK_HEADER
*&---------------------------------------------------------------------*
*& Form ZVBAK_FOOTER
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM zvbak_footer.

SKIP.
WRITE :/30 'End of Sales Header Information' COLOR 4,
'Records' COLOR 4, gv_vbak_rec COLOR 4.

ENDFORM. "ZVBAK_FOOTER
*&---------------------------------------------------------------------*
*& Form ZVBAP_HEADER
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM zvbap_header.

WRITE :/30 'Sales Item Information' COLOR 5.


SKIP.
ULINE.

ENDFORM. "ZVBAP_HEADER
*&---------------------------------------------------------------------*
*& Form ZVBAP_FOOTER
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM zvbap_footer.

SKIP.
WRITE :/30 'Sales Item Information' COLOR 5,
'Records' COLOR 5, gv_vbap_rec COLOR 5.

ENDFORM. "ZVBAP_FOOTER
*&---------------------------------------------------------------------*
*& Form BLOCK_LIST_DISPLAY
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM block_list_display .

***initiate block list process


CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_INIT'
EXPORTING
i_callback_program = sy-cprog
* I_CALLBACK_PF_STATUS_SET = ' '
* I_CALLBACK_USER_COMMAND = ' '
* IT_EXCLUDING =
.

***transfer data to 1st block i.e KNA1


CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
EXPORTING
is_layout = wa_kna1_lay
it_fieldcat = it_kna1_fcat
i_tabname = 'IT_KNA1'
it_events = it_kna1_event
* IT_SORT =
* I_TEXT = ' '
TABLES
t_outtab = it_kna1
EXCEPTIONS
program_error = 1
maximum_of_appends_reached = 2
OTHERS = 3.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.

***transfer data to 2nd block i.e VBAK


CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
EXPORTING
is_layout = wa_vbak_lay
it_fieldcat = it_vbak_fcat
i_tabname = 'IT_VBAK'
it_events = it_vbak_event
* IT_SORT =
* I_TEXT = ' '
TABLES
t_outtab = it_vbak
EXCEPTIONS
program_error = 1
maximum_of_appends_reached = 2
OTHERS = 3.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.

***transfer data to 3rd block i.e VBAP


CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
EXPORTING
is_layout = wa_vbap_lay
it_fieldcat = it_vbap_fcat
i_tabname = 'IT_VBAP'
it_events = it_vbap_event
* IT_SORT =
* I_TEXT = ' '
TABLES
t_outtab = it_vbap
EXCEPTIONS
program_error = 1
maximum_of_appends_reached = 2
OTHERS = 3.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.

***complete block list process & display


CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_DISPLAY'
* EXPORTING
* I_INTERFACE_CHECK = ' '
* IS_PRINT =
* I_SCREEN_START_COLUMN = 0
* I_SCREEN_START_LINE = 0
* I_SCREEN_END_COLUMN = 0
* I_SCREEN_END_LINE = 0
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_BY_USER =
EXCEPTIONS
program_error = 1
OTHERS = 2
.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.

ENDFORM. " BLOCK_LIST_DISPLAY

Vous aimerez peut-être aussi