0% found this document useful (0 votes)
76 views7 pages

Interactive Sales Order Report Design

This report displays sales order details between two user-selected dates. The main report shows basic fields for each sales order like document number, user, date, and customer. When a document number is double clicked, additional item details are displayed like material number, description, batch, and type by querying related tables. The code sample shows how to build the report structure, select and loop through order and item data, and handle user interactions.

Uploaded by

Pradeep Reddy
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
76 views7 pages

Interactive Sales Order Report Design

This report displays sales order details between two user-selected dates. The main report shows basic fields for each sales order like document number, user, date, and customer. When a document number is double clicked, additional item details are displayed like material number, description, batch, and type by querying related tables. The code sample shows how to build the report structure, select and loop through order and item data, and handle user interactions.

Uploaded by

Pradeep Reddy
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd

Design a Report that would take display all the Sales Order between 2 dates.

When
the user double clicks on a sales order the report would then display additional
details on that Sales Order.

<b>Description:</b>

1)Use Select Options for the range of dates (VBAK-ERDAT).

2)Display the fields

<b>

Document No.

Creation User Name

Creation Date

Customer Name</b>

for the Report from the Sales Document Header (VBAK). Customer name can be found in
table (KNA1).

<b>WHEN DCUMENT NO. IS DOUBLE CLICKED DISPLAY THE FOLLOWING FIELDS :

Material No

Material Description.

Batch Number.

Item type</b>

from the Sales Document Item (VBAP). Material Description can be found in table
(MAKT).

The program should handle exceptions and display proper error message where
required.

<u><b>SAMPLE CODE</b></u>

REPORT sales_report NO STANDARD PAGE HEADING .

TABLES : vbak .

<u><b>STRUCTURE DECLARATION</b></u>

TYPES : BEGIN OF st_vbak ,

vbeln TYPE vbak-vbeln ,

ernam TYPE vbak-ernam ,

erdat TYPE vbak-erdat ,

name1 TYPE kna1-name1 ,

END OF st_vbak .
TYPES : BEGIN OF st_vbap ,

matnr TYPE vbap-matnr ,

maktx TYPE makt-maktx ,

charg TYPE vbap-charg ,

posar TYPE vbap-posar ,

END OF st_vbap .

<b>INTERNAL TABLE & WORK AREA</b>

DATA : it_vbak TYPE TABLE OF st_vbak ,

wa_vbak TYPE st_vbak ,

it_vbap TYPE TABLE OF st_vbap ,

wa_vbap TYPE st_vbap .

<b>

TOP-OF-PAGE .</b>

WRITE :4 sy-vline .

WRITE AT 5(125) sy-uline.

WRITE :130 sy-vline .

WRITE :/4 sy-vline ,

10 DOCUMENT NO ,

39 sy-vline ,

40 USER NAME

69 sy-vline ,

70 DATE

89 sy-vline ,

90 CUSTOMER NAME,

130 sy-vline.

WRITE :/130 sy-vline .

WRITE AT 5(125) sy-uline.

WRITE :4 sy-vline ,130 sy-vline .

<b>TOP-OF-PAGE DURING LINE-SELECTION .</b>

WRITE :4 sy-vline .
WRITE AT 5(125) sy-uline.

WRITE :130 sy-vline .

WRITE :/4 sy-vline ,

10 MATERIAL NO.,

39 sy-vline ,

40 MATERIAL DESCRIPTION

69 sy-vline ,

70 BATCH NUMBER

89 sy-vline ,

90 ITEM TYPE

130 sy-vline.

WRITE :/130 sy-vline .

WRITE AT 5(125) sy-uline.

WRITE :4 sy-vline ,

130 sy-vline .

SELECT-OPTIONS put_date FOR vbak-erdat .

AT LINE-SELECTION .

PERFORM select_and_write_vbap .

START-OF-SELECTION.

PERFORM sales_document .

END-OF-SELECTION.

FORM select_and_write_vbap .

SELECT

vbap~matnr

makt~maktx

vbap~charg

vbap~posar

FROM ( vbap INNER JOIN makt ON vbapmatnr = maktmatnr )

INTO CORRESPONDING FIELDS OF TABLE IT_VBAP


WHERE vbap~vbeln = wa_vbak-vbeln AND spras = 'EN' .

IF sy-subrc EQ 0 .

LOOP AT it_vbap INTO wa_vbap .

WRITE :/4 sy-vline ,

10 wa_vbap-matnr ,

39 sy-vline ,

40 wa_vbap-maktx ,

69 sy-vline ,

70 wa_vbap-charg ,

89 sy-vline ,

90 wa_vbap-posar ,

130 sy-vline .

ENDLOOP.

WRITE :/4 sy-vline.

WRITE AT 5(125) sy-uline.

WRITE 130 sy-vline.

ELSE .

MESSAGE s000(zginni) .

ENDIF .

ENDFORM . "select_vbap

FORM sales_document .

IF put_date-low IS INITIAL AND put_date-high IS NOT INITIAL .

SELECT

vbak~vbeln

vbak~ernam

vbak~erdat

kna1~name1

FROM ( kna1 INNER JOIN vbak ON vbakkunnr = kna1kunnr ) INTO

CORRESPONDING FIELDS OF TABLE IT_VBAK

WHERE vbak~erdat <= put_date-high.


IF sy-subrc EQ 0 .

PERFORM looping_wa_vbak .

ELSE .

MESSAGE s000(zginni) .

ENDIF .

ENDIF .

IF put_date-low IS NOT INITIAL AND put_date-high IS INITIAL .

SELECT vbeln

vbak~ernam

vbak~erdat

kna1~name1

FROM ( kna1 INNER JOIN vbak ON vbakkunnr = kna1kunnr ) INTO

CORRESPONDING FIELDS OF TABLE IT_VBAK

WHERE vbak~erdat EQ put_date-low .

IF sy-subrc EQ 0 .

PERFORM looping_wa_vbak .

ELSE .

MESSAGE s000(zginni) .

ENDIF .

ENDIF .

IF put_date-high IS INITIAL AND put_date-low IS INITIAL .

MESSAGE s000(zginni) .

ELSE .

SELECT

vbak~vbeln

vbak~ernam

vbak~erdat

kna1~name1

FROM ( kna1 INNER JOIN vbak ON vbakkunnr = kna1kunnr ) INTO


CORRESPONDING FIELDS OF TABLE IT_VBAK

WHERE vbak~erdat BETWEEN put_date-low AND put_date-high.

IF sy-subrc EQ 0 .

PERFORM looping_wa_vbak .

ELSE .

MESSAGE s000(zginni) .

ENDIF .

ENDIF .

ENDFORM .

FORM looping_wa_vbak .

LOOP AT it_vbak INTO wa_vbak .

WRITE :/4 sy-vline ,

10 wa_vbak-vbeln .

<b> HIDE wa_vbak-vbeln .

WRITE: 39 sy-vline ,

40 wa_vbak-ernam ,

69 sy-vline ,

70 wa_vbak-erdat ,

89 sy-vline ,

90 wa_vbak-name1 ,

130 sy-vline .</b>

ENDLOOP.

WRITE :/4 sy-vline.

WRITE AT 5(125) sy-uline .

WRITE 130 sy-vline.

ENDFORM.

<b>

USING AT LINE SELECTION EVENT AND THE HIDE STAEMENT THE REPORT CAN BE MAD
INTERACTIVE</b>

hope this assignment helps u


reward points if useful

Ginni

0 likes
Share & Follow

You might also like