2007 Jul 07 12:09 PM
Hi,
How to develop a purchase order report using ALV function modules.
Bye...
Hi,
How to develop a purchase order report using ALV function modules.
Bye...
2007 Jul 07 12:12 PM
Hi
We cant give the complete your requirement but here u can have a smaple code plz check it out
paste this code in ur report and execute it is also related to PO
tables: ekko , ekpo ,EKKN .
TYPE-POOLS: SLIS.
DATA: val1 like konh-vakey.
DATA : ED(15) TYPE N .
Data:GS_LAYOUT TYPE SLIS_LAYOUT_ALV,
G_REPID LIKE SY-REPID,
G_GRID_TITLE TYPE LVC_TITLE.
Data:G_USER_COMMAND TYPE SLIS_FORMNAME VALUE 'USER_COMMAND'.
DATA:G_TABNAME TYPE SLIS_TABNAME VALUE 'ITAB3',
G_SAVE .
DATA:GS_VARIANT LIKE DISVARIANT.
DATA:LS_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
DATA:GT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE.
G_SAVE = 'A'.
*
*SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
*SELECTION-SCREEN SKIP 2.
*SELECTION-SCREEN BEGIN OF LINE.
*SELECTION-SCREEN COMMENT 25(23) text-002.
*SELECT-OPTIONS: S_ebelp FOR eKPO-ebelp.
**PARAMETERS:p_lifnr LIKE ekko-lifnr .
*SELECTION-SCREEN END OF LINE.
*SELECTION-SCREEN END OF BLOCK b1.
*
DATA: BEGIN OF itab OCCURS 0,
EBELN LIKE EKKO-EBELN,
KNUMV LIKE EKKO-KNUMV,
LIFNR LIKE EKKO-LIFNR,
EBELP LIKE KONV-KPOSN,
NETWR LIKE EKPO-NETWR,
NETPR LIKE EKPO-NETPR,
NAME1 LIKE LFA1-NAME1,
NAME2 LIKE LFA1-NAME2,
WERKS LIKE EKPO-WERKS,
MATNR LIKE EKPO-MATNR,
PS_PSP_PNR LIKE EKKN-PS_PSP_PNR,
END OF itab.
DATA: BEGIN OF ITAB3 OCCURS 0,
LIFNR LIKE EKKO-LIFNR,
NAME1 LIKE LFA1-NAME1,
EBELN LIKE EKKO-EBELN,
EBELP LIKE EKPO-EBELP,
NETWR LIKE EKPO-NETWR,
NETPR LIKE EKPO-NETPR,
KSCHL LIKE KONV-KSCHL,
KBETR LIKE KONV-KBETR,
KWERT LIKE KONV-KWERT,
KWERT2 LIKE KONV-KWERT,
TOTAL TYPE p decimals 2,
PS_PSP_PNR LIKE EKKN-PS_PSP_PNR,
ED1 TYPE p decimals 2,
NAME2 LIKE LFA1-NAME2,
KNUMV LIKE EKKO-KNUMV,
END OF ITAB3.
DATA: BEGIN OF ITAB1 OCCURS 0,
KPOSN LIKE KONV-KPOSN,
KNUMV LIKE KONV-KNUMV,
KSCHL LIKE KONV-KSCHL,
KBETR LIKE KONV-KBETR,
KWERT LIKE KONV-KWERT, " THIS IS FOR FREIGHT
* KWERT2 LIKE KONV-KWERT,"THIS FOR OTHER CONDITION
END OF ITAB1.
data: begin of int_konh occurs 0,
KNUMH LIKE KONH-KNUMH,
KSCHL LIKE KONH-KSCHL,
end of int_konh.
DATA: BEGIN OF INT_KONP OCCURS 0,
KNUMH LIKE KONP-KNUMH,
KBETR LIKE KONP-KBETR,
END OF INT_KONP.
DATA: BEGIN OF INT_EKKN OCCURS 0,
EBELN LIKE EKKN-EBELN,
EBELP LIKE EKKN-EBELP,
PS_PSP_PNR LIKE EKKN-PS_PSP_PNR,
END OF INT_EKKN.
PERFORM GET_DATA.
PERFORM CALL_ALV_GRID.
FORM GET_DATA.
*SELECT B~EBELN B~LIFNR B~KNUMV A~EBELP A~NETWR A~NETPR A~WERKS A~MATNR
* L~NAME1 L~NAME2
* FROM EKPO AS A
* INNER JOIN EKKO AS B ON B~EBELN = A~EBELN
* INNER JOIN LFA1 AS L ON L~LIFNR = B~LIFNR
* INNER JOIN EKKN AS C ON C~EBELN = A~EBELN
* INTO CORRESPONDING FIELDS OF TABLE itab
* WHERE B~BUKRS = 'GSPL' .
*
SELECT A~EBELN A~LIFNR A~KNUMV B~EBELP B~NETWR B~NETPR B~WERKS B~MATNR
L~NAME1 L~NAME2
FROM EKKO AS A
INNER JOIN EKPO AS B ON A~EBELN = B~EBELN
INNER JOIN LFA1 AS L ON L~LIFNR = A~LIFNR
* INNER JOIN EKKN AS C ON C~EBELN = A~EBELN
INTO CORRESPONDING FIELDS OF TABLE itab
WHERE B~BUKRS = 'GSPL' .
*SELECT PS_PSP_PNR EBELN EBELP FROM
* EKKN INTO CORRESPONDING FIELDS OF TABLE INT_EKKN
* FOR ALL ENTRIES IN ITAB
* WHERE EKKN~EBELN = ITAB-EBELN EKKN~EBELP = ITAB-EBELP.
if not itab[] is initial.
select * from KONV into CORRESPONDING FIELDS OF TABLE ITAB1
for all entries in itab
where knumv = itab-knumv and
kposn = ITAB-EBELP.
endif.
loop at itab.
ITAB3-EBELN = ITAB-EBELN.
ITAB3-EBELP = ITAB-EBELP.
ITAB3-KNUMV = ITAB-KNUMV.
ITAB3-LIFNR = ITAB-LIFNR.
ITAB3-name1 = ITAB-name1.
ITAB3-NETWR = ITAB-NETWR.
ITAB3-NETPR = ITAB-NETPR.
ITAB3-PS_PSP_PNR = ITAB-PS_PSP_PNR.
sort itab by ebeln ebelp.
read table itab1 with key knumv = itab-knumv
kposn = ITAB-EBELP.
if sy-subrc = 0.
loop at itab1 where knumv = itab-knumv and kposn = itab-ebelp.
itab3-kschl = itab1-kschl.
* ITAB3-KSCHL = ITAB1-KSCHL.
IF ITAB3-KSCHL = 'NAVS' OR ITAB3-KSCHL = 'NAVM'.
ITAB3-KBETR = ITAB1-KBETR.
modify ITAB3 transporting KBETR
where KNUMV = ITAB3-KNUMV AND EBELP = ITAB3-EBELP .
clear: itab1-kbetr.
ELSEIF ITAB3-KSCHL = 'FRA1' OR ITAB3-KSCHL = 'FRC1' OR
ITAB3-KSCHL = 'FRB1'.
ITAB3-KWERT = ITAB1-KWERT.
modify ITAB3 transporting KWERT
where KNUMV = ITAB3-KNUMV AND EBELP = ITAB3-EBELP .
clear: itab1-kwert.
ELSEIF ITAB3-KSCHL = 'RL01' OR ITAB3-KSCHL = 'ZA00' OR
ITAB3-KSCHL = 'ZA01' OR ITAB3-KSCHL = 'ZAE1' OR
ITAB3-KSCHL = 'ZAED' OR
ITAB3-KSCHL = 'ZAFR' OR ITAB3-KSCHL = 'ZB00' OR
ITAB3-KSCHL = 'ZBCH' OR ITAB3-KSCHL = 'ZBED' OR
ITAB3-KSCHL = 'ZC00' OR
ITAB3-KSCHL = 'ZCEX' OR ITAB3-KSCHL = 'ZCIF' OR
ITAB3-KSCHL = 'ZHC1' OR ITAB3-KSCHL = 'ZHC2' OR
ITAB3-KSCHL = 'ZHCT' OR
ITAB3-KSCHL = 'ZHCV' OR ITAB3-KSCHL = 'ZJOC' OR
ITAB3-KSCHL = 'ZOTH' OR ITAB3-KSCHL = 'ZOTP' OR
ITAB3-KSCHL = 'ZOTT' OR
ITAB3-KSCHL = 'ZPK1' OR ITAB3-KSCHL = 'ZPK2' OR
ITAB3-KSCHL = 'ZPK3' OR ITAB3-KSCHL = 'ZPK4' OR
ITAB3-KSCHL = 'ZRPO' OR
ITAB3-KSCHL = 'ZSE1' OR ITAB3-KSCHL = 'ZSED' OR
ITAB3-KSCHL = 'ZSFR' OR ITAB3-KSCHL = 'ZSTX' OR
ITAB3-KSCHL = 'ZTPI' OR
ITAB3-KSCHL = 'ZTPV' OR ITAB3-KSCHL = 'ZTRD' OR
ITAB3-KSCHL = 'ZWCT'.
ITAB3-KWERT2 = ITAB1-KWERT.
modify ITAB3 transporting KWERT2
where KNUMV = ITAB-KNUMV AND EBELP = ITAB-EBELP .
CLEAR: ITAB1-KWERT.
ENDIF.
endloop.
ITAB3-TOTAL = ITAB3-NETWR + ITAB3-KWERT2 + ITAB3-KWERT + ITAB3-KBETR.
append itab3.
endif.
clear: itab3-kbetr,
itab3-kwert,
itab1-kbetr,
itab1-kwert.
.
.
endloop.
ENDFORM.
FORM CALL_ALV_GRID.
PERFORM FIELDCAT_INIT USING GT_FIELDCAT[].
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = G_repid
I_CALLBACK_USER_COMMAND = G_USER_COMMAND
I_GRID_TITLE = G_GRID_TITLE
IT_FIELDCAT = GT_FIELDCAT[]
I_DEFAULT = 'X'
I_SAVE = G_SAVE
IS_VARIANT = Gs_VARIANT
TABLES
T_OUTTAB = ITAB3.
ENDFORM.
FORM FIELDCAT_INIT
USING RT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-TABNAME = G_TABNAME.
LS_FIELDCAT-seltext_l = 'Vendor no'.
LS_FIELDCAT-FIELDNAME = 'LIFNR'.
LS_FIELDCAT-REF_FIELDNAME = 'LIFNR'.
LS_FIELDCAT-REF_TABNAME = 'LFA1'.
APPEND LS_FIELDCAT TO RT_FIELDCAT.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-TABNAME = G_TABNAME.
LS_FIELDCAT-seltext_l = 'Vendor Name'.
LS_FIELDCAT-FIELDNAME = 'NAME1'.
LS_FIELDCAT-REF_FIELDNAME = 'NAME1'.
LS_FIELDCAT-REF_TABNAME = 'LFA1'.
APPEND LS_FIELDCAT TO RT_FIELDCAT.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-TABNAME = G_TABNAME.
LS_FIELDCAT-seltext_l = 'Purchase Document No'.
LS_FIELDCAT-FIELDNAME = 'EBELN'.
LS_FIELDCAT-REF_FIELDNAME = 'EBELN'.
LS_FIELDCAT-REF_TABNAME = 'EKKO'.
APPEND LS_FIELDCAT TO RT_FIELDCAT.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-TABNAME = G_TABNAME.
LS_FIELDCAT-SELTEXT_L = 'Item No'.
LS_FIELDCAT-FIELDNAME = 'EBELP'.
LS_FIELDCAT-REF_FIELDNAME = 'EBELP'.
LS_FIELDCAT-REF_TABNAME = 'EKPO'.
APPEND LS_FIELDCAT TO RT_FIELDCAT.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-TABNAME = G_TABNAME.
LS_FIELDCAT-FIELDNAME = 'NETPR'.
LS_FIELDCAT-REF_FIELDNAME = 'NETPR'.
LS_FIELDCAT-REF_TABNAME = 'EKPO'.
APPEND LS_FIELDCAT TO RT_FIELDCAT.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-TABNAME = G_TABNAME.
LS_FIELDCAT-FIELDNAME = 'NETWR'.
LS_FIELDCAT-REF_FIELDNAME = 'NETWR'.
LS_FIELDCAT-REF_TABNAME = 'EKPO'.
APPEND LS_FIELDCAT TO RT_FIELDCAT.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-TABNAME = G_TABNAME.
LS_FIELDCAT-SELTEXT_L = 'NAVM/NAVS'.
LS_FIELDCAT-FIELDNAME = 'KBETR'.
LS_FIELDCAT-REF_FIELDNAME = 'KBETR'.
LS_FIELDCAT-REF_TABNAME = 'KONV'.
APPEND LS_FIELDCAT TO RT_FIELDCAT.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-TABNAME = G_TABNAME.
LS_FIELDCAT-SELTEXT_L = 'Frieght'.
LS_FIELDCAT-FIELDNAME = 'KWERT'.
LS_FIELDCAT-REF_FIELDNAME = 'KWERT'.
LS_FIELDCAT-REF_TABNAME = 'KONV'.
APPEND LS_FIELDCAT TO RT_FIELDCAT.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-TABNAME = G_TABNAME.
LS_FIELDCAT-SELTEXT_L = 'Other Condition'.
LS_FIELDCAT-FIELDNAME = 'KWERT2'.
LS_FIELDCAT-REF_FIELDNAME = 'KWERT2'.
LS_FIELDCAT-REF_TABNAME = 'ITAB3'.
APPEND LS_FIELDCAT TO RT_FIELDCAT.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-TABNAME = G_TABNAME.
LS_FIELDCAT-SELTEXT_L = 'Total'.
LS_FIELDCAT-FIELDNAME = 'TOTAL'.
LS_FIELDCAT-REF_FIELDNAME = 'TOTAL'.
LS_FIELDCAT-REF_TABNAME = 'ITAB3'.
APPEND LS_FIELDCAT TO RT_FIELDCAT.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-TABNAME = G_TABNAME.
LS_FIELDCAT-SELTEXT_L = 'WBS-ELEMENT '.
LS_FIELDCAT-FIELDNAME = 'PS_PSP_PSPNR'.
LS_FIELDCAT-REF_FIELDNAME = 'PS_PSP_PSPNR'.
LS_FIELDCAT-REF_TABNAME = 'ITAB3'.
APPEND LS_FIELDCAT TO RT_FIELDCAT.
ENDFORM.reward all helpfull answers
Regards
Pavan
| User | Count |
|---|---|
| 3 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |