Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

classic report

Former Member
0 Likes
1,321

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

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
923

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.                    " DISPLAY

reward 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

3 REPLIES 3
Read only

Former Member
0 Likes
923

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

Read only

Former Member
0 Likes
923

<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>

Read only

Former Member
0 Likes
924

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.                    " DISPLAY

reward points if it is usefull .....

Girish