Você está na página 1de 7

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

Você também pode gostar