0% found this document useful (0 votes)
50 views11 pages

Sales Order Report Development

The document describes a sales order report developed in SAP. It provides details on input selection, output levels, and code to display order details in different levels. The first level output shows basic order information. Double clicking an order takes to the second level showing item details. A button allows viewing the order in transaction VA03 and returning to the first level.

Uploaded by

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

Sales Order Report Development

The document describes a sales order report developed in SAP. It provides details on input selection, output levels, and code to display order details in different levels. The first level output shows basic order information. Double clicking an order takes to the second level showing item details. A button allows viewing the order in transaction VA03 and returning to the first level.

Uploaded by

junaid
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 11

Sales Order Report

Developed by sweekar.m

Select Option: Order No., Order Date, Customer ID

Input Selection screen for given requirement find below

Given values : 2 to 15

after clicking execute button we get first level output find output below

First Level output:

- Order No.

- Order Date

- Customer ID

- Customer Name

- Total order Value


When you double on any of the order no its moves to second level output find output below

On click of Order No: Second level:

- Order No.
- Item No.
- Material Code
- Material Description
- Quantity
- Order Unit
- Item Value

I have choose order no :000000012 by double clicking it takes to second level output find output
below

In the first level Output provide tool bar to show order Details:

- When button -Display VA03 tool to Display order Detail


- When come back from VA03 again first level display to be shown
-
Clicking on button VA03 which was highlighted below screen shot takes to the transaction
code VA03.

After going VA03 TCODE if u click on back button its takes level one output.
SOURCE CODE FOR ABOVE REQUIREMENT:

*&---------------------------------------------------------------------*
*& Report Z_SWEEKAR_SALESORDER_REPORT
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT Z_SWEEKAR_SALESORDER_REPORT.

TABLES: vbak, vbap,kna1.

DATA: ls_fieldcat TYPE slis_fieldcat_alv,


lt_fieldcat TYPE slis_t_fieldcat_alv.

DATA: ls_fieldcat1 TYPE slis_fieldcat_alv,


lt_fieldcat1 TYPE slis_t_fieldcat_alv.

DATA: lt_events TYPE slis_t_event,


ls_event TYPE slis_alv_event.

* declartion for layout


DATA: lv_layout TYPE slis_layout_alv.

* declaration for variant(type of display we want)


DATA: lv_variant TYPE disvariant,
lv_variant1 TYPE disvariant,
lv_save(1) TYPE c.

DATA: lv_vbeln TYPE vbak-vbeln."RS_SELFIELD-VALUE.

SELECT-OPTIONS: s_vbeln FOR vbak-vbeln, "order No.


s_date FOR vbak-erdat, "order date
s_kunnr FOR kna1-kunnr. "customer id

START-OF-SELECTION.

SELECT vbak~vbeln, vbak~erdat, vbak~netwr, kna1~kunnr, kna1~name1


INTO TABLE @DATA(lt_vbak)
FROM vbak AS vbak
INNER JOIN kna1 AS kna1
ON kna1~kunnr = vbak~kunnr
WHERE vbak~vbeln IN @s_vbeln
AND vbak~erdat IN @s_date
AND vbak~kunnr IN @s_kunnr.
IF sy-subrc IS INITIAL.
* select vbeln, posnr, matnr
ENDIF.
IF NOT lt_vbak[] IS INITIAL.
PERFORM fieldcatlog.
PERFORM call_event.
PERFORM populate_event.
PERFORM display_data.
ENDIF.

*&---------------------------------------------------------------------*
*& Form FIELDCATLOG
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM fieldcatlog .

CLEAR ls_fieldcat.
ls_fieldcat-col_pos = '1'.
ls_fieldcat-fieldname = 'VBELN'.
ls_fieldcat-tabname = 'LT_VBAK'.
ls_fieldcat-seltext_l = 'Order No.'.
APPEND ls_fieldcat TO lt_fieldcat .

CLEAR ls_fieldcat.
ls_fieldcat-col_pos = '2'.
ls_fieldcat-fieldname = 'ERDAT'.
ls_fieldcat-tabname = 'LT_VBAK'.
ls_fieldcat-seltext_l = 'Order Date'.
APPEND ls_fieldcat TO lt_fieldcat .

CLEAR ls_fieldcat.
ls_fieldcat-col_pos = '3'.
ls_fieldcat-fieldname = 'KUNNR'.
ls_fieldcat-tabname = 'LT_VBAK'.
ls_fieldcat-seltext_l = 'Customer ID'.
APPEND ls_fieldcat TO lt_fieldcat .

CLEAR ls_fieldcat.
ls_fieldcat-col_pos = '4'.
ls_fieldcat-fieldname = 'NAME1'.
ls_fieldcat-tabname = 'LT_VBAK'.
ls_fieldcat-seltext_l = 'Customer Name'.
APPEND ls_fieldcat TO lt_fieldcat .

CLEAR ls_fieldcat.
ls_fieldcat-col_pos = '5'.
ls_fieldcat-fieldname = 'NETWR'.
ls_fieldcat-tabname = 'LT_VBAK'.
ls_fieldcat-seltext_l = 'Total order Value'.
APPEND ls_fieldcat TO lt_fieldcat .
ENDFORM.
*&---------------------------------------------------------------------*
*& Form DISPLAY_DATA
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM display_data .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
* I_INTERFACE_CHECK =''
* I_BYPASSING_BUFFER = ' '
* I_BUFFER_ACTIVE =''
i_callback_program = sy-repid
I_CALLBACK_PF_STATUS_SET = 'SET_PF_STATUS'
i_callback_user_command = 'USER_COMMAND'
* I_CALLBACK_TOP_OF_PAGE = ' '
* I_CALLBACK_HTML_TOP_OF_PAGE =''
* I_CALLBACK_HTML_END_OF_LIST =''
* I_STRUCTURE_NAME =
* I_BACKGROUND_ID =''
* I_GRID_TITLE =
* I_GRID_SETTINGS =
* IS_LAYOUT =
it_fieldcat = lt_fieldcat[]
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS =
* IT_SORT =
* IT_FILTER =
* IS_SEL_HIDE =
* I_DEFAULT = 'X'
i_save = 'A'
* IS_VARIANT =
it_events = lt_events
* IT_EVENT_EXIT =
* IS_PRINT =
* IS_REPREP_ID =
* I_SCREEN_START_COLUMN = 0
* I_SCREEN_START_LINE = 0
* I_SCREEN_END_COLUMN = 0
* I_SCREEN_END_LINE =0
* I_HTML_HEIGHT_TOP =0
* I_HTML_HEIGHT_END =0
* IT_ALV_GRAPHICS =
* IT_HYPERLINK =
* IT_ADD_FIELDCAT =
* IT_EXCEPT_QINFO =
* IR_SALV_FULLSCREEN_ADAPTER =
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_BY_USER =
TABLES
t_outtab = lt_vbak
EXCEPTIONS
program_error =1
OTHERS = 2.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.

ENDFORM.
*&---------------------------------------------------------------------*
*& Form CALL_EVENT
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM call_event .
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = lt_events
EXCEPTIONS
list_type_wrong = 1
OTHERS = 2.

IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form POPULATE_EVENT
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM populate_event .

READ TABLE lt_events INTO ls_event WITH KEY name = 'USER_COMMAND'.


IF sy-subrc EQ 0.
ls_event-form = 'USER_COMMAND'.
MODIFY lt_events FROM ls_event TRANSPORTING form
WHERE name = ls_event-name.
ENDIF.

ENDFORM.
*&--------------------------------------------------------------------*
*& Form USER_COMMAND
*&--------------------------------------------------------------------*
* text
*---------------------------------------------------------------------*
* -->R_UCOMM text
* -->, text
* -->RS_SLEFIELDtext
*---------------------------------------------------------------------*
FORM user_command USING r_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.
CLEAR: lv_vbeln.

lv_vbeln = rs_selfield-value.

CASE r_ucomm.
WHEN '&IC1'.
IF rs_selfield-fieldname = 'VBELN'.
* READ TABLE lt_vbak INTO DATA(ls_vbak) INDEX rs_selfield-tabindex.

PERFORM fieldcatlog_list2.
PERFORM call_event_list2.
* PERFORM get_data_list2.
PERFORM display_data_list2.
clear: rs_selfield.
ENDIF.

WHEN 'VA03'.
CALL TRANSACTION 'VA03'.

ENDCASE.
clear: rs_selfield.

ENDFORM.
*&---------------------------------------------------------------------*
*& Form FIELDCATLOG_LIST2
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM fieldcatlog_list2 .
refresh: lt_fieldcat1.
CLEAR ls_fieldcat1.
ls_fieldcat1-col_pos = '1'.
ls_fieldcat1-fieldname = 'VBELN'.
ls_fieldcat1-tabname = 'LT_VBAP'.
ls_fieldcat1-seltext_l = 'Order No.'.
APPEND ls_fieldcat1 TO lt_fieldcat1 .

CLEAR ls_fieldcat1.
ls_fieldcat1-col_pos = '2'.
ls_fieldcat1-fieldname = 'POSNR'.
ls_fieldcat1-tabname = 'LT_VBAP'.
ls_fieldcat1-seltext_l = 'Item No.'.
APPEND ls_fieldcat1 TO lt_fieldcat1 .

CLEAR ls_fieldcat1.
ls_fieldcat1-col_pos = '3'.
ls_fieldcat1-fieldname = 'MATNR'.
ls_fieldcat1-tabname = 'LT_VBAP'.
ls_fieldcat1-seltext_l = 'Material code'.
APPEND ls_fieldcat1 TO lt_fieldcat1 .

CLEAR ls_fieldcat1.
ls_fieldcat1-col_pos = '4'.
ls_fieldcat1-fieldname = 'MAKTX'.
ls_fieldcat1-tabname = 'LT_VBAP'.
ls_fieldcat1-seltext_l = 'Material Description'.
APPEND ls_fieldcat1 TO lt_fieldcat1 .
*
CLEAR ls_fieldcat1.
ls_fieldcat1-col_pos = '5'.
ls_fieldcat1-fieldname = 'KWMENG'.
ls_fieldcat1-tabname = 'LT_VBAP'.
ls_fieldcat1-seltext_l = 'Quantity'.
APPEND ls_fieldcat1 TO lt_fieldcat1 .

CLEAR ls_fieldcat1.
ls_fieldcat1-col_pos = '6'.
ls_fieldcat1-fieldname = 'VRKME'.
ls_fieldcat1-tabname = 'LT_VBAP'.
ls_fieldcat1-seltext_l = 'Order Unit'.
APPEND ls_fieldcat1 TO lt_fieldcat1 .

CLEAR ls_fieldcat1.
ls_fieldcat1-col_pos = '7'.
ls_fieldcat1-fieldname = 'NETWR'.
ls_fieldcat1-tabname = 'LT_VBAP'.
ls_fieldcat1-seltext_l = 'Item Value'.
APPEND ls_fieldcat1 TO lt_fieldcat1 .
ENDFORM.
*&---------------------------------------------------------------------*
*& Form CALL_EVENT_LIST2
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM call_event_list2 .

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'


EXPORTING
i_list_type = 0
IMPORTING
et_events = lt_events
EXCEPTIONS
list_type_wrong = 1
OTHERS = 2.

IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

ENDFORM.
*&---------------------------------------------------------------------*
*& Form GET_DATA_LIST2
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM get_data_list2 .
* select vbeln, posnr, matnr from vbap into table @data(lt_vbap).
* where vbeln =
ENDFORM.
*&---------------------------------------------------------------------*
*& Form DISPLAY_DATA_LIST2
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM display_data_list2 .

SELECT vbap~vbeln, vbap~posnr, vbap~matnr, vbap~netwr, vbap~kwmeng, vbap~vrkme,


makt~maktx
FROM vbap as vbap
INNER JOIN makt as makt on makt~matnr = vbap~matnr
INTO TABLE @DATA(lt_vbap)
WHERE vbap~vbeln = @lv_vbeln "RS_SELFIELD-VALUE.
and makt~spras = @sy-langu.

CLEAR: lv_vbeln.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'


EXPORTING
* I_INTERFACE_CHECK = ' '
* I_BYPASSING_BUFFER = ' '
* I_BUFFER_ACTIVE = ' '
i_callback_program = sy-repid
* I_CALLBACK_PF_STATUS_SET = ''
* I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
* I_CALLBACK_TOP_OF_PAGE =''
* I_CALLBACK_HTML_TOP_OF_PAGE =''
* I_CALLBACK_HTML_END_OF_LIST =''
* I_STRUCTURE_NAME =
* I_BACKGROUND_ID = ' '
* I_GRID_TITLE =
* I_GRID_SETTINGS =
* IS_LAYOUT =
it_fieldcat = lt_fieldcat1[]
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS =
* IT_SORT =
* IT_FILTER =
* IS_SEL_HIDE =
* I_DEFAULT = 'X'
i_save = 'A'
* IS_VARIANT =
it_events = lt_events
* IT_EVENT_EXIT =
* IS_PRINT =
* IS_REPREP_ID =
* I_SCREEN_START_COLUMN =0
* I_SCREEN_START_LINE =0
* I_SCREEN_END_COLUMN =0
* I_SCREEN_END_LINE = 0
* I_HTML_HEIGHT_TOP = 0
* I_HTML_HEIGHT_END = 0
* IT_ALV_GRAPHICS =
* IT_HYPERLINK =
* IT_ADD_FIELDCAT =
* IT_EXCEPT_QINFO =
* IR_SALV_FULLSCREEN_ADAPTER =
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_BY_USER =
TABLES
t_outtab = lt_vbap
EXCEPTIONS
program_error = 1
OTHERS = 2.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form sub_pf_status
*&---------------------------------------------------------------------*
* Sub-Routine to Set the PF status
*----------------------------------------------------------------------*
FORM set_pf_status USING rt_extab TYPE slis_t_extab..
SET PF-STATUS 'ZSTAT'.
ENDFORM. "sub_pf_status

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy