‎2006 Nov 29 11:19 AM
Hi,
How to develop a report that list out all the sales order details?
can u plz send me the tables which are required?
‎2006 Nov 29 11:25 AM
hi.
refer to the program below. this program gives the complete details of sales order status.
&----
*& Report ZSD_SO_DETAILS
*&
&----
*&
*&
&----
REPORT ZSD_SO_DETAILS
message-id zqt_msg
no standard page heading.
type pools
TYPE-POOLS: slis.
*table declaration
TABLES: vbak, "Sales Document: Header Data
kna1. "General Data in Customer Master
*types declaration
TYPES: BEGIN OF t_vbak,
vbeln LIKE vbak-vbeln, "Sales Document
erdat LIKE vbak-erdat, "Date on Which Record Was Created
kunnr LIKE vbak-kunnr, "Sold-to party
lifsk LIKE vbak-lifsk, "Delivery block (document header)
faksk LIKE vbak-faksk, "Billing block in SD document
vkbur LIKE vbak-vkbur, "Sales Office
bstnk LIKE vbak-bstnk, "Customer purchase order number
bstdk LIKE vbak-bstdk, "Customer purchase order date
END OF t_vbak.
TYPES: BEGIN OF t_vbap,
vbeln LIKE vbap-vbeln, "Sales Document
posnr LIKE vbap-posnr, "Sales Document Item
matnr LIKE vbap-matnr, "Material Number
arktx LIKE vbap-arktx, "Short text for sales order item
meins LIKE vbap-meins, "Base Unit of Measure
kwmeng LIKE vbap-kwmeng,"Cumulative Order Quantity in Sales Units
abgru LIKE vbap-abgru, "Reason for rejection of quotations and sales orders
END OF t_vbap.
TYPES: BEGIN OF t_likp,
vbeln LIKE likp-vbeln, "Delivery
erdat LIKE likp-erdat, "Date on Which Record Was Created
kunag LIKE likp-kunag, "Sold-to party
END OF t_likp.
TYPES: BEGIN OF t_lips,
vbeln LIKE likp-vbeln, "Delivery
posnr LIKE lips-posnr, "Delivery Item
matnr LIKE lips-matnr, "Material Number
lfimg LIKE lips-lfimg, "Actual quantity delivered (in sales units)
vgbel LIKE lips-vgbel, "Document number of the reference document
vgpos LIKE lips-vgpos, "Item number of the reference item
END OF t_lips.
TYPES: BEGIN OF t_vbrp,
vbeln LIKE vbrp-vbeln, "Billing Document
vgbel LIKE vbrp-vgbel, "Document number of the reference document
vgpos LIKE vbrp-vgpos, "Item number of the reference item
aubel LIKE vbrp-aubel, "Sales Document
aupos LIKE vbrp-aupos, "Sales Document Item
END OF t_vbrp .
TYPES: BEGIN OF t_vbrk,
vbeln LIKE vbrk-vbeln, "Billing Document
erdat LIKE vbrk-erdat, "Date on Which Record Was Created
netwr LIKE vbrk-netwr, "Net Value in Document Currency
END OF t_vbrk.
TYPES: BEGIN OF t_vbuk,
vbeln LIKE vbuk-vbeln, "Sales and Distribution Document Number
lfstk LIKE vbuk-lfstk, "Delivery status
END OF t_vbuk.
TYPES: BEGIN OF t_final,
vbeln LIKE vbak-vbeln, "Sales Document
erdat LIKE vbak-erdat, "Date on Which Record Was Created
kunnr LIKE vbak-kunnr, "Sold-to party
lifsk LIKE vbak-lifsk, "Delivery block (document header)
faksk LIKE vbak-faksk, "Billing block in SD document
vkbur LIKE vbak-vkbur, "Sales office
bstnk LIKE vbak-bstnk, "Customer purchase order number
bstdk LIKE vbak-bstdk, "Customer purchase order date
posnr LIKE vbap-posnr, "Sales Document Item
matnr LIKE vbap-matnr, "Material Number
arktx LIKE vbap-arktx, "Short text for sales order item
meins LIKE vbap-meins, "Base Unit of Measure
kwmeng LIKE vbap-kwmeng, "Cumulative Order Quantity in Sales Units
delno LIKE likp-vbeln, "Delivery
deldt LIKE likp-erdat, "Date on Which Record Was Created
kunag LIKE likp-kunag, "Sold-to party
lfimg like lips-lfimg, "Actual quantity delivered (in sales units)
invoi LIKE vbrk-vbeln, "Billing Document
netwr LIKE vbrk-netwr, "Net Value in Document Currency
invdt LIKE vbrk-erdat, "Date on Which Record Was Created
lfstk LIKE vbuk-lfstk, "Delivery status
statu LIKE lips-lfimg, "Quantity to be delivered
abgru LIKE vbap-abgru, "Reason for rejection of quotations and sales orders
box,
light,
END OF t_final.
internal table declaration
DATA it_fc TYPE slis_t_fieldcat_alv WITH HEADER LINE.
DATA IT_SORT TYPE SLIS_T_SORTINFO_ALV WITH HEADER LINE.
DATA I_LAYOUT TYPE SLIS_LAYOUT_ALV.
DATA:it_vbak TYPE TABLE OF t_vbak WITH HEADER LINE,
it_vbap TYPE TABLE OF t_vbap WITH HEADER LINE,
it_likp TYPE TABLE OF t_likp WITH HEADER LINE,
it_lips TYPE TABLE OF t_lips WITH HEADER LINE,
it_vbrk TYPE TABLE OF t_vbrk WITH HEADER LINE,
it_vbrp TYPE TABLE OF t_vbrp WITH HEADER LINE,
it_vbuk TYPE TABLE OF t_vbuk WITH HEADER LINE,
it_final TYPE TABLE OF t_final WITH HEADER LINE.
variable declaration
DATA: v_status TYPE i.
*selection screen
SELECTION-SCREEN skip 1.
SELECT-OPTIONS s_vbeln FOR vbak-vbeln NO-EXTENSION.
SELECT-OPTIONS s_erdat FOR vbak-erdat OBLIGATORY NO-EXTENSION.
SELECTION-SCREEN skip 1.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
SELECT-OPTIONS s_bstnk FOR vbak-bstnk NO-EXTENSION.
SELECT-OPTIONS s_bstdk FOR vbak-bstdk NO-EXTENSION.
SELECT-OPTIONS s_kunnr FOR vbak-kunnr NO-EXTENSION.
SELECTION-SCREEN END OF BLOCK b1.
initialization
INITIALIZATION.
PERFORM SORTING TABLES IT_SORT.
PERFORM LAYOUT USING I_LAYOUT.
perform fieldcat tables it_fc.
*at selection screen
AT SELECTION-SCREEN.
if s_vbeln-low is not initial.
select single vbeln
from vbak
into vbak
where vbeln = s_vbeln-low.
if sy-subrc <> 0.
message e002.
endif.
endif.
if s_vbeln-high is not initial.
select single vbeln
from vbak
into vbak
where vbeln = s_vbeln-high.
if sy-subrc <> 0.
message e002.
endif.
endif.
if s_erdat is not initial.
if s_erdat-low > sy-datum.
message e003.
if s_erdat-high <= sy-datum.
message e004.
endif.
endif.
endif.
if s_bstnk-low is not initial.
select single bstnk
from vbak
into vbak
where bstnk = s_bstnk-low.
if sy-subrc <> 0.
message e002.
endif.
endif.
if s_bstnk-high is not initial.
select single bstnk
from vbak
into vbak
where bstnk = s_bstnk-high.
if sy-subrc <> 0.
message e002.
endif.
endif.
if s_bstdk is not initial.
if s_bstdk-low > sy-datum.
message e003.
if s_bstdk-high <= sy-datum.
message e004.
endif.
endif.
endif.
if s_kunnr is not initial.
select single kunnr
from kna1
into kna1
where kunnr in s_kunnr.
if sy-subrc <> 0.
message e000.
endif.
endif.
start of selection
START-OF-SELECTION.
PERFORM get_table_data.
end of selection
END-OF-SELECTION.
PERFORM display_data.
alv display
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = SY-REPID
I_CALLBACK_USER_COMMAND = 'UC_COMM'
I_GRID_TITLE = 'SALES ORDER STATUS'
IS_LAYOUT = I_LAYOUT
it_fieldcat = it_fc[]
IT_SORT = IT_SORT[]
I_SAVE = ' '
IS_VARIANT =
IT_EVENTS =
IT_EVENT_EXIT =
IS_PRINT =
TABLES
t_outtab = it_final
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
&----
*& Form get_table_data
&----
text
----
--> p1 text
<-- p2 text
----
FORM get_table_data.
if s_erdat is not initial and
s_vbeln is initial and
s_bstnk is initial and
s_bstdk is initial and
s_kunnr is initial.
SELECT vbeln
erdat
kunnr
lifsk
faksk
vkbur
bstnk
bstdk
INTO TABLE it_vbak
FROM vbak
WHERE erdat IN s_erdat AND
auart eq 'ZOR'.
endif.
if s_vbeln is not initial and
s_erdat is not initial and
s_bstnk is initial and
s_bstdk is initial and
s_kunnr is initial.
SELECT vbeln
erdat
kunnr
lifsk
faksk
vkbur
bstnk
bstdk
INTO TABLE it_vbak
FROM vbak
WHERE vbeln IN s_vbeln AND
erdat IN s_erdat AND
auart eq 'ZOR'.
endif.
if s_vbeln is not initial and
s_erdat is not initial and
s_bstnk is not initial and
s_bstdk is initial and
s_kunnr is initial.
SELECT vbeln
erdat
kunnr
lifsk
faksk
vkbur
bstnk
bstdk
INTO TABLE it_vbak
FROM vbak
WHERE vbeln IN s_vbeln
AND erdat IN s_erdat
AND bstnk IN s_bstnk
AND auart EQ 'ZOR'.
endif.
if s_vbeln is not initial and
s_erdat is not initial and
s_bstnk is not initial and
s_bstdk is not initial and
s_kunnr is initial.
SELECT vbeln
erdat
kunnr
lifsk
faksk
vkbur
bstnk
bstdk
INTO TABLE it_vbak
FROM vbak
WHERE vbeln IN s_vbeln
AND erdat IN s_erdat
AND bstnk IN s_bstnk
AND bstdk IN s_bstdk
AND auart EQ 'ZOR'.
endif.
*if s_vbeln is not initial and
s_erdat is not initial and
s_bstnk is initial and
s_bstdk is initial and
s_kunnr is initial.
*SELECT vbeln
erdat
kunnr
lifsk
faksk
vkbur
bstnk
bstdk
INTO TABLE it_vbak
FROM vbak
WHERE vbeln IN s_vbeln
AND erdat IN s_erdat.
*endif.
if it_vbak[] is not initial.
SELECT vbeln
posnr
matnr
arktx
meins
kwmeng
abgru
INTO TABLE it_vbap
FROM vbap
FOR ALL ENTRIES IN it_vbak
WHERE vbeln = it_vbak-vbeln.
endif.
if it_vbap[] is not initial.
SELECT vbeln
posnr
matnr
lfimg
vgbel
vgpos
INTO TABLE it_lips
FROM lips
FOR ALL ENTRIES IN it_vbap
WHERE vgbel = it_vbap-vbeln
AND vgpos = it_vbap-posnr.
endif.
if it_lips[] is not initial.
SELECT vbeln
erdat
kunag
INTO TABLE it_likp
FROM likp
FOR ALL ENTRIES IN it_lips
WHERE vbeln = it_lips-vbeln.
endif.
if it_likp[] is not initial.
SELECT vbeln
vgbel
vgpos
aubel
aupos
INTO TABLE it_vbrp
FROM vbrp
FOR ALL ENTRIES IN it_lips
WHERE vgbel = it_lips-vbeln
AND vgpos = it_lips-posnr.
endif.
if it_vbrp[] is not initial.
SELECT vbeln
erdat
netwr
INTO TABLE it_vbrk
FROM vbrk
FOR ALL ENTRIES IN it_vbrp
WHERE vbeln = it_vbrp-vbeln.
endif.
if it_vbrk[] is not initial.
SELECT vbeln
lfstk
INTO TABLE it_vbuk
FROM vbuk
FOR ALL ENTRIES IN it_vbak
WHERE vbeln = it_vbak-vbeln.
endif.
ENDFORM. " get_table_data
&----
*& Form display_data
&----
text
----
--> p1 text
<-- p2 text
----
FORM display_data .
LOOP AT it_vbap.
it_final-posnr = it_vbap-posnr.
it_final-matnr = it_vbap-matnr.
it_final-arktx = it_vbap-arktx.
it_final-meins = it_vbap-meins.
it_final-kwmeng = it_vbap-kwmeng.
it_final-abgru = it_vbap-abgru.
READ TABLE it_lips WITH KEY vgbel = it_vbap-vbeln
vgpos = it_vbap-posnr.
it_final-lfimg = it_lips-lfimg.
it_final-statu = it_vbap-kwmeng - it_lips-lfimg.
READ TABLE it_vbak WITH KEY vbeln = it_vbap-vbeln.
it_final-vbeln = it_vbak-vbeln.
it_final-erdat = it_vbak-erdat.
it_final-kunnr = it_vbak-kunnr.
it_final-lifsk = it_vbak-lifsk.
it_final-faksk = it_vbak-faksk.
it_final-vkbur = it_vbak-vkbur.
it_final-BSTNK = it_vbak-BSTNK.
it_final-BSTDK = it_vbak-BSTDK.
READ TABLE it_likp WITH KEY vbeln = it_lips-vbeln.
it_final-delno = it_likp-vbeln.
it_final-deldt = it_likp-erdat.
READ TABLE it_vbrp WITH KEY vgbel = it_lips-vbeln
vgpos = it_lips-posnr.
READ TABLE it_vbrk WITH KEY vbeln = it_vbrp-vbeln.
it_final-invoi = it_vbrk-vbeln.
it_final-invdt = it_vbrk-erdat.
it_final-netwr = it_vbrk-netwr.
READ TABLE it_vbuk WITH KEY vbeln = it_vbak-vbeln.
it_final-lfstk = it_vbuk-lfstk.
if it_final-lfstk = 'A'.
it_final-light = '1'.
elseif it_final-lfstk = 'B'.
it_final-light = '2'.
elseif it_final-lfstk = 'C'.
it_final-light = '3'.
endif.
APPEND it_final.
CLEAR it_final.
ENDLOOP.
if it_final[] is initial.
message i007.
endif.
ENDFORM. " display_data
&----
*& Form fieldcat
&----
text
----
-->P_IT_FC text
----
FORM fieldcat TABLES R_IT_FC.
DEFINE m_display.
it_fc-col_pos = &1.
it_fc-tabname = &2.
it_fc-fieldname = &3.
it_fc-ref_tabname = &4.
it_fc-ref_fieldname = &5.
it_fc-key = &6.
IT_FC-HOTSPOT = &7.
IT_FC-seltext_l = &8.
it_fc-quantity = &9.
append it_fc.
clear it_fc.
END-OF-DEFINITION.
m_display '1' 'IT_FINAL' 'VBELN' 'VBAK' 'VBELN' 'X' 'X' '' ''.
m_display '2' 'IT_FINAL' 'KUNNR' 'VBAK' 'KUNNR' 'X' '' '' ''.
m_display '3' 'IT_FINAL' 'ERDAT' 'VBAK' 'ERDAT' '' '' '' ''.
m_display '4' 'IT_FINAL' 'VKBUR' 'VBAK' 'VKBUR' '' '' '' ''.
m_display '5' 'IT_FINAL' 'POSNR' 'VBAP' 'POSNR' '' '' '' ''.
m_display '6' 'IT_FINAL' 'MATNR' 'VBAP' 'MATNR' '' '' '' ''.
m_display '7' 'IT_FINAL' 'ARKTX' 'VBAP' 'ARKTX' '' '' '' ''.
m_display '8' 'IT_FINAL' 'KWMENG' 'VBAP' 'KWMENG' '' '' '' 'NO'.
m_display '9' 'IT_FINAL' 'MEINS' 'VBAP' 'MEINS' '' '' '' ''.
m_display '10' 'IT_FINAL' 'LIFSK' 'VBAK' 'LIFSK' '' '' '' ''.
m_display '11' 'IT_FINAL' 'FAKSK' 'VBAK' 'FAKSK' '' '' '' ''.
m_display '12' 'IT_FINAL' 'DELNO' 'LIKP' 'VBELN' '' 'X' '' ''.
m_display '13' 'IT_FINAL' 'DELDT' 'LIKP' 'ERDAT' '' '' '' ''.
m_display '14' 'IT_FINAL' 'LFIMG' 'LIPS' 'LFIMG' '' '' '' 'NO'.
m_display '15' 'IT_FINAL' 'LFSTK' 'VBUK' 'LFSTK' '' '' '' ''.
m_display '16' 'IT_FINAL' 'STATU' 'VBUK' '' '' '' text-003 'NO'.
m_display '17' 'IT_FINAL' 'ABGRU' 'VBAP' 'ABGRU' '' '' '' ''.
m_display '18' 'IT_FINAL' 'INVOI' 'VBRK' 'VBELN' '' 'X' '' ''.
m_display '19' 'IT_FINAL' 'INVDT' 'VBRK' 'ERDAT' '' '' '' ''.
m_display '20' 'IT_FINAL' 'NETWR' 'VBRK' 'NETWR' '' '' '' ''.
m_display '21' 'IT_FINAL' 'BSTNK' 'VBAK' 'BSTNK' '' '' '' ''.
m_display '22' 'IT_FINAL' 'BSTDK' 'VBAK' 'BSTDK' '' '' '' ''.
ENDFORM. " fieldcat
&----
*& Form LAYOUT
&----
text
----
-->P_I_LAYOUT text
----
form LAYOUT using R_layout TYPE SLIS_LAYOUT_ALV.
R_LAYOUT-ZEBRA = 'X'.
R_LAYOUT-BOX_FIELDNAME = 'BOX'.
R_LAYOUT-LIGHTS_FIELDNAME = 'LIGHT'.
endform. " LAYOUT
&----
*& Form SORTING
&----
text
----
-->P_IT_SORT text
----
form SORTING tableS p_it_sort LIKE IT_SORT[].
P_IT_SORT-SPOS = '1'.
P_IT_SORT-TABNAME = 'IT_FINAL'.
P_IT_SORT-FIELDNAME = 'VBELN'.
P_IT_SORT-UP = 'X'.
APPEND P_IT_SORT.
CLEAR P_IT_SORT.
P_IT_SORT-SPOS = '2'.
P_IT_SORT-TABNAME = 'IT_FINAL'.
P_IT_SORT-FIELDNAME = 'KUNNR'.
P_IT_SORT-UP = 'X'.
APPEND P_IT_SORT.
CLEAR P_IT_SORT.
P_IT_SORT-SPOS = '3'.
P_IT_SORT-TABNAME = 'IT_FINAL'.
P_IT_SORT-FIELDNAME = 'ERDAT'.
P_IT_SORT-UP = 'X'.
APPEND P_IT_SORT.
CLEAR P_IT_SORT.
P_IT_SORT-SPOS = '4'.
P_IT_SORT-TABNAME = 'IT_FINAL'.
P_IT_SORT-FIELDNAME = 'BSTNK'.
P_IT_SORT-UP = 'X'.
APPEND P_IT_SORT.
CLEAR P_IT_SORT.
P_IT_SORT-SPOS = '5'.
P_IT_SORT-TABNAME = 'IT_FINAL'.
P_IT_SORT-FIELDNAME = 'BSTDK'.
P_IT_SORT-UP = 'X'.
APPEND P_IT_SORT.
CLEAR P_IT_SORT.
P_IT_SORT-SPOS = '14'.
P_IT_SORT-TABNAME = 'IT_FINAL'.
P_IT_SORT-FIELDNAME = 'DELDT'.
P_IT_SORT-UP = 'X'.
APPEND P_IT_SORT.
CLEAR P_IT_SORT.
P_IT_SORT-SPOS = '18'.
P_IT_SORT-TABNAME = 'IT_FINAL'.
P_IT_SORT-FIELDNAME = 'INVDT'.
P_IT_SORT-UP = 'X'.
APPEND P_IT_SORT.
CLEAR P_IT_SORT.
P_IT_SORT-SPOS = '13'.
P_IT_SORT-TABNAME = 'IT_FINAL'.
P_IT_SORT-FIELDNAME = 'DELNO'.
P_IT_SORT-UP = 'X'.
APPEND P_IT_SORT.
CLEAR P_IT_SORT.
P_IT_SORT-SPOS = '17'.
P_IT_SORT-TABNAME = 'IT_FINAL'.
P_IT_SORT-FIELDNAME = 'INVOI'.
P_IT_SORT-UP = 'X'.
APPEND P_IT_SORT.
CLEAR P_IT_SORT.
P_IT_SORT-SPOS = '19'.
P_IT_SORT-TABNAME = 'IT_FINAL'.
P_IT_SORT-FIELDNAME = 'NETWR'.
P_IT_SORT-UP = 'X'.
APPEND P_IT_SORT.
CLEAR P_IT_SORT.
endform. " SORTING
hope this will be useful.
Regards
kothai.
‎2006 Nov 29 11:22 AM
hi,
Sales order header --> VBAK
Sales order item --> VBAP
VBELN --> Sales order number field in both the tables
‎2006 Nov 29 11:23 AM
hi,
BEGIN OF IT_VBAK OCCURS 0,
VBELN LIKE VBAK-VBELN, " SALES DOCUMENT
VKORG LIKE VBAK-VKORG, " DISTRIBUTION CHANNEL
VTWEG LIKE VBAK-VTWEG, " DISTRIBUTION CHANNEL
AUART LIKE VBAK-AUART, " SALES DOCUMENT TYPE
SPART LIKE VBAK-SPART, " DIVISION
AUDAT LIKE VBAK-AUDAT, " DOCUMENT DATE
KUNNR LIKE VBAK-KUNNR, " SOLD TO PARTY 1
NETWR LIKE VBAK-NETWR, " NET VALUE OF SALES DOC
END OF IT_VBAK.
DATA: BEGIN OF IT_VBAP OCCURS 0,
VBELN LIKE VBAP-VBELN, " SALES DOCUMENT
POSNR LIKE VBAP-POSNR, " SALES DOCUMENT ITEM
MATNR LIKE VBAP-MATNR, " MATERIAL NUMBER
ARKTX LIKE VBAP-ARKTX, " SALES ORDER ITEM
KWMENG LIKE VBAP-KWMENG, " ORDER QUANTITY
WERKS LIKE VBAP-WERKS, " PLANT
LGORT LIKE VBAP-LGORT, " STORAGE LOCATION
NETPR LIKE VBAP-NETPR, " NET PRICE
END OF IT_VBAP.
regards,
deepthi
‎2006 Nov 29 11:23 AM
‎2006 Nov 29 11:25 AM
‎2006 Nov 29 11:25 AM
hi.
refer to the program below. this program gives the complete details of sales order status.
&----
*& Report ZSD_SO_DETAILS
*&
&----
*&
*&
&----
REPORT ZSD_SO_DETAILS
message-id zqt_msg
no standard page heading.
type pools
TYPE-POOLS: slis.
*table declaration
TABLES: vbak, "Sales Document: Header Data
kna1. "General Data in Customer Master
*types declaration
TYPES: BEGIN OF t_vbak,
vbeln LIKE vbak-vbeln, "Sales Document
erdat LIKE vbak-erdat, "Date on Which Record Was Created
kunnr LIKE vbak-kunnr, "Sold-to party
lifsk LIKE vbak-lifsk, "Delivery block (document header)
faksk LIKE vbak-faksk, "Billing block in SD document
vkbur LIKE vbak-vkbur, "Sales Office
bstnk LIKE vbak-bstnk, "Customer purchase order number
bstdk LIKE vbak-bstdk, "Customer purchase order date
END OF t_vbak.
TYPES: BEGIN OF t_vbap,
vbeln LIKE vbap-vbeln, "Sales Document
posnr LIKE vbap-posnr, "Sales Document Item
matnr LIKE vbap-matnr, "Material Number
arktx LIKE vbap-arktx, "Short text for sales order item
meins LIKE vbap-meins, "Base Unit of Measure
kwmeng LIKE vbap-kwmeng,"Cumulative Order Quantity in Sales Units
abgru LIKE vbap-abgru, "Reason for rejection of quotations and sales orders
END OF t_vbap.
TYPES: BEGIN OF t_likp,
vbeln LIKE likp-vbeln, "Delivery
erdat LIKE likp-erdat, "Date on Which Record Was Created
kunag LIKE likp-kunag, "Sold-to party
END OF t_likp.
TYPES: BEGIN OF t_lips,
vbeln LIKE likp-vbeln, "Delivery
posnr LIKE lips-posnr, "Delivery Item
matnr LIKE lips-matnr, "Material Number
lfimg LIKE lips-lfimg, "Actual quantity delivered (in sales units)
vgbel LIKE lips-vgbel, "Document number of the reference document
vgpos LIKE lips-vgpos, "Item number of the reference item
END OF t_lips.
TYPES: BEGIN OF t_vbrp,
vbeln LIKE vbrp-vbeln, "Billing Document
vgbel LIKE vbrp-vgbel, "Document number of the reference document
vgpos LIKE vbrp-vgpos, "Item number of the reference item
aubel LIKE vbrp-aubel, "Sales Document
aupos LIKE vbrp-aupos, "Sales Document Item
END OF t_vbrp .
TYPES: BEGIN OF t_vbrk,
vbeln LIKE vbrk-vbeln, "Billing Document
erdat LIKE vbrk-erdat, "Date on Which Record Was Created
netwr LIKE vbrk-netwr, "Net Value in Document Currency
END OF t_vbrk.
TYPES: BEGIN OF t_vbuk,
vbeln LIKE vbuk-vbeln, "Sales and Distribution Document Number
lfstk LIKE vbuk-lfstk, "Delivery status
END OF t_vbuk.
TYPES: BEGIN OF t_final,
vbeln LIKE vbak-vbeln, "Sales Document
erdat LIKE vbak-erdat, "Date on Which Record Was Created
kunnr LIKE vbak-kunnr, "Sold-to party
lifsk LIKE vbak-lifsk, "Delivery block (document header)
faksk LIKE vbak-faksk, "Billing block in SD document
vkbur LIKE vbak-vkbur, "Sales office
bstnk LIKE vbak-bstnk, "Customer purchase order number
bstdk LIKE vbak-bstdk, "Customer purchase order date
posnr LIKE vbap-posnr, "Sales Document Item
matnr LIKE vbap-matnr, "Material Number
arktx LIKE vbap-arktx, "Short text for sales order item
meins LIKE vbap-meins, "Base Unit of Measure
kwmeng LIKE vbap-kwmeng, "Cumulative Order Quantity in Sales Units
delno LIKE likp-vbeln, "Delivery
deldt LIKE likp-erdat, "Date on Which Record Was Created
kunag LIKE likp-kunag, "Sold-to party
lfimg like lips-lfimg, "Actual quantity delivered (in sales units)
invoi LIKE vbrk-vbeln, "Billing Document
netwr LIKE vbrk-netwr, "Net Value in Document Currency
invdt LIKE vbrk-erdat, "Date on Which Record Was Created
lfstk LIKE vbuk-lfstk, "Delivery status
statu LIKE lips-lfimg, "Quantity to be delivered
abgru LIKE vbap-abgru, "Reason for rejection of quotations and sales orders
box,
light,
END OF t_final.
internal table declaration
DATA it_fc TYPE slis_t_fieldcat_alv WITH HEADER LINE.
DATA IT_SORT TYPE SLIS_T_SORTINFO_ALV WITH HEADER LINE.
DATA I_LAYOUT TYPE SLIS_LAYOUT_ALV.
DATA:it_vbak TYPE TABLE OF t_vbak WITH HEADER LINE,
it_vbap TYPE TABLE OF t_vbap WITH HEADER LINE,
it_likp TYPE TABLE OF t_likp WITH HEADER LINE,
it_lips TYPE TABLE OF t_lips WITH HEADER LINE,
it_vbrk TYPE TABLE OF t_vbrk WITH HEADER LINE,
it_vbrp TYPE TABLE OF t_vbrp WITH HEADER LINE,
it_vbuk TYPE TABLE OF t_vbuk WITH HEADER LINE,
it_final TYPE TABLE OF t_final WITH HEADER LINE.
variable declaration
DATA: v_status TYPE i.
*selection screen
SELECTION-SCREEN skip 1.
SELECT-OPTIONS s_vbeln FOR vbak-vbeln NO-EXTENSION.
SELECT-OPTIONS s_erdat FOR vbak-erdat OBLIGATORY NO-EXTENSION.
SELECTION-SCREEN skip 1.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
SELECT-OPTIONS s_bstnk FOR vbak-bstnk NO-EXTENSION.
SELECT-OPTIONS s_bstdk FOR vbak-bstdk NO-EXTENSION.
SELECT-OPTIONS s_kunnr FOR vbak-kunnr NO-EXTENSION.
SELECTION-SCREEN END OF BLOCK b1.
initialization
INITIALIZATION.
PERFORM SORTING TABLES IT_SORT.
PERFORM LAYOUT USING I_LAYOUT.
perform fieldcat tables it_fc.
*at selection screen
AT SELECTION-SCREEN.
if s_vbeln-low is not initial.
select single vbeln
from vbak
into vbak
where vbeln = s_vbeln-low.
if sy-subrc <> 0.
message e002.
endif.
endif.
if s_vbeln-high is not initial.
select single vbeln
from vbak
into vbak
where vbeln = s_vbeln-high.
if sy-subrc <> 0.
message e002.
endif.
endif.
if s_erdat is not initial.
if s_erdat-low > sy-datum.
message e003.
if s_erdat-high <= sy-datum.
message e004.
endif.
endif.
endif.
if s_bstnk-low is not initial.
select single bstnk
from vbak
into vbak
where bstnk = s_bstnk-low.
if sy-subrc <> 0.
message e002.
endif.
endif.
if s_bstnk-high is not initial.
select single bstnk
from vbak
into vbak
where bstnk = s_bstnk-high.
if sy-subrc <> 0.
message e002.
endif.
endif.
if s_bstdk is not initial.
if s_bstdk-low > sy-datum.
message e003.
if s_bstdk-high <= sy-datum.
message e004.
endif.
endif.
endif.
if s_kunnr is not initial.
select single kunnr
from kna1
into kna1
where kunnr in s_kunnr.
if sy-subrc <> 0.
message e000.
endif.
endif.
start of selection
START-OF-SELECTION.
PERFORM get_table_data.
end of selection
END-OF-SELECTION.
PERFORM display_data.
alv display
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = SY-REPID
I_CALLBACK_USER_COMMAND = 'UC_COMM'
I_GRID_TITLE = 'SALES ORDER STATUS'
IS_LAYOUT = I_LAYOUT
it_fieldcat = it_fc[]
IT_SORT = IT_SORT[]
I_SAVE = ' '
IS_VARIANT =
IT_EVENTS =
IT_EVENT_EXIT =
IS_PRINT =
TABLES
t_outtab = it_final
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
&----
*& Form get_table_data
&----
text
----
--> p1 text
<-- p2 text
----
FORM get_table_data.
if s_erdat is not initial and
s_vbeln is initial and
s_bstnk is initial and
s_bstdk is initial and
s_kunnr is initial.
SELECT vbeln
erdat
kunnr
lifsk
faksk
vkbur
bstnk
bstdk
INTO TABLE it_vbak
FROM vbak
WHERE erdat IN s_erdat AND
auart eq 'ZOR'.
endif.
if s_vbeln is not initial and
s_erdat is not initial and
s_bstnk is initial and
s_bstdk is initial and
s_kunnr is initial.
SELECT vbeln
erdat
kunnr
lifsk
faksk
vkbur
bstnk
bstdk
INTO TABLE it_vbak
FROM vbak
WHERE vbeln IN s_vbeln AND
erdat IN s_erdat AND
auart eq 'ZOR'.
endif.
if s_vbeln is not initial and
s_erdat is not initial and
s_bstnk is not initial and
s_bstdk is initial and
s_kunnr is initial.
SELECT vbeln
erdat
kunnr
lifsk
faksk
vkbur
bstnk
bstdk
INTO TABLE it_vbak
FROM vbak
WHERE vbeln IN s_vbeln
AND erdat IN s_erdat
AND bstnk IN s_bstnk
AND auart EQ 'ZOR'.
endif.
if s_vbeln is not initial and
s_erdat is not initial and
s_bstnk is not initial and
s_bstdk is not initial and
s_kunnr is initial.
SELECT vbeln
erdat
kunnr
lifsk
faksk
vkbur
bstnk
bstdk
INTO TABLE it_vbak
FROM vbak
WHERE vbeln IN s_vbeln
AND erdat IN s_erdat
AND bstnk IN s_bstnk
AND bstdk IN s_bstdk
AND auart EQ 'ZOR'.
endif.
*if s_vbeln is not initial and
s_erdat is not initial and
s_bstnk is initial and
s_bstdk is initial and
s_kunnr is initial.
*SELECT vbeln
erdat
kunnr
lifsk
faksk
vkbur
bstnk
bstdk
INTO TABLE it_vbak
FROM vbak
WHERE vbeln IN s_vbeln
AND erdat IN s_erdat.
*endif.
if it_vbak[] is not initial.
SELECT vbeln
posnr
matnr
arktx
meins
kwmeng
abgru
INTO TABLE it_vbap
FROM vbap
FOR ALL ENTRIES IN it_vbak
WHERE vbeln = it_vbak-vbeln.
endif.
if it_vbap[] is not initial.
SELECT vbeln
posnr
matnr
lfimg
vgbel
vgpos
INTO TABLE it_lips
FROM lips
FOR ALL ENTRIES IN it_vbap
WHERE vgbel = it_vbap-vbeln
AND vgpos = it_vbap-posnr.
endif.
if it_lips[] is not initial.
SELECT vbeln
erdat
kunag
INTO TABLE it_likp
FROM likp
FOR ALL ENTRIES IN it_lips
WHERE vbeln = it_lips-vbeln.
endif.
if it_likp[] is not initial.
SELECT vbeln
vgbel
vgpos
aubel
aupos
INTO TABLE it_vbrp
FROM vbrp
FOR ALL ENTRIES IN it_lips
WHERE vgbel = it_lips-vbeln
AND vgpos = it_lips-posnr.
endif.
if it_vbrp[] is not initial.
SELECT vbeln
erdat
netwr
INTO TABLE it_vbrk
FROM vbrk
FOR ALL ENTRIES IN it_vbrp
WHERE vbeln = it_vbrp-vbeln.
endif.
if it_vbrk[] is not initial.
SELECT vbeln
lfstk
INTO TABLE it_vbuk
FROM vbuk
FOR ALL ENTRIES IN it_vbak
WHERE vbeln = it_vbak-vbeln.
endif.
ENDFORM. " get_table_data
&----
*& Form display_data
&----
text
----
--> p1 text
<-- p2 text
----
FORM display_data .
LOOP AT it_vbap.
it_final-posnr = it_vbap-posnr.
it_final-matnr = it_vbap-matnr.
it_final-arktx = it_vbap-arktx.
it_final-meins = it_vbap-meins.
it_final-kwmeng = it_vbap-kwmeng.
it_final-abgru = it_vbap-abgru.
READ TABLE it_lips WITH KEY vgbel = it_vbap-vbeln
vgpos = it_vbap-posnr.
it_final-lfimg = it_lips-lfimg.
it_final-statu = it_vbap-kwmeng - it_lips-lfimg.
READ TABLE it_vbak WITH KEY vbeln = it_vbap-vbeln.
it_final-vbeln = it_vbak-vbeln.
it_final-erdat = it_vbak-erdat.
it_final-kunnr = it_vbak-kunnr.
it_final-lifsk = it_vbak-lifsk.
it_final-faksk = it_vbak-faksk.
it_final-vkbur = it_vbak-vkbur.
it_final-BSTNK = it_vbak-BSTNK.
it_final-BSTDK = it_vbak-BSTDK.
READ TABLE it_likp WITH KEY vbeln = it_lips-vbeln.
it_final-delno = it_likp-vbeln.
it_final-deldt = it_likp-erdat.
READ TABLE it_vbrp WITH KEY vgbel = it_lips-vbeln
vgpos = it_lips-posnr.
READ TABLE it_vbrk WITH KEY vbeln = it_vbrp-vbeln.
it_final-invoi = it_vbrk-vbeln.
it_final-invdt = it_vbrk-erdat.
it_final-netwr = it_vbrk-netwr.
READ TABLE it_vbuk WITH KEY vbeln = it_vbak-vbeln.
it_final-lfstk = it_vbuk-lfstk.
if it_final-lfstk = 'A'.
it_final-light = '1'.
elseif it_final-lfstk = 'B'.
it_final-light = '2'.
elseif it_final-lfstk = 'C'.
it_final-light = '3'.
endif.
APPEND it_final.
CLEAR it_final.
ENDLOOP.
if it_final[] is initial.
message i007.
endif.
ENDFORM. " display_data
&----
*& Form fieldcat
&----
text
----
-->P_IT_FC text
----
FORM fieldcat TABLES R_IT_FC.
DEFINE m_display.
it_fc-col_pos = &1.
it_fc-tabname = &2.
it_fc-fieldname = &3.
it_fc-ref_tabname = &4.
it_fc-ref_fieldname = &5.
it_fc-key = &6.
IT_FC-HOTSPOT = &7.
IT_FC-seltext_l = &8.
it_fc-quantity = &9.
append it_fc.
clear it_fc.
END-OF-DEFINITION.
m_display '1' 'IT_FINAL' 'VBELN' 'VBAK' 'VBELN' 'X' 'X' '' ''.
m_display '2' 'IT_FINAL' 'KUNNR' 'VBAK' 'KUNNR' 'X' '' '' ''.
m_display '3' 'IT_FINAL' 'ERDAT' 'VBAK' 'ERDAT' '' '' '' ''.
m_display '4' 'IT_FINAL' 'VKBUR' 'VBAK' 'VKBUR' '' '' '' ''.
m_display '5' 'IT_FINAL' 'POSNR' 'VBAP' 'POSNR' '' '' '' ''.
m_display '6' 'IT_FINAL' 'MATNR' 'VBAP' 'MATNR' '' '' '' ''.
m_display '7' 'IT_FINAL' 'ARKTX' 'VBAP' 'ARKTX' '' '' '' ''.
m_display '8' 'IT_FINAL' 'KWMENG' 'VBAP' 'KWMENG' '' '' '' 'NO'.
m_display '9' 'IT_FINAL' 'MEINS' 'VBAP' 'MEINS' '' '' '' ''.
m_display '10' 'IT_FINAL' 'LIFSK' 'VBAK' 'LIFSK' '' '' '' ''.
m_display '11' 'IT_FINAL' 'FAKSK' 'VBAK' 'FAKSK' '' '' '' ''.
m_display '12' 'IT_FINAL' 'DELNO' 'LIKP' 'VBELN' '' 'X' '' ''.
m_display '13' 'IT_FINAL' 'DELDT' 'LIKP' 'ERDAT' '' '' '' ''.
m_display '14' 'IT_FINAL' 'LFIMG' 'LIPS' 'LFIMG' '' '' '' 'NO'.
m_display '15' 'IT_FINAL' 'LFSTK' 'VBUK' 'LFSTK' '' '' '' ''.
m_display '16' 'IT_FINAL' 'STATU' 'VBUK' '' '' '' text-003 'NO'.
m_display '17' 'IT_FINAL' 'ABGRU' 'VBAP' 'ABGRU' '' '' '' ''.
m_display '18' 'IT_FINAL' 'INVOI' 'VBRK' 'VBELN' '' 'X' '' ''.
m_display '19' 'IT_FINAL' 'INVDT' 'VBRK' 'ERDAT' '' '' '' ''.
m_display '20' 'IT_FINAL' 'NETWR' 'VBRK' 'NETWR' '' '' '' ''.
m_display '21' 'IT_FINAL' 'BSTNK' 'VBAK' 'BSTNK' '' '' '' ''.
m_display '22' 'IT_FINAL' 'BSTDK' 'VBAK' 'BSTDK' '' '' '' ''.
ENDFORM. " fieldcat
&----
*& Form LAYOUT
&----
text
----
-->P_I_LAYOUT text
----
form LAYOUT using R_layout TYPE SLIS_LAYOUT_ALV.
R_LAYOUT-ZEBRA = 'X'.
R_LAYOUT-BOX_FIELDNAME = 'BOX'.
R_LAYOUT-LIGHTS_FIELDNAME = 'LIGHT'.
endform. " LAYOUT
&----
*& Form SORTING
&----
text
----
-->P_IT_SORT text
----
form SORTING tableS p_it_sort LIKE IT_SORT[].
P_IT_SORT-SPOS = '1'.
P_IT_SORT-TABNAME = 'IT_FINAL'.
P_IT_SORT-FIELDNAME = 'VBELN'.
P_IT_SORT-UP = 'X'.
APPEND P_IT_SORT.
CLEAR P_IT_SORT.
P_IT_SORT-SPOS = '2'.
P_IT_SORT-TABNAME = 'IT_FINAL'.
P_IT_SORT-FIELDNAME = 'KUNNR'.
P_IT_SORT-UP = 'X'.
APPEND P_IT_SORT.
CLEAR P_IT_SORT.
P_IT_SORT-SPOS = '3'.
P_IT_SORT-TABNAME = 'IT_FINAL'.
P_IT_SORT-FIELDNAME = 'ERDAT'.
P_IT_SORT-UP = 'X'.
APPEND P_IT_SORT.
CLEAR P_IT_SORT.
P_IT_SORT-SPOS = '4'.
P_IT_SORT-TABNAME = 'IT_FINAL'.
P_IT_SORT-FIELDNAME = 'BSTNK'.
P_IT_SORT-UP = 'X'.
APPEND P_IT_SORT.
CLEAR P_IT_SORT.
P_IT_SORT-SPOS = '5'.
P_IT_SORT-TABNAME = 'IT_FINAL'.
P_IT_SORT-FIELDNAME = 'BSTDK'.
P_IT_SORT-UP = 'X'.
APPEND P_IT_SORT.
CLEAR P_IT_SORT.
P_IT_SORT-SPOS = '14'.
P_IT_SORT-TABNAME = 'IT_FINAL'.
P_IT_SORT-FIELDNAME = 'DELDT'.
P_IT_SORT-UP = 'X'.
APPEND P_IT_SORT.
CLEAR P_IT_SORT.
P_IT_SORT-SPOS = '18'.
P_IT_SORT-TABNAME = 'IT_FINAL'.
P_IT_SORT-FIELDNAME = 'INVDT'.
P_IT_SORT-UP = 'X'.
APPEND P_IT_SORT.
CLEAR P_IT_SORT.
P_IT_SORT-SPOS = '13'.
P_IT_SORT-TABNAME = 'IT_FINAL'.
P_IT_SORT-FIELDNAME = 'DELNO'.
P_IT_SORT-UP = 'X'.
APPEND P_IT_SORT.
CLEAR P_IT_SORT.
P_IT_SORT-SPOS = '17'.
P_IT_SORT-TABNAME = 'IT_FINAL'.
P_IT_SORT-FIELDNAME = 'INVOI'.
P_IT_SORT-UP = 'X'.
APPEND P_IT_SORT.
CLEAR P_IT_SORT.
P_IT_SORT-SPOS = '19'.
P_IT_SORT-TABNAME = 'IT_FINAL'.
P_IT_SORT-FIELDNAME = 'NETWR'.
P_IT_SORT-UP = 'X'.
APPEND P_IT_SORT.
CLEAR P_IT_SORT.
endform. " SORTING
hope this will be useful.
Regards
kothai.
‎2006 Nov 29 11:25 AM
YOu can use the bapi:
To get the sales order for a selection criteria,
you can use the fm: BAPI_SALESORDER_GETLIST
BAPI_SALESORDER_GETSTATUS for the details of the sales order.
Regards,
ravi
‎2006 Nov 29 11:26 AM
Hi,
Sales Order Header Table : VBAK
Sales Order Item table : VBAP
Sales Flow : VBFA
Billing Header table : VBRK
Billing Item table : VBRP
Sales Partner table : VBPA
Custoemr Master : KNA1
Vendor Mafter : LFA1
Combine all table they have line to each other ...
get all necessary fields out of this and u ll be able to prepare a report which contains all Sales data ....
‎2006 Nov 29 11:26 AM
Hi
<b>An Interactive ALV Report
&----
*& Report ZZ_22038_22098_002 *
*& *
&----
*& This is an Interactive ALV report, where on line slection we can see
*& the secondry list
*&
*& *
&----
REPORT ZZ_22038_22098_002 NO STANDARD PAGE HEADING LINE-SIZE 650
MESSAGE-ID ZZ_9838 .
TYPE-POOLS: SLIS.
*type declaration for values from ekko
TYPES: BEGIN OF I_EKKO,
EBELN LIKE EKKO-EBELN,
AEDAT LIKE EKKO-AEDAT,
BUKRS LIKE EKKO-BUKRS,
BSART LIKE EKKO-BSART,
LIFNR LIKE EKKO-LIFNR,
END OF I_EKKO.
DATA: IT_EKKO TYPE STANDARD TABLE OF I_EKKO INITIAL SIZE 0,
WA_EKKO TYPE I_EKKO.
*type declaration for values from ekpo
TYPES: BEGIN OF I_EKPO,
EBELN LIKE EKPO-EBELN,
EBELP LIKE EKPO-EBELP,
MATNR LIKE EKPO-MATNR,
MENGE LIKE EKPO-MENGE,
MEINS LIKE EKPO-MEINS,
NETPR LIKE EKPO-NETPR,
END OF I_EKPO.
DATA: IT_EKPO TYPE STANDARD TABLE OF I_EKPO INITIAL SIZE 0,
WA_EKPO TYPE I_EKPO .
*variable for Report ID
DATA: V_REPID LIKE SY-REPID .
*declaration for fieldcatalog
DATA: I_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
DATA: IT_LISTHEADER TYPE SLIS_T_LISTHEADER.
declaration for events table where user comand or set PF status will
be defined
DATA: V_EVENTS TYPE SLIS_T_EVENT,
WA_EVENT TYPE SLIS_ALV_EVENT.
declartion for layout
DATA: ALV_LAYOUT TYPE SLIS_LAYOUT_ALV.
declaration for variant(type of display we want)
DATA: I_VARIANT TYPE DISVARIANT,
I_VARIANT1 TYPE DISVARIANT,
I_SAVE(1) TYPE C.
*PARAMETERS : p_var TYPE disvariant-variant.
*Title displayed when the alv list is displayed
DATA: I_TITLE_EKKO TYPE LVC_TITLE VALUE 'FIRST LIST DISPLAYED'.
DATA: I_TITLE_EKPO TYPE LVC_TITLE VALUE 'SECONDRY LIST DISPLAYED'.
INITIALIZATION.
V_REPID = SY-REPID.
PERFORM BUILD_FIELDCATLOG.
PERFORM EVENT_CALL.
PERFORM POPULATE_EVENT.
START-OF-SELECTION.
PERFORM DATA_RETRIEVAL.
PERFORM BUILD_LISTHEADER USING IT_LISTHEADER.
PERFORM DISPLAY_ALV_REPORT.
&----
*& Form BUILD_FIELDCATLOG
&----
Fieldcatalog has all the field details from ekko
----
FORM BUILD_FIELDCATLOG.
WA_FIELDCAT-TABNAME = 'IT_EKKO'.
WA_FIELDCAT-FIELDNAME = 'EBELN'.
WA_FIELDCAT-SELTEXT_M = 'PO NO.'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-TABNAME = 'IT_EKKO'.
WA_FIELDCAT-FIELDNAME = 'AEDAT'.
WA_FIELDCAT-SELTEXT_M = 'DATE.'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-TABNAME = 'IT_EKKO'.
WA_FIELDCAT-FIELDNAME = 'BUKRS'.
WA_FIELDCAT-SELTEXT_M = 'COMPANY CODE'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-TABNAME = 'IT_EKKO'.
WA_FIELDCAT-FIELDNAME = 'BUKRS'.
WA_FIELDCAT-SELTEXT_M = 'DOCMENT TYPE'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-TABNAME = 'IT_EKKO'.
WA_FIELDCAT-FIELDNAME = 'LIFNR'.
WA_FIELDCAT-NO_OUT = 'X'.
WA_FIELDCAT-SELTEXT_M = 'VENDOR CODE'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
ENDFORM. "BUILD_FIELDCATLOG
&----
*& Form EVENT_CALL
&----
we get all events - TOP OF PAGE or USER COMMAND in table v_events
----
FORM EVENT_CALL.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
IMPORTING
ET_EVENTS = V_EVENTS
EXCEPTIONS
LIST_TYPE_WRONG = 1
OTHERS = 2
.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. "EVENT_CALL
&----
*& Form POPULATE_EVENT
&----
Events populated for TOP OF PAGE & USER COMAND
----
FORM POPULATE_EVENT.
READ TABLE V_EVENTS INTO WA_EVENT WITH KEY NAME = 'TOP_OF_PAGE'.
IF SY-SUBRC EQ 0.
WA_EVENT-FORM = 'TOP_OF_PAGE'.
MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME =
WA_EVENT-FORM.
ENDIF.
READ TABLE V_EVENTS INTO WA_EVENT WITH KEY NAME = 'USER_COMMAND'.
IF SY-SUBRC EQ 0.
WA_EVENT-FORM = 'USER_COMMAND'.
MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME =
WA_EVENT-NAME.
ENDIF.
ENDFORM. "POPULATE_EVENT
&----
*& Form data_retrieval
&----
retreiving values from the database table ekko
----
FORM DATA_RETRIEVAL.
SELECT EBELN AEDAT BUKRS BSART LIFNR FROM EKKO INTO TABLE IT_EKKO.
ENDFORM. "data_retrieval
&----
*& Form bUild_listheader
&----
text
----
-->I_LISTHEADEtext
----
FORM BUILD_LISTHEADER USING I_LISTHEADER TYPE SLIS_T_LISTHEADER.
DATA HLINE TYPE SLIS_LISTHEADER.
HLINE-INFO = 'this is my first alv pgm'.
HLINE-TYP = 'H'.
ENDFORM. "build_listheader
&----
*& Form display_alv_report
&----
text
----
FORM DISPLAY_ALV_REPORT.
V_REPID = SY-REPID.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = V_REPID
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE'
I_GRID_TITLE = I_TITLE_EKKO
I_GRID_SETTINGS =
IS_LAYOUT = ALV_LAYOUT
IT_FIELDCAT = I_FIELDCAT[]
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
i_default = 'ZLAY1'
I_SAVE = 'A'
is_variant = i_variant
IT_EVENTS = V_EVENTS
TABLES
T_OUTTAB = IT_EKKO
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2
.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. "display_alv_report
&----
*& Form TOP_OF_PAGE
&----
text
----
FORM TOP_OF_PAGE.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = IT_LISTHEADER
i_logo =
I_END_OF_LIST_GRID =
.
ENDFORM. "TOP_OF_PAGE
&----
*& Form USER_COMMAND
&----
text
----
-->R_UCOMM text
-->, text
-->RS_SLEFIELDtext
----
FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMM
RS_SELFIELD TYPE SLIS_SELFIELD.
CASE R_UCOMM.
WHEN '&IC1'.
READ TABLE IT_EKKO INTO WA_EKKO INDEX RS_SELFIELD-TABINDEX.
PERFORM BUILD_FIELDCATLOG_EKPO.
PERFORM EVENT_CALL_EKPO.
PERFORM POPULATE_EVENT_EKPO.
PERFORM DATA_RETRIEVAL_EKPO.
PERFORM BUILD_LISTHEADER_EKPO USING IT_LISTHEADER.
PERFORM DISPLAY_ALV_EKPO.
ENDCASE.
ENDFORM. "user_command
&----
*& Form BUILD_FIELDCATLOG_EKPO
&----
text
----
FORM BUILD_FIELDCATLOG_EKPO.
WA_FIELDCAT-TABNAME = 'IT_EKPO'.
WA_FIELDCAT-FIELDNAME = 'EBELN'.
WA_FIELDCAT-SELTEXT_M = 'PO NO.'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-TABNAME = 'IT_EKPO'.
WA_FIELDCAT-FIELDNAME = 'EBELP'.
WA_FIELDCAT-SELTEXT_M = 'LINE NO'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-TABNAME = 'I_EKPO'.
WA_FIELDCAT-FIELDNAME = 'MATNR'.
WA_FIELDCAT-SELTEXT_M = 'MATERIAL NO.'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-TABNAME = 'I_EKPO'.
WA_FIELDCAT-FIELDNAME = 'MENGE'.
WA_FIELDCAT-SELTEXT_M = 'QUANTITY'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-TABNAME = 'I_EKPO'.
WA_FIELDCAT-FIELDNAME = 'MEINS'.
WA_FIELDCAT-SELTEXT_M = 'UOM'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-TABNAME = 'I_EKPO'.
WA_FIELDCAT-FIELDNAME = 'NETPR'.
WA_FIELDCAT-SELTEXT_M = 'PRICE'.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
ENDFORM. "BUILD_FIELDCATLOG_EKPO
&----
*& Form event_call_ekpo
&----
we get all events - TOP OF PAGE or USER COMMAND in table v_events
----
FORM EVENT_CALL_EKPO.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
IMPORTING
ET_EVENTS = V_EVENTS
EXCEPTIONS
LIST_TYPE_WRONG = 1
OTHERS = 2
.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. "event_call_ekpo
&----
*& Form POPULATE_EVENT
&----
Events populated for TOP OF PAGE & USER COMAND
----
FORM POPULATE_EVENT_EKPO.
READ TABLE V_EVENTS INTO WA_EVENT WITH KEY NAME = 'TOP_OF_PAGE'.
IF SY-SUBRC EQ 0.
WA_EVENT-FORM = 'TOP_OF_PAGE'.
MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME =
WA_EVENT-FORM.
ENDIF.
ENDFORM. "POPULATE_EVENT
&----
*& Form TOP_OF_PAGE
&----
text
----
FORM F_TOP_OF_PAGE.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = IT_LISTHEADER
i_logo =
I_END_OF_LIST_GRID =
.
ENDFORM. "TOP_OF_PAGE
&----
*& Form USER_COMMAND
&----
text
----
-->R_UCOMM text
-->, text
-->RS_SLEFIELDtext
----
*retreiving values from the database table ekko
FORM DATA_RETRIEVAL_EKPO.
SELECT EBELN EBELP MATNR MENGE MEINS NETPR FROM EKPO INTO TABLE IT_EKPO.
ENDFORM.
FORM BUILD_LISTHEADER_EKPO USING I_LISTHEADER TYPE SLIS_T_LISTHEADER.
DATA: HLINE1 TYPE SLIS_LISTHEADER.
HLINE1-TYP = 'H'.
HLINE1-INFO = 'CHECKING PGM'.
ENDFORM.
FORM DISPLAY_ALV_EKPO.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER = ' '
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = V_REPID
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = 'F_USER_COMMAND'
I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE'
I_CALLBACK_HTML_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_END_OF_LIST = ' '
I_STRUCTURE_NAME =
I_BACKGROUND_ID = ' '
I_GRID_TITLE = I_TITLE_EKPO
I_GRID_SETTINGS =
IS_LAYOUT =
IT_FIELDCAT = I_FIELDCAT[]
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT =
I_SAVE = 'A'
IS_VARIANT =
IT_EVENTS = V_EVENTS
TABLES
T_OUTTAB = IT_EKPO
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2
.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM.
</b>
Thanks
Manju
‎2006 Nov 29 11:29 AM
‎2006 Nov 29 11:54 AM