2007 Jul 11 2:55 PM
hai kumar...
I want classic report with out using joins..
TABLES : VBAK,
VBAP,
KNA1.
INPUT FIELDS : Sales Document (RANGE)
Document Date (Date Received/Sent).(RANGE)
Sold-to party (PARAMETERS)
O/P FIELDS :
Sales Document ....... VBAK-VBELN
Document Date (Date Received/Sent).....VBAK-AUDAT
CUSTMER NUMBER(Sold-to party)................VBAK-KUNNR
Net Value of the Sales Order in Document Currency.....VBAK-NETWR
Sales Organization......................................................VBAK-KORG
Name of Person who Created the Object..................VBAK-ERNAM
Sales Document Item ...............VBAP-POSNR
Short text for sales order item..........VBAP-ARKTX
Material Number.............................VBAP-MATNR
Cumulative order quantity in sales units............VBAP-KWMENG
Requested delivery date.................VBAP-CMKUA
CUSTMER NAME..................KNA1-NAME1
CUSTMER CONTRY..........................KNA1-LAND1
2007 Jul 16 1:42 PM
Hello ...here is your program <b> which will give you O/P</b> .
report zSales Document_report.
TABLES: VBAK,
VBAP,
KNA1.
DATA: BEGIN OF itab_vbak OCCURS 0,
vbeln TYPE vbak-vbeln,
ernam TYPE vbak-ernam,
audat TYPE vbak-audat,
netwr TYPE vbak-netwr,
vkorg TYPE vbak-vkorg,
kunnr TYPE vbak-kunnr,
END OF itab_vbak.
DATA: BEGIN OF itab_vbap OCCURS 0,
vbeln TYPE vbap-vbeln,
posnr TYPE vbap-posnr,
matnr TYPE vbap-matnr,
arktx TYPE vbap-arktx,
kwmeng TYPE vbap-kwmeng,
cmkua TYPE vbap-cmkua,
END OF itab_vbap.
DATA: BEGIN OF itab_kna1 OCCURS 0,
kunnr TYPE kna1-kunnr,
land1 TYPE kna1-land1,
name1 TYPE kna1-name1,
END OF itab_kna1.
DATA: BEGIN OF IT_FINAL OCCURS 0,
vbeln TYPE vbak-vbeln,
ernam TYPE vbak-ernam,
audat TYPE vbak-audat,
netwr TYPE vbak-netwr,
vkorg TYPE vbak-vkorg,
kunnr TYPE vbak-kunnr,
posnr TYPE vbap-posnr,
matnr TYPE vbap-matnr,
arktx TYPE vbap-arktx,
kwmeng TYPE vbap-kwmeng,
cmkua TYPE vbap-cmkua,
land1 TYPE kna1-land1,
name1 TYPE kna1-name1,
END OF IT_FINAL.
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS:S_VBELN FOR VBAK-VBELN,
S_AUDAT FOR VBAK-AUDAT,
P_KUNNR for VBAK-KUNNR.
*PARAMETERS: P_KUNNR LIKE VBAK-KUNNR.
SELECTION-SCREEN END OF BLOCK B1.
START-OF-SELECTION.
PERFORM DATA_FETCH.
PERFORM DISPLAY.
*&---------------------------------------------------------------------*
*& Form DATA_FETCH
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
form DATA_FETCH .
SELECT vbeln
ernam
audat
netwr
vkorg
kunnr FROM VBAK INTO CORRESPONDING FIELDS OF TABLE ITAB_VBAK
WHERE VBELN IN S_VBELN
AND AUDAT IN S_AUDAT
AND KUNNR in P_KUNNR.
IF SY-SUBRC EQ 0.
IF ITAB_VBAK[] IS NOT INITIAL.
SELECT VBELN
posnr
matnr
arktx
kwmeng
cmkua FROM VBAP INTO CORRESPONDING FIELDS OF TABLE ITAB_VBAP
FOR ALL ENTRIES IN ITAB_VBAK
WHERE VBELN = ITAB_VBAK-VBELN.
ENDIF.
ENDIF.
LOOP AT ITAB_VBAK.
IT_FINAL-vbeln = ITAB_VBAK-vbeln.
IT_FINAL-ernam = ITAB_VBAK-ernam.
IT_FINAL-audat = ITAB_VBAK-audat.
IT_FINAL-netwr = ITAB_VBAK-netwr.
IT_FINAL-vkorg = ITAB_VBAK-vkorg.
IT_FINAL-kunnr = ITAB_VBAK-kunnr.
SELECT KUNNR
NAME1
LAND1 FROM KNA1
INTO (ITAB_KNA1-kunnr, ITAB_KNA1-NAME1, ITAB_KNA1-LAND1 )
* FOR ALL ENTRIES IN ITAB_VBAK
WHERE KUNNR = ITAB_VBAK-KUNNR.
IT_FINAL-NAME1 = ITAB_KNA1-NAME1.
IT_FINAL-LAND1 = ITAB_KNA1-LAND1.
endselect .
READ TABLE ITAB_VBAP WITH KEY VBELN = IT_FINAL-VBELN.
if sy-subrc = 0 .
IT_FINAL-POSNR = ITAB_VBAP-POSNR.
IT_FINAL-MATNR = ITAB_VBAP-MATNR.
IT_FINAL-ARKTX = ITAB_VBAP-ARKTX.
IT_FINAL-KWMENG = ITAB_VBAP-KWMENG.
IT_FINAL-CMKUA = ITAB_VBAP-CMKUA.
endif.
append IT_FINAL .
ENDLOOP.
endform.
FORM DISPLAY .
loop at IT_FINAL .
write : /
IT_FINAL-vbeln ,
IT_FINAL-ernam ,
IT_FINAL-audat ,
IT_FINAL-netwr ,
IT_FINAL-vkorg ,
IT_FINAL-kunnr ,
IT_FINAL-posnr ,
IT_FINAL-matnr ,
IT_FINAL-arktx ,
IT_FINAL-kwmeng,
IT_FINAL-cmkua ,
IT_FINAL-land1 ,
IT_FINAL-name1 .
endloop .
ENDFORM. " DISPLAYreward points if it is usefull .....
Girish
hai kumar...
I want classic report with out using joins..
TABLES : VBAK,
VBAP,
KNA1.
INPUT FIELDS : Sales Document (RANGE)
Document Date (Date Received/Sent).(RANGE)
Sold-to party (PARAMETERS)
O/P FIELDS :
Sales Document ....... VBAK-VBELN
Document Date (Date Received/Sent).....VBAK-AUDAT
CUSTMER NUMBER(Sold-to party)................VBAK-KUNNR
Net Value of the Sales Order in Document Currency.....VBAK-NETWR
Sales Organization......................................................VBAK-KORG
Name of Person who Created the Object..................VBAK-ERNAM
Sales Document Item ...............VBAP-POSNR
Short text for sales order item..........VBAP-ARKTX
Material Number.............................VBAP-MATNR
Cumulative order quantity in sales units............VBAP-KWMENG
Requested delivery date.................VBAP-CMKUA
CUSTMER NAME..................KNA1-NAME1
CUSTMER CONTRY..........................KNA1-LAND1
2007 Jul 12 8:03 AM
Hi
See this sample report and change accordingly
REPORT ZTEJ_INTAB1 LINE-SIZE 103 LINE-COUNT 35(5) NO STANDARD PAGE
HEADING.
*TABLES DECLARATION
TABLES : KNA1, VBAK, VBAP.
*SELECT OPTIONS
SELECT-OPTIONS: CUST_NO FOR KNA1-KUNNR.
*INITIALIZATION
INITIALIZATION.
CUST_NO-LOW = '01'.
CUST_NO-HIGH = '5000'.
CUST_NO-SIGN = 'I'.
CUST_NO-OPTION = 'BT'.
APPEND CUST_NO.
*SELECTION SCREEN VALIDATION
AT SELECTION-SCREEN ON CUST_NO.
LOOP AT SCREEN.
IF CUST_NO-LOW < 1 OR CUST_NO-HIGH > 5000.
MESSAGE E001(ZTJ1).
ENDIF.
ENDLOOP.
*BASIC LIST SELECTION
START-OF-SELECTION.
SELECT KUNNR NAME1 ORT01 LAND1 INTO
(KNA1-KUNNR, KNA1-NAME1,KNA1-ORT01,KNA1-LAND1)
FROM KNA1
WHERE KUNNR IN CUST_NO.
WRITE:/1 SY-VLINE,
KNA1-KUNNR UNDER 'CUSTOMER NO.' HOTSPOT ON,
16 SY-VLINE,
KNA1-NAME1 UNDER 'NAME',
61 SY-VLINE,
KNA1-ORT01 UNDER 'CITY',
86 SY-VLINE,
KNA1-LAND1 UNDER 'COUNTRY',
103 SY-VLINE.
HIDE: KNA1-KUNNR.
ENDSELECT.
ULINE.
*SECONDARY LIST ACCESS
AT user-command.
IF SY-UCOMM = 'IONE'.
PERFORM SALES_ORD.
ENDIF.
IF SY-UCOMM = 'ITWO'.
PERFORM ITEM_DET.
ENDIF.
*TOP OF PAGE
TOP-OF-PAGE.
FORMAT COLOR 1.
WRITE : 'CUSTOMER DETAILS'.
FORMAT COLOR 1 OFF.
ULINE.
FORMAT COLOR 3.
WRITE : 1 SY-VLINE,
3 'CUSTOMER NO.',
16 SY-VLINE,
18 'NAME',
61 SY-VLINE,
63 'CITY',
86 SY-VLINE,
88 'COUNTRY',
103 SY-VLINE.
ULINE.
FORMAT COLOR 3 OFF.
*TOP OF PAGE FOR SECONDARY LISTS
TOP-OF-PAGE DURING LINE-SELECTION.
*TOP OF PAGE FOR 1ST SECONDARY LIST
IF SY-UCOMM = 'IONE'.
ULINE.
FORMAT COLOR 1.
WRITE : 'SALES ORDER DETAILS'.
ULINE.
FORMAT COLOR 1 OFF.
FORMAT COLOR 3.
WRITE : 1 SY-VLINE,
3 'CUSTOMER NO.',
16 SY-VLINE,
18 'SALES ORDER NO.',
40 SY-VLINE,
42 'DATE',
60 SY-VLINE,
62 'CREATOR',
85 SY-VLINE,
87 'DOC DATE',
103 SY-VLINE.
ULINE.
ENDIF.
FORMAT COLOR 3 OFF.
*TOP OF PAGE FOR 2ND SECONDARY LIST
IF SY-UCOMM = 'ITWO'.
ULINE.
FORMAT COLOR 1.
WRITE : 'ITEM DETAILS'.
ULINE.
FORMAT COLOR 1 OFF.
FORMAT COLOR 3.
WRITE : 1 SY-VLINE,
3 'SALES ORDER NO.',
40 SY-VLINE,
42 'SALES ITEM NO.',
60 SY-VLINE,
62 'ORDER QUANTITY',
103 SY-VLINE.
ULINE.
ENDIF.
FORMAT COLOR 3 OFF.
*END OF PAGE
END-OF-PAGE.
ULINE.
WRITE :'USER :',SY-UNAME,/,'DATE :', SY-DATUM, 85 'END OF PAGE:',
SY-PAGNO.
SKIP.
&----
*& Form SALES_ORD
*&
*& FIRST SECONDARY LIST FORM
&----
FORM SALES_ORD .
SELECT KUNNR VBELN ERDAT ERNAM AUDAT INTO
(VBAK-KUNNR, VBAK-VBELN, VBAK-ERDAT, VBAK-ERNAM, VBAK-AUDAT)
FROM VBAK
WHERE KUNNR = KNA1-KUNNR.
WRITE:/1 SY-VLINE,
VBAK-KUNNR UNDER 'CUSTOMER NO.' HOTSPOT ON,
16 SY-VLINE,
VBAK-VBELN UNDER 'SALES ORDER NO.' HOTSPOT ON,
40 SY-VLINE,
VBAK-ERDAT UNDER 'DATE',
60 SY-VLINE,
VBAK-ERNAM UNDER 'CREATOR',
85 SY-VLINE,
VBAK-AUDAT UNDER 'DOC DATE',
103 SY-VLINE.
HIDE : VBAK-VBELN.
ENDSELECT.
ULINE.
ENDFORM. " SALES_ORD
&----
*& Form ITEM_DET
*&
*& SECOND SECONDARY LIST FORM
&----
FORM ITEM_DET .
SELECT VBELN POSNR KWMENG INTO
(VBAP-VBELN, VBAP-POSNR, VBAP-KWMENG)
FROM VBAP
WHERE VBELN = VBAK-VBELN.
WRITE : /1 SY-VLINE,
VBAP-VBELN UNDER 'SALES ORDER NO.',
40 SY-VLINE,
VBAP-POSNR UNDER 'SALES ITEM NO.',
60 SY-VLINE,
VBAP-KWMENG UNDER 'ORDER QUANTITY',
103 SY-VLINE.
ENDSELECT.
ULINE.
ENDFORM. " ITEM_DET
<b>Reward points for useful Answers</b>
Regards
Anji
2007 Jul 16 11:47 AM
<i>See the following code.
write the perform for display the output</i>.
TABLES: VBAK,
VBAP,
KNA1.
DATA: BEGIN OF itab_vbak OCCURS 0,
vbeln TYPE vbak-vbeln,
ernam TYPE vbak-ernam,
audat TYPE vbak-audat,
netwr TYPE vbak-netwr,
vkorg TYPE vbak-vkorg,
kunnr TYPE vbak-kunnr,
END OF itab_vbak.
DATA: BEGIN OF itab_vbap OCCURS 0,
vbeln TYPE vbap-vbeln,
posnr TYPE vbap-posnr,
matnr TYPE vbap-matnr,
arktx TYPE vbap-arktx,
kwmeng TYPE vbap-kwmeng,
cmkua TYPE vbap-cmkua,
END OF itab_vbap.
DATA: BEGIN OF itab_kna1 OCCURS 0,
kunnr TYPE kna1-kunnr,
land1 TYPE kna1-land1,
name1 TYPE kna1-name1,
END OF itab_kna1.
DATA: BEGIN OF IT_FINAL OCCURS 0,
vbeln TYPE vbak-vbeln,
ernam TYPE vbak-ernam,
audat TYPE vbak-audat,
netwr TYPE vbak-netwr,
vkorg TYPE vbak-vkorg,
kunnr TYPE vbak-kunnr,
posnr TYPE vbap-posnr,
matnr TYPE vbap-matnr,
arktx TYPE vbap-arktx,
kwmeng TYPE vbap-kwmeng,
cmkua TYPE vbap-cmkua,
land1 TYPE kna1-land1,
name1 TYPE kna1-name1,
END OF IT_FINAL.
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS:S_VBELN FOR VBAK-VBELN,
S_AUDAT FOR VBAK-AUDAT.
PARAMETERS: P_KUNNR LIKE VBAK-KUNNR.
SELECTION-SCREEN END OF BLOCK B1.
START-OF-SELECTION.
PERFORM DATA_FETCH.
PERFORM DISPLAY.
*&---------------------------------------------------------------------*
*& Form DATA_FETCH
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
form DATA_FETCH .
SELECT vbeln
ernam
audat
netwr
vkorg
kunnr FROM VBAK INTO CORRESPONDING FIELDS OF TABLE ITAB_VBAK
WHERE VBELN IN S_VBELN
AND AUDAT IN S_AUDAT
AND KUNNR = P_KUNNR.
IF SY-SUBRC EQ 0.
IF ITAB_VBAK[] IS NOT INITIAL.
SELECT VBELN
posnr
matnr
arktx
kwmeng
cmkua FROM VBAP INTO CORRESPONDING FIELDS OF TABLE ITAB_VBAP
FOR ALL ENTRIES IN ITAB_VBAK
WHERE VBELN = ITAB_VBAK-VBELN.
SELECT KUNNR
NAME1
LAND1 FROM KNA1 INTO CORRESPONDING FIELDS OF TABLE ITAB_KNA1
FOR ALL ENTRIES IN ITAB_VBAK
WHERE KUNNR = ITAB_VBAK-KUNNR.
ENDIF.
ENDIF.
MOVE-CORRESPONDING ITAB_VBAK TO IT_FINAL.
LOOP AT IT_FINAL.
LOOP AT ITAB_VBAP.
READ TABLE ITAB_VBAP WITH KEY VBELN = IT_FINAL-VBELN.
IT_FINAL-POSNR = ITAB_VBAP-POSNR.
IT_FINAL-MATNR = ITAB_VBAP-MATNR.
IT_FINAL-ARKTX = ITAB_VBAP-ARKTX.
IT_FINAL-KWMENG = ITAB_VBAP-KWMENG.
IT_FINAL-CMKUA = ITAB_VBAP-CMKUA.
EXIT.
ENDLOOP.
LOOP AT ITAB_KNA1.
READ TABLE ITAB_KNA1 WITH KEY KUNNR = IT_FINAL-KUNNR.
IT_FINAL-NAME1 = ITAB_KNA1-NAME1.
IT_FINAL-LAND1 = ITAB_KNA1-LAND1.
EXIT.
ENDLOOP.
MODIFY IT_FINAL .
ENDLOOP.
endform. " DATA_FETCH
<i><b>give point if useful
regards
debjani</b></i>
2007 Jul 16 1:42 PM
Hello ...here is your program <b> which will give you O/P</b> .
report zSales Document_report.
TABLES: VBAK,
VBAP,
KNA1.
DATA: BEGIN OF itab_vbak OCCURS 0,
vbeln TYPE vbak-vbeln,
ernam TYPE vbak-ernam,
audat TYPE vbak-audat,
netwr TYPE vbak-netwr,
vkorg TYPE vbak-vkorg,
kunnr TYPE vbak-kunnr,
END OF itab_vbak.
DATA: BEGIN OF itab_vbap OCCURS 0,
vbeln TYPE vbap-vbeln,
posnr TYPE vbap-posnr,
matnr TYPE vbap-matnr,
arktx TYPE vbap-arktx,
kwmeng TYPE vbap-kwmeng,
cmkua TYPE vbap-cmkua,
END OF itab_vbap.
DATA: BEGIN OF itab_kna1 OCCURS 0,
kunnr TYPE kna1-kunnr,
land1 TYPE kna1-land1,
name1 TYPE kna1-name1,
END OF itab_kna1.
DATA: BEGIN OF IT_FINAL OCCURS 0,
vbeln TYPE vbak-vbeln,
ernam TYPE vbak-ernam,
audat TYPE vbak-audat,
netwr TYPE vbak-netwr,
vkorg TYPE vbak-vkorg,
kunnr TYPE vbak-kunnr,
posnr TYPE vbap-posnr,
matnr TYPE vbap-matnr,
arktx TYPE vbap-arktx,
kwmeng TYPE vbap-kwmeng,
cmkua TYPE vbap-cmkua,
land1 TYPE kna1-land1,
name1 TYPE kna1-name1,
END OF IT_FINAL.
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS:S_VBELN FOR VBAK-VBELN,
S_AUDAT FOR VBAK-AUDAT,
P_KUNNR for VBAK-KUNNR.
*PARAMETERS: P_KUNNR LIKE VBAK-KUNNR.
SELECTION-SCREEN END OF BLOCK B1.
START-OF-SELECTION.
PERFORM DATA_FETCH.
PERFORM DISPLAY.
*&---------------------------------------------------------------------*
*& Form DATA_FETCH
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
form DATA_FETCH .
SELECT vbeln
ernam
audat
netwr
vkorg
kunnr FROM VBAK INTO CORRESPONDING FIELDS OF TABLE ITAB_VBAK
WHERE VBELN IN S_VBELN
AND AUDAT IN S_AUDAT
AND KUNNR in P_KUNNR.
IF SY-SUBRC EQ 0.
IF ITAB_VBAK[] IS NOT INITIAL.
SELECT VBELN
posnr
matnr
arktx
kwmeng
cmkua FROM VBAP INTO CORRESPONDING FIELDS OF TABLE ITAB_VBAP
FOR ALL ENTRIES IN ITAB_VBAK
WHERE VBELN = ITAB_VBAK-VBELN.
ENDIF.
ENDIF.
LOOP AT ITAB_VBAK.
IT_FINAL-vbeln = ITAB_VBAK-vbeln.
IT_FINAL-ernam = ITAB_VBAK-ernam.
IT_FINAL-audat = ITAB_VBAK-audat.
IT_FINAL-netwr = ITAB_VBAK-netwr.
IT_FINAL-vkorg = ITAB_VBAK-vkorg.
IT_FINAL-kunnr = ITAB_VBAK-kunnr.
SELECT KUNNR
NAME1
LAND1 FROM KNA1
INTO (ITAB_KNA1-kunnr, ITAB_KNA1-NAME1, ITAB_KNA1-LAND1 )
* FOR ALL ENTRIES IN ITAB_VBAK
WHERE KUNNR = ITAB_VBAK-KUNNR.
IT_FINAL-NAME1 = ITAB_KNA1-NAME1.
IT_FINAL-LAND1 = ITAB_KNA1-LAND1.
endselect .
READ TABLE ITAB_VBAP WITH KEY VBELN = IT_FINAL-VBELN.
if sy-subrc = 0 .
IT_FINAL-POSNR = ITAB_VBAP-POSNR.
IT_FINAL-MATNR = ITAB_VBAP-MATNR.
IT_FINAL-ARKTX = ITAB_VBAP-ARKTX.
IT_FINAL-KWMENG = ITAB_VBAP-KWMENG.
IT_FINAL-CMKUA = ITAB_VBAP-CMKUA.
endif.
append IT_FINAL .
ENDLOOP.
endform.
FORM DISPLAY .
loop at IT_FINAL .
write : /
IT_FINAL-vbeln ,
IT_FINAL-ernam ,
IT_FINAL-audat ,
IT_FINAL-netwr ,
IT_FINAL-vkorg ,
IT_FINAL-kunnr ,
IT_FINAL-posnr ,
IT_FINAL-matnr ,
IT_FINAL-arktx ,
IT_FINAL-kwmeng,
IT_FINAL-cmkua ,
IT_FINAL-land1 ,
IT_FINAL-name1 .
endloop .
ENDFORM. " DISPLAYreward points if it is usefull .....
Girish
| User | Count |
|---|---|
| 4 | |
| 2 | |
| 2 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |