Sunteți pe pagina 1din 4

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

*& Report ZPROG_029


*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZPROG_029
no standard page heading
line-count 22(2)
line-size 150. "Max : 1023
*&---------------------------------------------------------------------*
*&
Table(s)
*&---------------------------------------------------------------------*
tables : kna1,
"Customer Master
vbak.
"Sales Orders - Header
*&---------------------------------------------------------------------*
*&
User Defined Data Types
*&---------------------------------------------------------------------*
types : begin of ty_orders,
kunnr type kna1-kunnr,
"Customer No
name1 type kna1-name1,
"Customer Name
ort01 type kna1-ort01,
"City
land1 type kna1-land1,
"Country
vbeln type vbak-vbeln,
"Order No
erdat type vbak-erdat,
"Order Date
netwr type vbak-netwr,
"Net Value
end of ty_orders.
*&---------------------------------------------------------------------*
*&
Work Area(s)
*&---------------------------------------------------------------------*
data : w_orders type ty_orders,
wa
type ty_orders,
amt_words type spell,
fl type i,
"free lines
ndl type i,
"Length for non decimal word
dl type i.
"Length for decimal word
*&---------------------------------------------------------------------*
*&
Internal Table(s)
*&---------------------------------------------------------------------*
data : t_orders type standard table of ty_orders.
*data : t_kna1 type ty_kna1 occurs 1.
*&---------------------------------------------------------------------*
*&
Selection Screen
*&---------------------------------------------------------------------*
selection-screen begin of block b1 with frame title text-001.
select-options : s_kunnr for kna1-kunnr,
"Customer Number Range
s_vbeln for vbak-vbeln.
"Order Number Range
selection-screen end of block b1.
selection-screen begin of block b2 with frame title text-002.
parameters : p_stot as checkbox,
p_gtot as checkbox.

selection-screen end of block b2.


*&---------------------------------------------------------------------*
*&
Report Event
*&---------------------------------------------------------------------*
INITIALIZATION.
s_kunnr-sign = 'I'.
s_kunnr-option = 'BT'.
s_kunnr-low = 1000.
s_kunnr-high = 2000.
append s_kunnr.
*&---------------------------------------------------------------------*
*&
Report Event
*&---------------------------------------------------------------------*
AT SELECTION-SCREEN.
if s_kunnr-high > 2000.
message W007(Z7MSG).
endif.

*&---------------------------------------------------------------------*
*&
Report Event
*&---------------------------------------------------------------------*
TOP-OF-PAGE.
write : /33 'Customer Wise Sales Orders List' color 6 inverse on.
uline.
write : /02 'Customer',
18 'Customer Name',
55 'City',
85 'Country',
98 'Order No',
115 'Order Date',
130 'Net Value'.
uline.
*&---------------------------------------------------------------------*
*&
Report Event
*&---------------------------------------------------------------------*
END-OF-PAGE.
uline.
write : /33 'End of Page :' , sy-pagno.
*&---------------------------------------------------------------------*
*&
Report Event
*&---------------------------------------------------------------------*
START-OF-SELECTION.
*&---------------------------------------------------------------------*
*&
Extract Data
*&---------------------------------------------------------------------*
select k~kunnr
k~name1
k~ort01
k~land1
v~vbeln

v~erdat
v~netwr
into table t_orders
from kna1 as k
inner join
vbak as v
on k~kunnr = v~kunnr
where k~kunnr in s_kunnr
and v~vbeln in s_vbeln.
*&---------------------------------------------------------------------*
*&
Display Output
*&---------------------------------------------------------------------*
new-page line-count sy-srows.
sort t_orders by kunnr.
loop at t_orders into w_orders.
wa = w_orders.
at new kunnr.
w_orders = wa.
reserve 1 lines.
write : /02
18
55
85

w_orders-kunnr,
w_orders-name1,
w_orders-ort01,
w_orders-land1.

back.
endat.
write : /98 w_orders-vbeln,
115 w_orders-erdat,
130 w_orders-netwr.
at end of kunnr.
if p_stot = 'X'.
sum.
**convert amount into words
CALL FUNCTION 'SPELL_AMOUNT'
EXPORTING
AMOUNT
= w_orders-netwr
CURRENCY
= 'INR'
LANGUAGE
= SY-LANGU
IMPORTING
IN_WORDS
= AMT_WORDS
EXCEPTIONS
NOT_FOUND
= 1
TOO_LARGE
= 2
.
ndl = strlen( amt_words-word ).
dl = strlen( amt_words-decword ).
format color 3 intensified on.
write : /02 'Sub total order value : ', 130 w_orders-netwr.

write : /02 'Sub total (in words) : ', amt_words-word(ndl), 'AND' , amt_wordsdecword(dl).
format color off intensified on.
endif.
****for page break
fl = sy-linct - sy-linno.
RESERVE FL LINES.
endat.
at last.
if p_gtot = 'X'.
sum.
format color 3 .
write : /02 'Grand total order value : ', 130 w_orders-netwr.
format color off .
endif.
endat.
endloop.

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