Sunteți pe pagina 1din 13

*---------------------------------------------------------------------*

*Program Name
: ZSD_R000_SALES_ITEMS_REPORT
*
*Program Type
: Report
*
*Vendor
: IBM
*
*Developer
: Srinivasulu Bandi
*
*---------------------------------------------------------------------*
*TR
| Date
|Developer
| Version
*
*---------------------------------------------------------------------*
*ECCK900016 | 13 Jun 2010 | SIBM046
| Initial
*
*---------------------------------------------------------------------*
*Description : This report is used to display sales item and
*
*
corresponding address details based on the sales
*
*
document number on the selection screen
*
*---------------------------------------------------------------------*
REPORT zsd_r000_sales_items_report MESSAGE-ID zmsg LINE-COUNT 30(3) NO STANDARD
PAGE HEADING.
INCLUDE zsd_r000_sales_items_top .
INCLUDE zsd_r000_sales_items_sel .
INCLUDE zsd_r000_sales_items_form .
INITIALIZATION.
*Intialise the global data
PERFORM f_initialise_data.
AT SELECTION-SCREEN .
*validate the sales document number (VBELN)
PERFORM f_validate_vbeln .
START-OF-SELECTION.
*fetch the records from VBAK
PERFORM f_fetch_vbak CHANGING it_vbak.
*fetch the data from VBAP table
PERFORM f_fetch_vbap USING it_vbak
CHANGING it_vbap.
*fecth the data from kna1
PERFORM f_fetch_kna1 USING
it_vbak
CHANGING it_kna1.
*fetch the data from delivery
PERFORM f_fetch_delivery_items USING it_vbap
CHANGING it_lips.
*fetch the data from LIKP
PERFORM f_fetch_delivery_header USING it_lips
CHANGING it_likp.
*get the delivery address details
PERFORM f_fetch_del_add_details USING it_likp
CHANGING it_kna1.
*Populate the final internal table
PERFORM f_populate_final USING it_vbak
it_vbap
it_kna1
it_likp
it_lips
CHANGING it_final.
*
END-OF-SELECTION.

PERFORM f_display_data USING it_final.


write:/ 'Last page', sy-pagno color COL_NEGATIVE.
TOP-OF-PAGE.
WRITE:/ 'Sales Doc', 'Item Num', 'Material','Customer'.
END-OF-PAGE.
WRITE:/20 'Page Number' , sy-pagno.
at LINE-SELECTION.
data: lv_vbeln type vbeln_va.
data: lv_line type i.
*read line sy-lilli line VALUE INTO lv_line.
*lv_vbeln = lv_line+0(10). "substring operation
*
get cursor line lv_line .
data: lv_fnam type string,
lv_fval TYPE string.
get cursor field lv_fnam VALUE lv_fval.
*
read table it_final into wa_final index lv_line.
if lv_fnam = 'WA_FINAL-VBELN'.
lv_vbeln = lv_fval. "lv_line+0(10). "substring operation
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input
= lv_vbeln
IMPORTING
OUTPUT
= lv_vbeln
* CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
*
EXPORTING
*
input
= lv_vbeln
*
IMPORTING
*
OUTPUT
= lv_vbeln
.
*
perform f_get_partner USING wa_final-vbeln .
perform f_get_partner USING lv_vbeln .
endif.
===========================================================
*---------------------------------------------------------------------*
*Program Name
: ZSD_R000_SALES_ITEMS_FORM
*
*Program Type
: Include
*
*Vendor
: IBM
*
*Developer
: Srinivasulu Bandi
*
*---------------------------------------------------------------------*
*TR
| Date
|Developer
| Version
*
*---------------------------------------------------------------------*
*ECCK900016 | 13 Jun 2010 | SIBM046
| Initial
*
*---------------------------------------------------------------------*
*Description : This include is for form....endform
*
*---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*&
Form f_initialise_data
*&---------------------------------------------------------------------*
*Description:This subroutine is used to initilise the global data
*----------------------------------------------------------------------*
FORM f_initialise_data .
*Clear work area
*refresh internal tables
REFRESH: it_vbak,it_vbap,it_kna1,it_final.

ENDFORM.
" f_initialise_data
*&---------------------------------------------------------------------*
*&
Form f_validate_vbeln
*&---------------------------------------------------------------------*
*Description: This subroutine is used to validate the sales document *
*
number
*----------------------------------------------------------------------*
FORM f_validate_vbeln .
DATA: lv_vbeln TYPE vbeln_va.
SELECT SINGLE vbeln
FROM vbuk
INTO lv_vbeln
WHERE vbeln IN s_vbeln.
IF sy-subrc IS NOT INITIAL.
MESSAGE 'Invalid sales document number'(001) TYPE 'I' DISPLAY LIKE 'E'.
*

MESSAGE e999 with 'invalid sales document number' s_vbeln-low.


ENDIF.
ENDFORM.
" f_validate_vbeln
*&---------------------------------------------------------------------*
*&
Form f_fetch_vbak
*&---------------------------------------------------------------------*
*Description: This subroutine is used to fecth data from VBAK based on *
*
the sales document numbr entered on the selection screen *
*----------------------------------------------------------------------*
*
<--P_IT_VBAK Internal table For VBAK
*
*----------------------------------------------------------------------*
FORM f_fetch_vbak CHANGING fp_it_vbak TYPE tt_vbak.
SELECT vbeln
kunnr
INTO TABLE fp_it_vbak
FROM vbak
WHERE vbeln IN s_vbeln.
IF sy-subrc IS INITIAL.
SORT fp_it_vbak BY vbeln.
ENDIF.
ENDFORM.
" f_fetch_vbak
*&---------------------------------------------------------------------*
*&
Form f_fetch_vbap
*&---------------------------------------------------------------------*
*Description:This subroutine is used to get the data from vbap table
*
based on the entries in IT_VBAK
*----------------------------------------------------------------------*
*
-->P_IT_VBAK Internal table for sales header
*
<--P_IT_VBAP Internal Table For Sales item
*----------------------------------------------------------------------*
FORM f_fetch_vbap USING
fp_it_vbak TYPE tt_vbak
CHANGING fp_it_vbap TYPE tt_vbap.
CHECK fp_it_vbak IS NOT INITIAL.
SELECT vbeln
posnr
matnr
netpr
INTO TABLE fp_it_vbap
FROM vbap
FOR ALL ENTRIES IN fp_it_vbak

WHERE vbeln = fp_it_vbak-vbeln.


IF sy-subrc IS INITIAL.
SORT fp_it_vbap BY vbeln.
ENDIF.
ENDFORM.
" f_fetch_vbap
*&---------------------------------------------------------------------*
*&
Form f_fetch_kna1
*&---------------------------------------------------------------------*
*Description:This subroutine is fetch the customer header data based on
*
the entries in IT_VBAK
*----------------------------------------------------------------------*
*
-->P_IT_VBAK Internal table for sales header
*
<--P_IT_KNA1 Internal table for customer header
*----------------------------------------------------------------------*
FORM f_fetch_kna1 USING
fp_it_vbak TYPE tt_vbak
CHANGING fp_it_kna1 TYPE tt_kna1 .
CHECK fp_it_vbak IS NOT INITIAL.
SELECT kunnr
"Customer Number 1
land1
"Country Key
ort01
"City
pstlz
"Postal Code
regio
"Region (State, Province, County)
INTO TABLE fp_it_kna1
FROM kna1
FOR ALL ENTRIES IN fp_it_vbak
WHERE kunnr = fp_it_vbak-kunnr.
IF sy-subrc IS INITIAL.
SORT fp_it_kna1 BY kunnr.
ENDIF.
ENDFORM.
" f_fetch_kna1
*&---------------------------------------------------------------------*
*&
Form f_populate_final
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
*
-->P_IT_VBAK text
*
-->P_IT_VBAP text
*
-->P_IT_KNA1 text
*
<--P_IT_FINAL text
*----------------------------------------------------------------------*
FORM f_populate_final USING
fp_it_vbak TYPE tt_vbak
fp_it_vbap TYPE tt_vbap
fp_it_kna1 TYPE tt_kna1
fp_it_likp TYPE tt_likp
fp_it_lips TYPE tt_lips
CHANGING fp_it_final TYPE tt_final.
field-SYMBOLS: <fs_likp> type ty_likp,
<fs_lips> type ty_lips.
DATA: abcd TYPE REF TO data.
CREATE DATA abcd TYPE ty_final. "fully specified type
FIELD-SYMBOLS: <fs_final> TYPE ty_final.
ASSIGN abcd->* TO <fs_final>.
LOOP AT fp_it_vbap ASSIGNING <fs_vbap>.
READ TABLE fp_it_vbak ASSIGNING <fs_vbak> WITH KEY vbeln = <fs_vbap>-vbeln B

INARY SEARCH.
IF <fs_vbak> IS ASSIGNED. "if sy-subrc is initial and <fs_vbak> is assigne
d.
<fs_final>-vbeln = <fs_vbap>-vbeln.
<fs_final>-posnr = <fs_vbap>-posnr.
<fs_final>-matnr = <fs_vbap>-matnr.
<fs_final>-netpr = <fs_vbap>-netpr.
READ TABLE fp_it_kna1 ASSIGNING <fs_kna1> WITH KEY kunnr = <fs_vbak>-kunnr
BINARY SEARCH.
IF <fs_kna1> IS ASSIGNED.
<fs_final>-kunnr = <fs_kna1>-kunnr.
<fs_final>-pstlz = <fs_kna1>-pstlz.
<fs_final>-land1 = <fs_kna1>-land1.
<fs_final>-ort01 = <fs_kna1>-ort01.
*
APPEND <fs_final> TO fp_it_final.
CLEAR <fs_kna1>.
ENDIF.
*read the deliever details
READ TABLE fp_it_lips ASSIGNING <fs_lips> WITH KEY vgbel = <fs_vbap>-vbeln
vgpos = <fs_vbap>-posnr
BINARY SEARCH.
IF <fs_lips> IS ASSIGNED .
<fs_final>-vbeln1 = <fs_lips>-vbeln.
<fs_final>-posnr1 = <fs_lips>-posnr.
READ TABLE fp_it_likp ASSIGNING <fs_likp> WITH KEY vbeln = <fs_lips>-vb
eln BINARY SEARCH.
IF sy-subrc IS INITIAL.
READ TABLE fp_it_kna1 ASSIGNING <fs_kna1> WITH KEY kunnr = <fs_likp>-k
unnr BINARY SEARCH.
IF <fs_kna1> IS ASSIGNED.
<fs_final>-kunnr1 = <fs_kna1>-kunnr.
<fs_final>-pstlz1 = <fs_kna1>-pstlz.
<fs_final>-land11 = <fs_kna1>-land1.
<fs_final>-ort011 = <fs_kna1>-ort01.
APPEND <fs_final> TO fp_it_final.
CLEAR <fs_kna1>.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
ENDLOOP.
ENDFORM.
" f_populate_final
*&---------------------------------------------------------------------*
*&
Form f_display_data
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
*
-->P_IT_FINAL text,.
*----------------------------------------------------------------------*
FORM f_display_data USING
fp_it_final TYPE tt_final.
LOOP AT fp_it_final into wa_final.
write:/ wa_final-vbeln , wa_final-posnr , wa_final-matnr,wa_final-netpr input
on,
wa_final-kunnr,wa_final-pstlz,wa_final-regio,wa_final-ort01.
at end of vbeln.
sum.
format color COL_TOTAL off.

write:/28 'Subtotal', wa_final-netpr color COL_TOTAL.


endat.
at last.
sum.
format color COL_TOTAL on.
write:/28 'Grand Total', wa_final-netpr COLOR COL_TOTAL.
**
write:/ 'Last page', sy-pagno color COL_NEGATIVE.
endat.
**hide:wa_final.
ENDLOOP.
ENDFORM.
"f_display_data
*&---------------------------------------------------------------------*
*&
Form f_fetch_delivery_items
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
*
-->P_IT_VBAP
*
<--P_IT_LIPS
*----------------------------------------------------------------------*
FORM f_fetch_delivery_items USING
fp_it_vbap TYPE tt_vbap
CHANGING fp_it_lips TYPE tt_lips.
CHECK fp_it_vbap IS NOT INITIAL.
SELECT vbeln
posnr
vgbel
vgpos
FROM lips
INTO TABLE fp_it_lips
FOR ALL ENTRIES IN fp_it_vbap
WHERE vgbel = fp_it_vbap-vbeln
AND vgpos = fp_it_vbap-posnr.
IF sy-subrc IS INITIAL.
SORT fp_it_lips BY vgbel vgpos.
ENDIF.
ENDFORM.
" f_fetch_delivery_items
*&---------------------------------------------------------------------*
*&
Form f_fetch_delivery_header
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
*
-->P_IT_LIPS text
*
<--P_IT_LIKP text
*----------------------------------------------------------------------*
FORM f_fetch_delivery_header USING
fp_it_lips TYPE tt_lips
CHANGING fp_it_likp TYPE tt_likp.
CHECK fp_it_lips IS NOT INITIAL.
SELECT vbeln
kunnr
FROM likp
INTO TABLE fp_it_likp
FOR ALL ENTRIES IN fp_it_lips
WHERE vbeln = fp_it_lips-vbeln.
IF sy-subrc IS INITIAL.
* sort
ENDIF.

ENDFORM.
" f_fetch_delivery_header
*&---------------------------------------------------------------------*
*&
Form f_fetch_del_add_details
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
*
-->P_IT_LIKP text
*
<--P_IT_KNA1 text
*----------------------------------------------------------------------*
FORM f_fetch_del_add_details USING
fp_it_likp TYPE tt_likp
CHANGING fp_it_kna1 TYPE tt_kna1.
CHECK fp_it_likp IS NOT INITIAL.
SELECT kunnr
"Customer Number 1
land1
"Country Key
ort01
"City
pstlz
"Postal Code
regio
"Region (State, Province, County)
APPENDING TABLE fp_it_kna1
FROM kna1
FOR ALL ENTRIES IN fp_it_likp
WHERE kunnr = fp_it_likp-kunnr.
IF sy-subrc IS INITIAL.
SORT fp_it_kna1 BY kunnr.
ENDIF.
ENDFORM.
" f_fetch_del_add_details
*&---------------------------------------------------------------------*
*&
Form f_get_partner
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
*
-->P_WA_FINAL_VBELN text
*----------------------------------------------------------------------*
form f_get_partner using
fp_wa_final_vbeln type vbeln.
types: begin of lty_vbpa,
vbeln type vbeln_va,
parvw type parvw,
pernr type pernr_d,
adrnr type ADRNR,
adrnp type AD_PERSNUM,
end of lty_vbpa.
data: lit_vbpa type STANDARD TABLE OF lty_vbpa.
field-SYMBOLS <lfs_vbpa> like line of lit_vbpa.
select vbeln
parvw
pernr
ADRNR
aDRNP
into table lit_vbpa
from vbpa
where vbeln = fp_wa_final_vbeln .
IF sy-subrc is INITIAL.
LOOP AT lit_vbpa ASSIGNING <lfs_vbpa>.
**
CALL FUNCTION 'CONVERSION_EXIT_PARVW_OUTPUT'
**
EXPORTING
**
input
= <lfs_vbpa>-parvw
**
IMPORTING
**
OUTPUT
= <lfs_vbpa>-parvw
**
.
write:/ <lfs_vbpa>-vbeln color COL_KEY,<lfs_vbpa>-parvw color COL_KEY,<lfs_v

bpa>-pernr,<lfs_vbpa>-adrnr,<lfs_vbpa>-adrnp.
ENDLOOP.
ENDIF.
endform.
" f_get_partner
======================================================
*---------------------------------------------------------------------*
*Program Name
: ZSD_R000_SALES_ITEMS_FORM
*
*Program Type
: Include
*
*Vendor
: IBM
*
*Developer
: Srinivasulu Bandi
*
*---------------------------------------------------------------------*
*TR
| Date
|Developer
| Version
*
*---------------------------------------------------------------------*
*ECCK900016 | 13 Jun 2010 | SIBM046
| Initial
*
*---------------------------------------------------------------------*
*Description : This include is for form....endform
*
*---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*&
Form f_initialise_data
*&---------------------------------------------------------------------*
*Description:This subroutine is used to initilise the global data
*----------------------------------------------------------------------*
FORM f_initialise_data .
*Clear work area
*refresh internal tables
REFRESH: it_vbak,it_vbap,it_kna1,it_final.
ENDFORM.
" f_initialise_data
*&---------------------------------------------------------------------*
*&
Form f_validate_vbeln
*&---------------------------------------------------------------------*
*Description: This subroutine is used to validate the sales document *
*
number
*----------------------------------------------------------------------*
FORM f_validate_vbeln .
DATA: lv_vbeln TYPE vbeln_va.
SELECT SINGLE vbeln
FROM vbuk
INTO lv_vbeln
WHERE vbeln IN s_vbeln.
IF sy-subrc IS NOT INITIAL.
MESSAGE 'Invalid sales document number'(001) TYPE 'I' DISPLAY LIKE 'E'.
*

MESSAGE e999 with 'invalid sales document number' s_vbeln-low.


ENDIF.
ENDFORM.
" f_validate_vbeln
*&---------------------------------------------------------------------*
*&
Form f_fetch_vbak
*&---------------------------------------------------------------------*
*Description: This subroutine is used to fecth data from VBAK based on *
*
the sales document numbr entered on the selection screen *
*----------------------------------------------------------------------*
*
<--P_IT_VBAK Internal table For VBAK
*
*----------------------------------------------------------------------*
FORM f_fetch_vbak CHANGING fp_it_vbak TYPE tt_vbak.
SELECT vbeln

kunnr
INTO TABLE fp_it_vbak
FROM vbak
WHERE vbeln IN s_vbeln.
IF sy-subrc IS INITIAL.
SORT fp_it_vbak BY vbeln.
ENDIF.
ENDFORM.
" f_fetch_vbak
*&---------------------------------------------------------------------*
*&
Form f_fetch_vbap
*&---------------------------------------------------------------------*
*Description:This subroutine is used to get the data from vbap table
*
based on the entries in IT_VBAK
*----------------------------------------------------------------------*
*
-->P_IT_VBAK Internal table for sales header
*
<--P_IT_VBAP Internal Table For Sales item
*----------------------------------------------------------------------*
FORM f_fetch_vbap USING
fp_it_vbak TYPE tt_vbak
CHANGING fp_it_vbap TYPE tt_vbap.
CHECK fp_it_vbak IS NOT INITIAL.
SELECT vbeln
posnr
matnr
netpr
INTO TABLE fp_it_vbap
FROM vbap
FOR ALL ENTRIES IN fp_it_vbak
WHERE vbeln = fp_it_vbak-vbeln.
IF sy-subrc IS INITIAL.
SORT fp_it_vbap BY vbeln.
ENDIF.
ENDFORM.
" f_fetch_vbap
*&---------------------------------------------------------------------*
*&
Form f_fetch_kna1
*&---------------------------------------------------------------------*
*Description:This subroutine is fetch the customer header data based on
*
the entries in IT_VBAK
*----------------------------------------------------------------------*
*
-->P_IT_VBAK Internal table for sales header
*
<--P_IT_KNA1 Internal table for customer header
*----------------------------------------------------------------------*
FORM f_fetch_kna1 USING
fp_it_vbak TYPE tt_vbak
CHANGING fp_it_kna1 TYPE tt_kna1 .
CHECK fp_it_vbak IS NOT INITIAL.
SELECT kunnr
"Customer Number 1
land1
"Country Key
ort01
"City
pstlz
"Postal Code
regio
"Region (State, Province, County)
INTO TABLE fp_it_kna1
FROM kna1
FOR ALL ENTRIES IN fp_it_vbak
WHERE kunnr = fp_it_vbak-kunnr.
IF sy-subrc IS INITIAL.
SORT fp_it_kna1 BY kunnr.
ENDIF.

ENDFORM.
" f_fetch_kna1
*&---------------------------------------------------------------------*
*&
Form f_populate_final
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
*
-->P_IT_VBAK text
*
-->P_IT_VBAP text
*
-->P_IT_KNA1 text
*
<--P_IT_FINAL text
*----------------------------------------------------------------------*
FORM f_populate_final USING
fp_it_vbak TYPE tt_vbak
fp_it_vbap TYPE tt_vbap
fp_it_kna1 TYPE tt_kna1
fp_it_likp TYPE tt_likp
fp_it_lips TYPE tt_lips
CHANGING fp_it_final TYPE tt_final.
field-SYMBOLS: <fs_likp> type ty_likp,
<fs_lips> type ty_lips.
DATA: abcd TYPE REF TO data.
CREATE DATA abcd TYPE ty_final. "fully specified type
FIELD-SYMBOLS: <fs_final> TYPE ty_final.
ASSIGN abcd->* TO <fs_final>.
LOOP AT fp_it_vbap ASSIGNING <fs_vbap>.
READ TABLE fp_it_vbak ASSIGNING <fs_vbak> WITH KEY vbeln = <fs_vbap>-vbeln B
INARY SEARCH.
IF <fs_vbak> IS ASSIGNED. "if sy-subrc is initial and <fs_vbak> is assigne
d.
<fs_final>-vbeln = <fs_vbap>-vbeln.
<fs_final>-posnr = <fs_vbap>-posnr.
<fs_final>-matnr = <fs_vbap>-matnr.
<fs_final>-netpr = <fs_vbap>-netpr.
READ TABLE fp_it_kna1 ASSIGNING <fs_kna1> WITH KEY kunnr = <fs_vbak>-kunnr
BINARY SEARCH.
IF <fs_kna1> IS ASSIGNED.
<fs_final>-kunnr = <fs_kna1>-kunnr.
<fs_final>-pstlz = <fs_kna1>-pstlz.
<fs_final>-land1 = <fs_kna1>-land1.
<fs_final>-ort01 = <fs_kna1>-ort01.
*
APPEND <fs_final> TO fp_it_final.
CLEAR <fs_kna1>.
ENDIF.
*read the deliever details
READ TABLE fp_it_lips ASSIGNING <fs_lips> WITH KEY vgbel = <fs_vbap>-vbeln
vgpos = <fs_vbap>-posnr
BINARY SEARCH.
IF <fs_lips> IS ASSIGNED .
<fs_final>-vbeln1 = <fs_lips>-vbeln.
<fs_final>-posnr1 = <fs_lips>-posnr.
READ TABLE fp_it_likp ASSIGNING <fs_likp> WITH KEY vbeln = <fs_lips>-vb
eln BINARY SEARCH.
IF sy-subrc IS INITIAL.
READ TABLE fp_it_kna1 ASSIGNING <fs_kna1> WITH KEY kunnr = <fs_likp>-k
unnr BINARY SEARCH.
IF <fs_kna1> IS ASSIGNED.
<fs_final>-kunnr1 = <fs_kna1>-kunnr.

<fs_final>-pstlz1
<fs_final>-land11
<fs_final>-ort011
APPEND <fs_final>
CLEAR <fs_kna1>.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
ENDLOOP.

= <fs_kna1>-pstlz.
= <fs_kna1>-land1.
= <fs_kna1>-ort01.
TO fp_it_final.

ENDFORM.
" f_populate_final
*&---------------------------------------------------------------------*
*&
Form f_display_data
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
*
-->P_IT_FINAL text,.
*----------------------------------------------------------------------*
FORM f_display_data USING
fp_it_final TYPE tt_final.
LOOP AT fp_it_final into wa_final.
write:/ wa_final-vbeln , wa_final-posnr , wa_final-matnr,wa_final-netpr input
on,
wa_final-kunnr,wa_final-pstlz,wa_final-regio,wa_final-ort01.
at end of vbeln.
sum.
format color COL_TOTAL off.
write:/28 'Subtotal', wa_final-netpr color COL_TOTAL.
endat.
at last.
sum.
format color COL_TOTAL on.
write:/28 'Grand Total', wa_final-netpr COLOR COL_TOTAL.
**
write:/ 'Last page', sy-pagno color COL_NEGATIVE.
endat.
**hide:wa_final.
ENDLOOP.
ENDFORM.
"f_display_data
*&---------------------------------------------------------------------*
*&
Form f_fetch_delivery_items
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
*
-->P_IT_VBAP
*
<--P_IT_LIPS
*----------------------------------------------------------------------*
FORM f_fetch_delivery_items USING
fp_it_vbap TYPE tt_vbap
CHANGING fp_it_lips TYPE tt_lips.
CHECK fp_it_vbap IS NOT INITIAL.
SELECT vbeln
posnr
vgbel
vgpos
FROM lips
INTO TABLE fp_it_lips
FOR ALL ENTRIES IN fp_it_vbap

WHERE vgbel = fp_it_vbap-vbeln


AND vgpos = fp_it_vbap-posnr.
IF sy-subrc IS INITIAL.
SORT fp_it_lips BY vgbel vgpos.
ENDIF.
ENDFORM.
" f_fetch_delivery_items
*&---------------------------------------------------------------------*
*&
Form f_fetch_delivery_header
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
*
-->P_IT_LIPS text
*
<--P_IT_LIKP text
*----------------------------------------------------------------------*
FORM f_fetch_delivery_header USING
fp_it_lips TYPE tt_lips
CHANGING fp_it_likp TYPE tt_likp.
CHECK fp_it_lips IS NOT INITIAL.
SELECT vbeln
kunnr
FROM likp
INTO TABLE fp_it_likp
FOR ALL ENTRIES IN fp_it_lips
WHERE vbeln = fp_it_lips-vbeln.
IF sy-subrc IS INITIAL.
* sort
ENDIF.
ENDFORM.
" f_fetch_delivery_header
*&---------------------------------------------------------------------*
*&
Form f_fetch_del_add_details
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
*
-->P_IT_LIKP text
*
<--P_IT_KNA1 text
*----------------------------------------------------------------------*
FORM f_fetch_del_add_details USING
fp_it_likp TYPE tt_likp
CHANGING fp_it_kna1 TYPE tt_kna1.
CHECK fp_it_likp IS NOT INITIAL.
SELECT kunnr
"Customer Number 1
land1
"Country Key
ort01
"City
pstlz
"Postal Code
regio
"Region (State, Province, County)
APPENDING TABLE fp_it_kna1
FROM kna1
FOR ALL ENTRIES IN fp_it_likp
WHERE kunnr = fp_it_likp-kunnr.
IF sy-subrc IS INITIAL.
SORT fp_it_kna1 BY kunnr.
ENDIF.
ENDFORM.
" f_fetch_del_add_details
*&---------------------------------------------------------------------*
*&
Form f_get_partner
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
*
-->P_WA_FINAL_VBELN text

*----------------------------------------------------------------------*
form f_get_partner using
fp_wa_final_vbeln type vbeln.
types: begin of lty_vbpa,
vbeln type vbeln_va,
parvw type parvw,
pernr type pernr_d,
adrnr type ADRNR,
adrnp type AD_PERSNUM,
end of lty_vbpa.
data: lit_vbpa type STANDARD TABLE OF lty_vbpa.
field-SYMBOLS <lfs_vbpa> like line of lit_vbpa.
select vbeln
parvw
pernr
ADRNR
aDRNP
into table lit_vbpa
from vbpa
where vbeln = fp_wa_final_vbeln .
IF sy-subrc is INITIAL.
LOOP AT lit_vbpa ASSIGNING <lfs_vbpa>.
**
CALL FUNCTION 'CONVERSION_EXIT_PARVW_OUTPUT'
**
EXPORTING
**
input
= <lfs_vbpa>-parvw
**
IMPORTING
**
OUTPUT
= <lfs_vbpa>-parvw
**
.
write:/ <lfs_vbpa>-vbeln color COL_KEY,<lfs_vbpa>-parvw color COL_KEY,<lfs_v
bpa>-pernr,<lfs_vbpa>-adrnr,<lfs_vbpa>-adrnp.
ENDLOOP.
ENDIF.
endform.

" f_get_partner

S-ar putea să vă placă și