‎2008 Apr 23 12:30 PM
How to Create an Interactive List based on the selection criteria specified for the customer number for displaying the customer information on the basic list, their corresponding order details on the secondary list. Plz specify the coding details.
plz mention the detail coding
Thanks,
Priya Ranjan
‎2008 Apr 23 12:32 PM
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 <> 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
************************************************************************
REPORT demo_list_at_pf.
START-OF-SELECTION.
WRITE 'Basic List, Press PF5, PF6, PF7, or PF8'.
AT pf5.
PERFORM out.
AT pf6.
PERFORM out.
AT pf7.
PERFORM out.
AT pf8.
PERFORM out.
FORM out.
WRITE: 'Secondary List by PF-Key Selection',
/ 'SY-LSIND =', sy-lsind,
/ 'SY-UCOMM =', sy-ucomm.
ENDFORM.
After executing the program, the system displays the basic list. The user can press the function keys F5 , F6 , F7 , and F8 to create secondary lists. If, for example, the 14th key the user presses is F6 , the output on the displayed secondary list looks as follows:
Secondary List by PF-Key Selection
SY-LSIND = 14
SY-UCOMM = PF06
Example for AT USER-COMMAND.
REPORT demo_list_at_user_command NO STANDARD PAGE HEADING.
START-OF-SELECTION.
WRITE: 'Basic List',
/ 'SY-LSIND:', sy-lsind.
TOP-OF-PAGE.
WRITE 'Top-of-Page'.
ULINE.
TOP-OF-PAGE DURING LINE-SELECTION.
CASE sy-pfkey.
WHEN 'TEST'.
WRITE 'Self-defined GUI for Function Codes'.
ULINE.
ENDCASE.
AT LINE-SELECTION.
SET PF-STATUS 'TEST' EXCLUDING 'PICK'.
PERFORM out.
sy-lsind = sy-lsind - 1.
AT USER-COMMAND.
CASE sy-ucomm.
WHEN 'FC1'.
PERFORM out.
WRITE / 'Button FUN 1 was pressed'.
WHEN 'FC2'.
PERFORM out.
WRITE / 'Button FUN 2 was pressed'.
WHEN 'FC3'.
PERFORM out.
WRITE / 'Button FUN 3 was pressed'.
WHEN 'FC4'.
PERFORM out.
WRITE / 'Button FUN 4 was pressed'.
WHEN 'FC5'.
PERFORM out.
WRITE / 'Button FUN 5 was pressed'.
ENDCASE.
sy-lsind = sy-lsind - 1.
FORM out.
WRITE: 'Secondary List',
/ 'SY-LSIND:', sy-lsind,
/ 'SY-PFKEY:', sy-pfkey.
ENDFORM.
‎2008 Apr 23 12:34 PM
hi
try this code
TABLES : kna1,vbak,vbap.
Types Delclaration
TYPES : BEGIN OF ty_kna1,
kunnr LIKE kna1-kunnr,
name1 LIKE kna1-name1,
land1 LIKE kna1-land1,
END OF ty_kna1.
TYPES : BEGIN OF ty_vbak,
vbeln LIKE vbak-vbeln,
erdat LIKE vbak-erdat,
ernam LIKE vbak-ernam,
END OF ty_vbak.
TYPES : BEGIN OF ty_vbap,
posnr LIKE vbap-posnr,
matnr LIKE vbap-matnr,
netwr LIKE vbap-netwr,
END OF ty_vbap.
internal table declaration
DATA : it_kna1 TYPE TABLE OF ty_kna1,
wa_kna1 TYPE ty_kna1.
DATA : it_vbak TYPE TABLE OF ty_vbak,
wa_vbak TYPE ty_vbak.
DATA : it_vbap TYPE TABLE OF ty_vbap,
wa_vbap TYPE ty_vbap.
*data : v_fld(20) type c.
SELECT-OPTIONS : s_kunnr FOR kna1-kunnr DEFAULT 1000 TO 1002.
*set pf-status 'BASIC'.
slecting data for basic list(kna1)
SELECT kunnr name1 land1
FROM kna1
INTO TABLE it_kna1
WHERE kunnr IN s_kunnr.
writng the list
LOOP AT it_kna1 INTO wa_kna1.
WRITE 😕 wa_kna1-kunnr hotspot on,
wa_kna1-name1 hotspot on,
wa_kna1-land1 hotspot on.
HIDE wa_kna1-kunnr.
*get cursor field wa_kna1-kunnr value v_fld.
ENDLOOP.
AT LINE-SELECTION.
IF sy-lsind = 1.
slecting data for 1st secondary list(vbak)
SELECT vbeln erdat ernam
FROM vbak
INTO TABLE it_vbak
WHERE kunnr = wa_kna1-kunnr.
writng the list
LOOP AT it_vbak INTO wa_vbak.
WRITE 😕 wa_vbak-vbeln hotspot on,
wa_vbak-erdat hotspot on,
wa_vbak-ernam hotspot on.
HIDE wa_vbak-vbeln.
ENDLOOP.
ENDIF.
IF sy-lsind = 2.
slecting data for 2nd secondary list(vbap)
SELECT posnr matnr netwr
FROM vbap
INTO TABLE it_vbap
WHERE vbeln = wa_vbak-vbeln.
writng the list
LOOP AT it_vbap INTO wa_vbap.
WRITE 😕 wa_vbap-posnr,
wa_vbap-matnr,
wa_vbap-netwr.
ENDLOOP.
ENDIF.
reward if helpful
prasanth
‎2008 Apr 23 12:35 PM
Us e this code
&----
*& Report Purpose: To Display Sales Order Header details and
*& Item Details on next list in ALV Grid Format. And
*& When Clicked on Sales DocumentNo call VA03 Transaction
*& When Clicked on MaterialNo call MM03 Transaction
*& When Clicked on Material Description call Web Browser
*& Author : Amith & Sachin.
*& Date : 26-10-2007
*& Request No :
&----
REPORT ZB3_AMIT_ALV_INTERACTIVE NO STANDARD PAGE HEADING line-SIZE 100
MESSAGE-ID zb3_msg.
*****************************************************************
*B E G I N O F T Y P E - P O O L S D E C L E R A T I O N *
*****************************************************************
TYPE-POOLS: SLIS. " Type-pools decleration for ALV.
*****************************************************************
*E N D O F T Y P E - P O O L S D E C L E R A T I O N *
*****************************************************************
CONSTANTS: c_MM03(4) type c value 'MM03', " Constant for MM03 Transaction
c_VA03(4) type c value 'VA03'. " Constant for VA03 Transaction
*****************************************************************
*B E G I N O F T Y P E S D E C L E R A T I O N *
*****************************************************************
TYPES: BEGIN OF TY_VBAK, "Decleration of Sales Order Header type
VBELN TYPE VBAK-VBELN, "Sales Document No
ERDAT TYPE VBAK-ERDAT, "Sales Document Created Date
ERNAM TYPE VBAK-ERNAM, "Sales Document Created By
NETWR TYPE VBAK-NETWR, "Sales Document Price
WAERK TYPE VBAK-WAERK, "Sales Document Currency
AUART TYPE VBAK-AUART, "Sales Document Type
END OF TY_VBAK. "End of Decleration of Sales Order Header
TYPES: BEGIN OF TY_VBAP, "Decleration of Sales Order Item type
VBELN TYPE VBAP-VBELN, "Sales Document No
POSNR TYPE VBAP-POSNR, "Sales Document Item No
MATNR TYPE VBAP-MATNR, "Sales Document Item Material No
NETWR TYPE VBAP-NETWR, "Sales Document Item Material Price
WAERK TYPE VBAP-WAERK, "Sales Document Item material Currency
END OF TY_VBAP. "End of Decleration of Sales Order Item
TYPES: BEGIN OF TY_MAKT, "Decleration of Material master type
MATNR TYPE MARA-MATNR, "Material Number
MAKTX TYPE MAKT-MAKTX, "Material Description
END OF TY_MAKT. "End of Decleration of Material master
TYPES: BEGIN OF TY_ITEM, "Decleration of Item Output Table type
VBELN TYPE VBAK-VBELN, "Sales Document No
POSNR TYPE VBAP-POSNR, "Sales Document Item No
MATNR TYPE VBAP-MATNR, "Sales Document Item Material No
NETWR TYPE VBAP-NETWR, "Sales Document Material Price
WAERK TYPE VBAP-WAERK, "Sales Document Item Currency
MAKTX TYPE MAKT-MAKTX, "Material Description
END OF TY_ITEM.
*****************************************************************
*E N D O F T Y P E S D E C L E R A T I O N *
*****************************************************************
**********************************************************************
B E G I N O F I N T E R N A L T A B L E S D E C L E R A T I O N
**********************************************************************
DATA: IT_VBAK TYPE STANDARD TABLE OF TY_VBAK, "INTERNAL TABLE TYPE TY_VBAK
IT_VBAP TYPE STANDARD TABLE OF TY_VBAP, "INTERNAL TABLE TYPE TY_VBAP
IT_MAKT TYPE STANDARD TABLE OF TY_MAKT, "INTERNAL TABLE TYPE TY_MAKT
IT_ITEM TYPE STANDARD TABLE OF TY_ITEM. "INTERNAL TABLE TYPE TY_ITEM
**********************************************************************
*E N D O F I N T E R N A L T A B L E S D E C L E R A T I O N *
**********************************************************************
****************************************************************************
B E G I N O F A L V I N T E R NA L T A B L E S D E C L E R A T I O N
****************************************************************************
DATA: IT_LAYOUT TYPE SLIS_LAYOUT_ALV, "Internal table for Field Layout
IT_FLDCAT TYPE SLIS_T_FIELDCAT_ALV, "Internal table for Field Catalogue
IT_EVENT TYPE SLIS_T_EVENT, "Internal table for Events
IT_COMMENT TYPE SLIS_T_LISTHEADER, "Internal table for Commentary Write
IT_FLDCAT1 TYPE SLIS_T_FIELDCAT_ALV,"Internal table for Item Field Catalogue
IT_COMMENT1 TYPE SLIS_T_LISTHEADER, "Internal table for Item Commentary Write
IT_EVENT1 TYPE SLIS_T_EVENT, "Internal table for Item Events
it_sort TYPE slis_t_sortinfo_alv.
****************************************************************************
*E N D O F A L V I N T E R NA L T A B L E S D E C L E R A T I O N *
****************************************************************************
****************************************************************************
B E G I N O F A L V W O R K A R E A D E C L E R A T I O N *
****************************************************************************
DATA: WA_FLDCAT TYPE SLIS_FIELDCAT_ALV, "Work area for Field Catalogue
WA_EVENT TYPE SLIS_ALV_EVENT, "Work area for Events
WA_COMMENT TYPE SLIS_LISTHEADER, "Work area for Commentary Write
WA_FLDCAT1 TYPE SLIS_FIELDCAT_ALV, "Work area for Item Field Catalogue
WA_COMMENT1 TYPE SLIS_LISTHEADER, "Work area for Item Commentary Write
WA_EVENT1 TYPE SLIS_ALV_EVENT, "Work area for Item Events
wa_sort TYPE slis_sortinfo_alv,
wa_layout type SLIS_LAYOUT_ALV,
wa_variant type DISVARIANT,
wa_variant1 type DISVARIANT,
RS_SELFLD TYPE SLIS_SELFIELD, "Work area for Selection Field
RS_SELFLD1 TYPE SLIS_SELFIELD. "Work area for Item Selection Field
****************************************************************************
E N D O F A L V W O R K A R E A D E C L E R A T I O N *
****************************************************************************
DATA: V_VBELN TYPE VBAK-VBELN, " Work area for select options
V_AUART TYPE VBAK-AUART, " Work area for select options
R_UCOMM TYPE SY-UCOMM, " Variable for User-Command
R_UCOMM1 TYPE SY-UCOMM, " Variable for Item User-Command
p_var1 type DISVARIANT.
**********************************************************************
*E N D O F I N T E R N A L T A B L E S D E C L E R A T I O N *
**********************************************************************
*****************************************************************
*B E G I N O F W O R K A R E A D E C L E R A T I O N *
*****************************************************************
DATA: WA_VBAK TYPE TY_VBAK, " Work Area for VBAK
WA_VBAP TYPE TY_VBAP, " Work Area for VBAP
WA_MAKT TYPE TY_MAKT, " Work Area for MAKT
WA_ITEM TYPE TY_ITEM. " Work Area for Item table
*****************************************************************
E N D O F W O R K A R E A D E C L E R A T I O N *
*****************************************************************
*****************************************************************
B E G I N O F S E L E C T I O N - S C R E E N *
*****************************************************************
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS: S_VBELN FOR V_VBELN, "Selection criteria for Sales Document No
S_AUART FOR V_AUART NO INTERVALS. "Selection criteria for Sales Document type
parameters: p_var type disvariant-variant.
SELECTION-SCREEN END OF BLOCK B1.
*****************************************************************
E N D O F S E L E C T I O N - S C R E E N *
*****************************************************************
*****************************************************************
Start of Initilization *
*****************************************************************
INITIALIZATION.
S_AUART-LOW = 'OR'. "Default Sales Document type
S_AUART-OPTION = 'EQ'.
S_AUART-SIGN = 'I'.
APPEND S_AUART.
*****************************************************************
End of Initilization *
*****************************************************************
*****************************************************************
Begin of At selection-screen event *
*****************************************************************
AT SELECTION-SCREEN.
PERFORM AT_SELECTION_SCREEN.
wa_variant1-report = sy-cprog.
wa_variant1-variant = p_var.
CALL FUNCTION 'REUSE_ALV_VARIANT_EXISTENCE'
EXPORTING
I_SAVE = ' '
CHANGING
CS_VARIANT = wa_variant1
EXCEPTIONS
WRONG_INPUT = 1
NOT_FOUND = 2
PROGRAM_ERROR = 3
OTHERS = 4
.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
AT SELECTION-SCREEN ON S_AUART. "Checking User Entry For Sales Document type
IF S_AUART[] IS INITIAL.
MESSAGE E001 WITH 'Please Enter Sales Document Type'(004).
ENDIF.
at selection-screen on value-request for p_var.
wa_variant-report = sy-cprog.
CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
EXPORTING
IS_VARIANT = wa_variant
I_TABNAME_HEADER =
I_TABNAME_ITEM =
IT_DEFAULT_FIELDCAT =
I_SAVE = 'A'
I_DISPLAY_VIA_GRID = ' '
IMPORTING
E_EXIT =
ES_VARIANT = p_var1
EXCEPTIONS
NOT_FOUND = 1
PROGRAM_ERROR = 2
OTHERS = 3
.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
p_var = p_var1-variant.
*****************************************************************
End of At selection-screen event *
*****************************************************************
*****************************************************************
B E G I N O F S T A R T - O F - S E L E C T I O N *
*****************************************************************
START-OF-SELECTION.
PERFORM GET_VBAK_DATA. " Gettin Data from VBAK Table
PERFORM BUILD_FIELDCAT. " Populating Field Catalogue
PERFORM GET_EVENTS. " Populating Events
*****************************************************************
E N D O F S T A R T - O F - S E L E C T I O N *
*****************************************************************
*****************************************************************
B E G I N O F E N D - O F - S E L E C T I O N *
*****************************************************************
END-OF-SELECTION.
PERFORM DISPLAY_BASIC. " Displaying Basic List
*****************************************************************
E N D O F E N D - O F - S E L E C T I O N *
*****************************************************************
&----
*& Form get_vbak_data
&----
*& Form for Selecting VBAK Data
&----
FORM GET_VBAK_DATA .
SELECT VBELN
ERDAT
ERNAM
NETWR
WAERK
AUART FROM VBAK INTO TABLE IT_VBAK
WHERE VBELN IN S_VBELN
AND AUART IN S_AUART.
sort it_vbak. " Sorting table
ENDFORM. " get_vbak_data
&----
*& Form build_fieldcat
&----
Form for Building Basic Field Catalogue
----
FORM BUILD_FIELDCAT .
WA_FLDCAT-FIELDNAME = 'VBELN'.
WA_FLDCAT-COL_POS = 1.
WA_FLDCAT-TABNAME = 'IT_VBAK'.
WA_FLDCAT-REF_FIELDNAME = 'VBELN'.
WA_FLDCAT-REF_TABNAME = 'VBAK'.
WA_FLDCAT-HOTSPOT = 'X'.
WA_FLDCAT-KEY = 'X'.
APPEND WA_FLDCAT TO IT_FLDCAT.
CLEAR WA_FLDCAT.
WA_FLDCAT-FIELDNAME = 'ERDAT'.
WA_FLDCAT-COL_POS = 2.
WA_FLDCAT-TABNAME = 'IT_VBAK'.
WA_FLDCAT-REF_FIELDNAME = 'ERDAT'.
WA_FLDCAT-REF_TABNAME = 'VBAK'.
APPEND WA_FLDCAT TO IT_FLDCAT.
CLEAR WA_FLDCAT.
WA_FLDCAT-FIELDNAME = 'ERNAM'.
WA_FLDCAT-COL_POS = 3.
WA_FLDCAT-TABNAME = 'IT_VBAK'.
WA_FLDCAT-REF_FIELDNAME = 'ERNAM'.
WA_FLDCAT-REF_TABNAME = 'VBAK'.
APPEND WA_FLDCAT TO IT_FLDCAT.
CLEAR WA_FLDCAT.
WA_FLDCAT-FIELDNAME = 'NETWR'.
WA_FLDCAT-COL_POS = 4.
WA_FLDCAT-TABNAME = 'IT_VBAK'.
WA_FLDCAT-REF_FIELDNAME = 'NETWR'.
WA_FLDCAT-REF_TABNAME = 'VBAK'.
APPEND WA_FLDCAT TO IT_FLDCAT.
CLEAR WA_FLDCAT.
WA_FLDCAT-FIELDNAME = 'WAERK'.
WA_FLDCAT-COL_POS = 5.
WA_FLDCAT-TABNAME = 'IT_VBAK'.
WA_FLDCAT-REF_FIELDNAME = 'WAERK'.
WA_FLDCAT-REF_TABNAME = 'VBAK'.
APPEND WA_FLDCAT TO IT_FLDCAT.
CLEAR WA_FLDCAT.
WA_FLDCAT-FIELDNAME = 'AUART'.
WA_FLDCAT-COL_POS = 6.
WA_FLDCAT-TABNAME = 'IT_VBAK'.
WA_FLDCAT-REF_FIELDNAME = 'AUART'.
WA_FLDCAT-REF_TABNAME = 'VBAK'.
APPEND WA_FLDCAT TO IT_FLDCAT.
CLEAR WA_FLDCAT.
ENDFORM. " build_fieldcat
&----
*& Form DISPLAY_BASIC
&----
Form for Displaying Basic List
----
FORM DISPLAY_BASIC .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER = ' '
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = SY-CPROG
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 = 'Sales Document Details'
I_GRID_SETTINGS =
IS_LAYOUT =
IT_FIELDCAT = IT_FLDCAT
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = 'A'
IS_VARIANT = p_var1
IT_EVENTS = IT_EVENT
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 = IT_VBAK
EXCEPTIONS
PROGRAM_ERROR = 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. " DISPLAY_BASIC
&----
*& Form GET_EVENTS
&----
Form for Populating Events for Basic List
----
FORM GET_EVENTS .
WA_EVENT-NAME = 'TOP_OF_PAGE'.
WA_EVENT-FORM = 'SUB_TOP' .
APPEND WA_EVENT TO IT_EVENT.
CLEAR WA_EVENT.
WA_EVENT-NAME = 'USER_COMMAND'.
WA_EVENT-FORM = 'SUB_UCOMM' .
APPEND WA_EVENT TO IT_EVENT.
CLEAR WA_EVENT.
ENDFORM. " GET_EVENTS
&----
*& Form SUB_TOP
&----
Form for Populating Comments for Basic List
----
FORM SUB_TOP.
REFRESH IT_COMMENT.
WA_COMMENT-TYP = 'H'.
WA_COMMENT-INFO = 'SALES DOCUMENT HEADER INFORMATION'.
APPEND WA_COMMENT TO IT_COMMENT.
CLEAR WA_COMMENT.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = IT_COMMENT
I_LOGO = 'ENJOYSAP_LOGO'.
.
ENDFORM. "SUB_TOP
&----
*& Form SUB_UCOMM
&----
Form for User-Command and Populating Item Table
----
-->R_UCOMM User-command Parameter
-->RS_SELFLD Selection Field Parameter
----
FORM SUB_UCOMM USING R_UCOMM TYPE SY-UCOMM
RS_SELFLD TYPE SLIS_SELFIELD.
CASE R_UCOMM.
WHEN '&IC1'.
PERFORM POPULTE_ITEM USING RS_SELFLD. " Populating Item Internal table
PERFORM GET_EVENT_ITEM. " Populating Item Event Internal table
PERFORM BUILD_FLDCAT_ITEM. " Building Item Field Catalogue
PERFORM POPULATE_SORT.
perform populate_latout.
clear wa_variant.
clear wa_variant1.
PERFORM DISPLAY_ITEM. " Display Item Details
refresh: it_item,
it_fldcat1.
ENDCASE.
ENDFORM. "SUB_UCOMM
&----
*& Form POPULTE_ITEM
&----
Form for Populating Item Table
----
-->RS_SELFLD Selection Field Parameter
----
FORM POPULTE_ITEM USING RS_SELFLD TYPE SLIS_SELFIELD.
READ TABLE IT_VBAK INTO WA_VBAK INDEX RS_SELFLD-TABINDEX.
SELECT VBELN
POSNR
MATNR
NETWR
WAERK FROM VBAP INTO TABLE IT_VBAP
WHERE VBELN EQ WA_VBAK-VBELN.
IF IT_VBAP[] IS NOT INITIAL.
SELECT MATNR
MAKTX
FROM MAKT INTO TABLE IT_MAKT
FOR ALL ENTRIES IN IT_VBAP
WHERE MATNR EQ IT_VBAP-MATNR
AND SPRAS = 'EN'.
ENDIF.
LOOP AT IT_VBAP INTO WA_VBAP.
WA_ITEM-VBELN = WA_VBAP-VBELN.
WA_ITEM-POSNR = WA_VBAP-POSNR.
WA_ITEM-MATNR = WA_VBAP-MATNR.
WA_ITEM-NETWR = WA_VBAP-NETWR.
WA_ITEM-WAERK = WA_VBAP-WAERK.
READ TABLE IT_MAKT INTO WA_MAKT
WITH KEY MATNR = WA_VBAP-MATNR BINARY SEARCH.
IF SY-SUBRC EQ 0.
WA_ITEM-MAKTX = WA_MAKT-MAKTX.
ENDIF.
APPEND WA_ITEM TO IT_ITEM.
CLEAR WA_ITEM.
ENDLOOP.
ENDFORM. " POPULTE_ITEM
&----
*& Form BUILD_FLDCAT_ITEM
&----
Form for Building Item Field Catalogue
----
FORM BUILD_FLDCAT_ITEM .
WA_FLDCAT1-FIELDNAME = 'VBELN'.
WA_FLDCAT1-COL_POS = 1.
WA_FLDCAT1-TABNAME = 'IT_ITEM'.
WA_FLDCAT1-REF_FIELDNAME = 'VBELN'.
WA_FLDCAT1-REF_TABNAME = 'VBAK'.
APPEND WA_FLDCAT1 TO IT_FLDCAT1.
CLEAR WA_FLDCAT1.
WA_FLDCAT1-FIELDNAME = 'POSNR'.
WA_FLDCAT1-COL_POS = 2.
WA_FLDCAT1-TABNAME = 'IT_ITEM'.
WA_FLDCAT1-REF_FIELDNAME = 'POSNR'.
WA_FLDCAT1-REF_TABNAME = 'VBAP'.
APPEND WA_FLDCAT1 TO IT_FLDCAT1.
CLEAR WA_FLDCAT1.
WA_FLDCAT1-FIELDNAME = 'MATNR'.
WA_FLDCAT1-COL_POS = 3.
WA_FLDCAT1-TABNAME = 'IT_ITEM'.
WA_FLDCAT1-REF_FIELDNAME = 'MATNR'.
WA_FLDCAT1-REF_TABNAME = 'MARA'.
APPEND WA_FLDCAT1 TO IT_FLDCAT1.
CLEAR WA_FLDCAT1.
WA_FLDCAT1-FIELDNAME = 'NETWR'.
WA_FLDCAT1-COL_POS = 4.
WA_FLDCAT1-TABNAME = 'IT_ITEM'.
WA_FLDCAT1-REF_FIELDNAME = 'NETWR'.
WA_FLDCAT1-REF_TABNAME = 'VBAP'.
WA_FLDCAT1-do_sum = 'X'.
WA_FLDCAT1-no_sum = 'X'.
WA_FLDCAT1-currency = 'NETWR'.
APPEND WA_FLDCAT1 TO IT_FLDCAT1.
CLEAR WA_FLDCAT1.
WA_FLDCAT1-FIELDNAME = 'WAERK'.
WA_FLDCAT1-COL_POS = 5.
WA_FLDCAT1-TABNAME = 'IT_ITEM'.
WA_FLDCAT1-REF_FIELDNAME = 'WAERK'.
WA_FLDCAT1-REF_TABNAME = 'VBAP'.
WA_FLDCAT1-no_out = 'X'.
APPEND WA_FLDCAT1 TO IT_FLDCAT1.
CLEAR WA_FLDCAT1.
WA_FLDCAT1-FIELDNAME = 'MAKTX'.
WA_FLDCAT1-COL_POS = 6.
WA_FLDCAT1-TABNAME = 'IT_ITEM'.
WA_FLDCAT1-REF_FIELDNAME = 'MAKTX'.
WA_FLDCAT1-REF_TABNAME = 'MAKT'.
APPEND WA_FLDCAT1 TO IT_FLDCAT1.
CLEAR WA_FLDCAT1.
ENDFORM. " BUILD_FLDCAT_ITEM
&----
*& Form get_event_item
&----
Form for Populating Item Events
----
FORM GET_EVENT_ITEM .
WA_EVENT1-NAME = 'TOP_OF_PAGE'.
WA_EVENT1-FORM = 'SUB_TOP_ITEM' .
APPEND WA_EVENT1 TO IT_EVENT1.
CLEAR WA_EVENT1.
WA_EVENT1-NAME = 'USER_COMMAND'.
WA_EVENT1-FORM = 'SUB_UCOMM_ITEM' .
APPEND WA_EVENT1 TO IT_EVENT1.
CLEAR WA_EVENT1.
ENDFORM. " get_event_item
&----
*& Form SUB_TOP_ITEM
&----
Form for Writing Item Header
----
FORM SUB_TOP_ITEM.
REFRESH IT_COMMENT1.
WA_COMMENT1-TYP = 'H'.
WA_COMMENT1-INFO = 'SALES DOCUMENT ITEM INFORMATION'.
APPEND WA_COMMENT1 TO IT_COMMENT1.
CLEAR WA_COMMENT1.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = IT_COMMENT1
I_LOGO =
I_END_OF_LIST_GRID =
I_ALV_FORM =
.
ENDFORM. "SUB_TOP_ITEM
&----
*& Form DISPLAY_ITEM
&----
Form For Displaying Item List
----
FORM DISPLAY_ITEM .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER = ' '
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = SY-CPROG
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 = wa_layout
IT_FIELDCAT = IT_FLDCAT1
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT = it_sort
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = ''
IS_VARIANT =
IT_EVENTS = IT_EVENT1
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 = IT_ITEM
EXCEPTIONS
PROGRAM_ERROR = 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. " DISPLAY_ITEM
&----
*& Form SUB_UCOMM_ITEM
&----
Form For Item User-Command
----
-->R_UCOMM1 User-Command Parameter
-->RS_SELFLD1 Selection Filed Parameter
----
FORM SUB_UCOMM_ITEM USING R_UCOMM1 TYPE SY-UCOMM
RS_SELFLD1 TYPE SLIS_SELFIELD.
CASE RS_SELFLD1-FIELDNAME.
WHEN 'VBELN'.
SET PARAMETER ID 'AUN' FIELD RS_SELFLD1-VALUE.
CALL TRANSACTION C_VA03 AND SKIP FIRST SCREEN.
CLEAR RS_SELFLD1.
WHEN 'MATNR'.
SET PARAMETER ID 'MAT' FIELD RS_SELFLD1-VALUE.
CALL TRANSACTION C_MM03 AND SKIP FIRST SCREEN.
CLEAR RS_SELFLD1.
WHEN 'MAKTX'.
CALL FUNCTION 'CALL_BROWSER'
EXPORTING
URL = 'WWW.RELIANCEGLOBAL.COM'
WINDOW_NAME = ' '
NEW_WINDOW = ' '
BROWSER_TYPE =
CONTEXTSTRING =
EXCEPTIONS
FRONTEND_NOT_SUPPORTED = 1
FRONTEND_ERROR = 2
PROG_NOT_FOUND = 3
NO_BATCH = 4
UNSPECIFIED_ERROR = 5
OTHERS = 6
.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
WHEN OTHERS.
MESSAGE 'Select correct field' TYPE 'I'.
ENDCASE.
ENDFORM. "SUB_UCOMM_ITEM
&----
*& Form AT_SELECTION_SCREEN
&----
Form for Validating Selection Screen
----
FORM AT_SELECTION_SCREEN .
SELECT SINGLE VBELN FROM VBAK INTO V_VBELN "selecting the available records
WHERE VBELN IN S_VBELN. "in the database
*Cheking if user enters any records which are not in database
IF SY-SUBRC NE 0. "If user enters wrong selection
MESSAGE E001 WITH 'Sales Document No Does not Exist'(001). "Giving error message from zb3_msg messageclass
ENDIF.
IF S_VBELN[] IS INITIAL.
MESSAGE E001 WITH 'Please Enter Sales Document Number'(002).
ENDIF.
IF S_VBELN-HIGH CN '1234567890 '.
MESSAGE E001 WITH 'Please enter Correct Sales Document'(003).
ENDIF.
ENDFORM. " AT_SELECTION_SCREEN
&----
*& Form POPULATE_SORT
&----
text
----
--> p1 text
<-- p2 text
----
form POPULATE_SORT .
WA_SORT-fieldname = 'VBELN'.
WA_SORT-TABNAME = 'IT_ITEM'.
WA_SORT-UP = 'UP'.
APPEND WA_SORT TO IT_SORT.
CLEAR WA_SORT.
WA_SORT-fieldname = 'MATNR'.
WA_SORT-TABNAME = 'IT_ITEM'.
WA_SORT-UP = 'UP'.
APPEND WA_SORT TO IT_SORT.
CLEAR WA_SORT.
endform. " POPULATE_SORT
&----
*& Form populate_latout
&----
text
----
--> p1 text
<-- p2 text
----
FORM populate_latout .
wa_layout-zebra = 'X'.
wa_layout-NO_HOTSPOT = 'X'.
ENDFORM. " populate_latout
Reward if helpful
cheers
Amith
‎2008 Apr 23 12:40 PM
&----
*& Report Z_INTERACTIVE *
*& *
&----
*& *
*& *
&----
REPORT Z_INTERACTIVE no standard page heading line-count 200 message-id zp.
TABLES: MARA, MAKT, MARC, MARD,T001W.
DATA: BEGIN OF IT_MARA_MAKT_MARD OCCURS 0,
MATNR LIKE MARA-MATNR,
MTART LIKE MARA-MTART,
MEINS LIKE MARA-MEINS,
MAKTX LIKE MAKT-MAKTX,
LABST LIKE MARD-LABST,
END OF IT_MARA_MAKT_MARD.
DATA: BEGIN OF IT_MARC_MARD1 OCCURS 0,
WERKS LIKE MARC-WERKS,
LABST LIKE MARD-LABST,
NAME1 LIKE T001W-NAME1,
END OF IT_MARC_MARD1.
DATA: BEGIN OF IT_MARC_MARD OCCURS 0,
LGORT LIKE MARD-LGORT,
LABST LIKE MARD-LABST,
END OF IT_MARC_MARD.
SELECT-OPTIONS: s_matnr FOR MARA-MATNR.
AT SELECTION-SCREEN.
REFRESH IT_MARA_MAKT_MARD.
SELECT MATNR MTART MEINS INTO CORRESPONDING FIELDS OF IT_MARA_MAKT_MARD FROM MARA WHERE MATNR IN s_matnr.
SELECT SINGLE MAKTX INTO IT_MARA_MAKT_MARD-MAKTX FROM MAKT WHERE MATNR = IT_MARA_MAKT_MARD-MATNR.
SELECT SUM( LABST ) INTO IT_MARA_MAKT_MARD-LABST FROM MARD WHERE MATNR = IT_MARA_MAKT_MARD-MATNR.
APPEND IT_MARA_MAKT_MARD.
CLEAR IT_MARA_MAKT_MARD.
ENDSELECT.
IF SY-SUBRC 0.
MESSAGE I008.
ENDIF.
START-OF-SELECTION.
SORT IT_MARA_MAKT_MARD.
WRITE:/ 'MATERIAL NUMBER' COLOR 2, 20 'DESCRIPTION' COLOR 2, 50 'TYPE' COLOR 2, 70 'UOM' COLOR 2, 100 'STOCK' COLOR 2.
ULINE.
SKIP 4.
LOOP AT IT_MARA_MAKT_MARD.
WRITE:/ IT_MARA_MAKT_MARD-MATNR, 20 IT_MARA_MAKT_MARD-MAKTX, 50 IT_MARA_MAKT_MARD-MTART, 70 IT_MARA_MAKT_MARD-MEINS, 90 IT_MARA_MAKT_MARD-LABST.
HIDE: IT_MARA_MAKT_MARD-MATNR, IT_MARA_MAKT_MARD-MAKTX, IT_MARA_MAKT_MARD-MTART, IT_MARA_MAKT_MARD-MEINS, IT_MARA_MAKT_MARD-LABST.
ENDLOOP.
**********************************************************************************************************************************
AT LINE-SELECTION.
CASE: SY-LSIND.
WHEN 1.
WINDOW STARTING AT 1 20 ENDING AT 120 120.
REFRESH IT_MARC_MARD1.
CLEAR IT_MARC_MARD1.
SELECT pWERKS QNAME1 INTO CORRESPONDING FIELDS OF IT_MARC_MARD1 FROM MARC AS p INNER JOIN T001W AS q ON pWERKS = qWERKS WHERE p~MATNR = IT_MARA_MAKT_MARD-MATNR.
SELECT SUM( LABST ) INTO IT_MARC_MARD1-LABST FROM MARD WHERE MATNR = IT_MARA_MAKT_MARD-MATNR AND WERKS = IT_MARC_MARD1-WERKS.
APPEND IT_MARC_MARD1.
CLEAR IT_MARC_MARD1.
ENDSELECT.
SORT IT_MARC_MARD1.
WRITE:/ 'MATERIAL NUMBER' COLOR 3.
WRITE: IT_MARA_MAKT_MARD-MATNR COLOR 4.
WRITE:/ 'DESCRIPTION' COLOR 3.
WRITE: IT_MARA_MAKT_MARD-MAKTX COLOR 4.
WRITE:/ 'TYPE' COLOR 3.
WRITE: IT_MARA_MAKT_MARD-MTART COLOR 4.
WRITE:/ 'UNIT OF MEASUREMENT' COLOR 3.
WRITE: IT_MARA_MAKT_MARD-MEINS COLOR 4.
WRITE:/ 'MATERIAL QUANTITY' COLOR 3.
WRITE: IT_MARA_MAKT_MARD-LABST COLOR 4.
ULINE.
SKIP 4.
WRITE:/ 'PLANT CODE' COLOR 2, 20 'PLANT NAME' COLOR 2, 60 'STOCK' COLOR 2.
LOOP AT IT_MARC_MARD1.
WRITE:/ IT_MARC_MARD1-WERKS COLOR 4, 20 IT_MARC_MARD1-NAME1 COLOR 4, 41 IT_MARC_MARD1-LABST.
HIDE: IT_MARC_MARD1-WERKS.
HIDE: IT_MARA_MAKT_MARD-MATNR, IT_MARA_MAKT_MARD-MAKTX, IT_MARA_MAKT_MARD-MTART, IT_MARA_MAKT_MARD-MEINS, IT_MARA_MAKT_MARD-LABST.
AT LAST.
SUM.
WRITE:/30 'TOTAL STOCK', 60 IT_MARC_MARD1-LABST.
ENDAT.
ENDLOOP.
WHEN 2.
WINDOW STARTING AT 1 20 ENDING AT 120 120.
REFRESH IT_MARC_MARD.
CLEAR IT_MARC_MARD.
SELECT LGORT LABST INTO CORRESPONDING FIELDS OF IT_MARC_MARD FROM MARD WHERE MATNR = IT_MARA_MAKT_MARD-MATNR AND WERKS = IT_MARC_MARD1-WERKS.
APPEND IT_MARC_MARD.
CLEAR IT_MARC_MARD.
ENDSELECT.
SORT IT_MARC_MARD.
WRITE:/ 'MATERIAL NUMBER' COLOR 3.
WRITE: IT_MARA_MAKT_MARD-MATNR COLOR 4.
SKIP 1.
WRITE:/ 'DESCRIPTION' COLOR 3.
WRITE: IT_MARA_MAKT_MARD-MAKTX COLOR 4.
SKIP 1.
WRITE:/ 'TYPE' COLOR 3.
WRITE: IT_MARA_MAKT_MARD-MTART COLOR 4.
SKIP 1.
WRITE:/ 'UNIT OF MEASUREMENT' COLOR 3.
WRITE: IT_MARA_MAKT_MARD-MEINS COLOR 4.
SKIP 1.
WRITE:/ 'MATERIAL QUANTITY' COLOR 3.
WRITE: IT_MARA_MAKT_MARD-LABST COLOR 4.
SKIP 1.
ULINE.
SKIP 1.
WRITE:/ 'PLANT CODE' COLOR 2, 40 'PLANT NAME' COLOR 2.
WRITE:/ IT_MARC_MARD1-WERKS, 40 IT_MARC_MARD1-NAME1.
SKIP 3.
ULINE.
WRITE:/20 'STORAGE LOCATION' COLOR 5, 50 'STOCK' COLOR 5.
SKIP 4.
LOOP AT IT_MARC_MARD.
WRITE:/20 IT_MARC_MARD-LGORT, 50 IT_MARC_MARD-LABST.
AT LAST.
SUM.
WRITE:/30 'TOTAL STOCK', 60 IT_MARC_MARD-LABST.
ENDAT.
ENDLOOP.
WHEN OTHERS.
WINDOW STARTING AT 1 20 ENDING AT 20 50.
WRITE:/40 'SORRY'.
ENDCASE.
***********************************************************************
************************************************************************
TOP-OF-PAGE.
WRITE:/ 'XYZ LIMITED' COLOR 2, 90 'DATE:' COLOR 2, SY-DATUM.
ULINE.
ULINE.
************************************************************************
TOP-OF-PAGE DURING LINE-SELECTION.
WRITE:/ 'XYZ LIMITED' COLOR 2, 90 'DATE:' COLOR 2, SY-DATUM.
ULINE.
‎2008 Apr 23 12:42 PM
Hi
TYPES : BEGIN OF st_kna1,
kunnr TYPE kna1-kunnr, "CUSTOMER NUMBER
name1 TYPE kna1-name1, "CUSTOMER NAME
END OF st_kna1.
TYPES : BEGIN OF st_vbak,
kunnr TYPE kna1-kunnr,
vbeln TYPE vbak-vbeln, "SALES DOCUMENT NUMBER
erdat TYPE vbak-erdat, "DATE ON WHICH THE RECORD WAS CREATED
audat TYPE vbak-audat, "DOCUMENT DATE
auart TYPE vbak-auart, "SALES DOCUMENT TYPE
ernam TYPE vbak-ernam, "NAME OF PERSON WHO CREATED THE OBJECT.
augru TYPE vbak-augru, "ORDER REASON
END OF st_vbak.
TYPES : BEGIN OF st_vbap,
vbeln TYPE vbak-vbeln,
posnr TYPE vbap-posnr, "SALES DOCUMENT ITEM
matnr TYPE vbap-matnr, "MATERIAL NUMBER
charg TYPE vbap-charg, "BATCH NUMBER
matkl TYPE vbap-matkl, "MATERIAL GROUP
posar TYPE vbap-posar, "ITEM TYPE
END OF st_vbap.
DATA : it_kna1 TYPE STANDARD TABLE OF st_kna1,
it_vbak TYPE STANDARD TABLE OF st_vbak,
it_vbap TYPE STANDARD TABLE OF st_vbap,
wa_kna1 TYPE st_kna1,
wa_vbak TYPE st_vbak,
wa_vbap TYPE st_vbap.
DATA : v_fld(15),
v_kunnr TYPE kna1-kunnr,
v_vbeln TYPE vbak-vbeln.
----
SELECT-OPTIONS
PARAMETERS
----
SELECT-OPTIONS so_kunnr FOR v_kunnr. "CUSTOMER NUMBER
PARAMETERS : p_max TYPE i. "NUMBER OF HITS
----
START-OF-SELECTION
----
START-OF-SELECTION.
PERFORM get_customerdata.
SET PF-STATUS 'MENU1'.
----
AT LINE-SELECTION
----
AT LINE-SELECTION.
IF sy-lsind = 1.
PERFORM get_salesheader.
ELSEIF sy-lsind = 2.
PERFORM get_salesitemdata.
ENDIF.
----
AT USER-COMMAND
----
AT USER-COMMAND.
CASE sy-ucomm.
WHEN 'DISP'.
PERFORM get_salesheader.
WHEN 'ITEM'.
PERFORM get_salesitemdata.
WHEN 'VA03'.
SET PARAMETER ID 'AUN' FIELD wa_vbak-vbeln.
CALL TRANSACTION 'VA03' AND SKIP FIRST SCREEN.
ENDCASE.
----
TOP-OF-PAGE
----
TOP-OF-PAGE.
ULINE AT /1(56).
WRITE : /1 sy-vline ,
2(15) text-004 COLOR 1 ,
sy-vline ,
20(35) text-005 COLOR 1 ,
sy-vline.
ULINE AT /1(56).
----
TOP-OF-PAGE DURING LINE-SELECTION.
----
TOP-OF-PAGE DURING LINE-SELECTION.
CASE sy-lsind.
WHEN 1.
PERFORM get_topofpage1.
WHEN 2.
PERFORM get_topofpage2.
ENDCASE.
----
FORM GET_CUSTOMERDATA
----
FORM get_customerdata.
SELECT kunnr name1
FROM kna1
INTO TABLE it_kna1
UP TO p_max ROWS
WHERE kunnr IN so_kunnr.
IF sy-subrc EQ 0.
LOOP AT it_kna1 INTO wa_kna1.
WRITE : / sy-vline,
2(15) wa_kna1-kunnr ,
sy-vline ,
20 wa_kna1-name1,
sy-vline.
HIDE : wa_kna1-kunnr , wa_kna1-name1.
CLEAR wa_kna1.
ENDLOOP.
ULINE AT : /1(56).
ELSE.
MESSAGE w000(z50871msg).
ENDIF.
ENDFORM. "GET_CUSTOMERDATA
----
FORM GET_SALESHEADER
----
FORM get_salesheader.
SET PF-STATUS 'MENU2'.
GET CURSOR FIELD v_fld VALUE v_kunnr.
IF v_fld = 'WA_KNA1-KUNNR'.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = v_kunnr
IMPORTING
output = v_kunnr.
SELECT kunnr vbeln erdat audat auart ernam augru
FROM vbak
INTO TABLE it_vbak
WHERE kunnr = v_kunnr.
IF sy-subrc EQ 0.
LOOP AT it_vbak INTO wa_vbak.
WRITE : / sy-vline ,
2(22) wa_vbak-vbeln ,
sy-vline,
27(25) wa_vbak-erdat ,
sy-vline ,
55(15) wa_vbak-audat ,
sy-vline ,
73(15) wa_vbak-auart ,
sy-vline,
91(16) wa_vbak-ernam ,
sy-vline,
109(13) wa_vbak-augru,
123 sy-vline.
HIDE : wa_vbak-vbeln.
CLEAR wa_vbak.
ENDLOOP.
ULINE AT : /1(123).
ELSE.
MESSAGE i015(z50871msg).
ENDIF.
ELSE.
MESSAGE i013(z50871msg).
ENDIF.
ENDFORM. "GET_SALESHEADER
----
FORM GET_SALESITEMDATA
----
FORM get_salesitemdata.
SET PF-STATUS space.
GET CURSOR FIELD v_fld VALUE v_vbeln.
IF v_fld = 'WA_VBAK-VBELN'.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = v_vbeln
IMPORTING
output = v_vbeln.
SELECT vbeln posnr matnr charg matkl posar
FROM vbap
INTO TABLE it_vbap
WHERE vbeln = v_vbeln.
LOOP AT it_vbap INTO wa_vbap.
WRITE : /1 sy-vline,
2(13) wa_vbap-posnr ,
sy-vline,
18(18) wa_vbap-matnr ,
sy-vline,
40(13) wa_vbap-charg ,
sy-vline,
56(16) wa_vbap-matkl ,
sy-vline,
75 wa_vbap-posar,
112 sy-vline.
CLEAR wa_vbap.
ENDLOOP.
ULINE AT : /1(112).
ELSE.
MESSAGE i014(z50871msg).
ENDIF.
ENDFORM. "GET_SALESITEMDATA
----
FORM GET_TOPOFPAGE1
----
FORM get_topofpage1.
ULINE AT : /1(123).
WRITE : / sy-vline ,
2 text-000 ,
wa_kna1-kunnr ,
75 text-001 ,
wa_kna1-name1,
123 sy-vline.
ULINE AT : /1(123).
WRITE : / sy-vline ,
2(22) text-006 COLOR 1,
sy-vline,
27(25) text-007 COLOR 1 ,
sy-vline ,
55(15) text-008 COLOR 1 ,
sy-vline ,
73(15) text-009 COLOR 1 ,
sy-vline,
91(16) text-010 COLOR 1 ,
sy-vline,
109(13) text-011 COLOR 1,
123 sy-vline.
ULINE AT : /1(123).
ENDFORM. "GET_TOPOFPAGE1
----
FORM GET_TOPOFPAGE2
----
FORM get_topofpage2.
ULINE AT : /1(112).
WRITE : / sy-vline ,
2 text-000 ,
wa_kna1-kunnr ,
35 text-001 ,
wa_kna1-name1 ,
85 text-003 ,
wa_vbak-vbeln ,
112 sy-vline.
ULINE AT : /1(112).
WRITE : /1 sy-vline,
2(13) text-012 COLOR 1,
sy-vline,
18(18) text-013 COLOR 1 ,
sy-vline,
40(13) text-014 COLOR 1 ,
sy-vline,
56(16) text-015 COLOR 1 ,
sy-vline,
75 text-016 COLOR 1 ,
112 sy-vline.
ULINE AT : /1(112).
ENDFORM. "GET_TOPOFPAGE2