-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathZSK_CLASSICAL.ABAP
More file actions
152 lines (116 loc) · 6.38 KB
/
Copy pathZSK_CLASSICAL.ABAP
File metadata and controls
152 lines (116 loc) · 6.38 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
***SE38
***Program -> Enter Program Name -> Type Source -> Create
***Program Attributes -> Title : ZSK_CLASSIC_REP_2_TAB - > Type -> 1 Executable program
***AUTO-COMPLETEION WITH TAB
*&---------------------------------------------------------------------*
*& Report ZSK_CLASSICAL
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZSK_CLASSICAL.
***Data Declaration
***DECLARATION OF TABLES USED
***JOIN THESE 2 TABLES AND DISPLAY THE COMBINED REPORT
TABLES : MARA, " GEBERAL MATERIAL DATA
MAKT. " MATERIAL DESCRIPTION
***DECLARATION OF STRUCTURES FOR INTERNAL TABLES
***INTERNAL TABLES ARE TEMPORARY TABLES CREATED USING FIELDS OF A REAL TABLE,
***TABLE FIELDS -> STRUCTURE -> INTERNAL TABLE -> WORKING AREA OF INTERNAL TABLE -> INTERNAL TABLE -> DISPLAY
****NO OPERATIONS ARE DONE ON REAL TABLE DIRECTLY
*PATTERN -> STRUCTURED DATA OBJECT -> WITH FIELDS FROM STRUCTURE -> TABLE NAME(MARA) -> SELECT FIELDS -> COPY ->
*ENTER NAME FOR STRUCTURED DATA OBJECT(TY_MARA) -> REPLACE DATA WITH TYPES
***STRUCTURE FOR THE INTERNAL TABLE OF MARA
TYPES : BEGIN OF TY_MARA,
MATNR TYPE MARA-MATNR, " MATERIAL NUMBER
MTART TYPE MARA-MTART, " MATERIAL TYPE
MBRSH TYPE MARA-MBRSH, " INDUSTRY SECTOR
MATKL TYPE MARA-MATKL, " MATERIAL GROUP
MEINS TYPE MARA-MEINS, " BASE UNIT OF MEASURE
END OF TY_MARA.
***STRUCTURE FOR THE INTERNAL TABLE OF MAKT
TYPES: BEGIN OF TY_MAKT,
MATNR TYPE MAKT-MATNR, " MATERIAL NUMBER
MAKTX TYPE MAKT-MAKTX, " MATERIAL DESCRIPTION
END OF TY_MAKT.
***STRUCTURE FOR THE INTERNAL TABLE OF FINAL
***FINAL WILL HOLD THE JOINED DATA FROM BOTH THE TABLES
TYPES : BEGIN OF TY_FINAL,
MATNR TYPE MARA-MATNR, " MATERIAL NUMBER
MTART TYPE MARA-MTART, " MATERIAL TYPE
MBRSH TYPE MARA-MBRSH, " INDUSTRY SECTOR
MATKL TYPE MARA-MATKL, " MATERIAL GROUP
MEINS TYPE MARA-MEINS, " BASE UNIT OF MEASURE
MAKTX TYPE MAKT-MAKTX, " MATERIAL DESCRIPTION
END OF TY_FINAL.
***CREATE INTERNAL TABLE FROM EACH STRUCTURE
***INTERNAL TABLE OF MARA
DATA : IT_MARA TYPE TABLE OF TY_MARA, " CREATE INTERNAL TABLE IT_MARA FOR TABLE MARA FROM STRUCTURE TY_MARA
WA_MARA LIKE LINE OF IT_MARA. " CREATE WORKING AREA FOR INTERNAL TABLE IT_MARA
***INTERNAL TABLE OF MAKT
DATA : IT_MAKT TYPE TABLE OF TY_MAKT, " CREATE INTERNAL TABLE IT_MAKT FOR TABLE MAKT FROM STRUCTURE TY_MAKT
WA_MAKT LIKE LINE OF IT_MAKT. " CREATE WORKING AREA FOR INTERNAL TABLE IT_MAKT
***INTERNAL TABLE FINAL
***NOTE THAT THERE IS NO ACTUAL TABLE FINAL(IT_FINAL IS CREATED ONLY FOR RESULT STORAGE AND DISPLAY PURPOSE),
***WHILE MARA AND MAKT ARE REAL TABLES
***DATA FROM THESE REAL TABLES WILL BE FETCHED INTO THEIR CORRESPONDING INTERNAL VERSIONS
***DATA FROM THESE 2 INTERNAL TABLES WILL BE JOINED AND SAVED TO IT_FINAL AND THEN DISPLAYED TO THE USER
DATA : IT_FINAL TYPE TABLE OF TY_FINAL, " CREATE INTERNAL TABLE IT_MARA FOR TABLE MARA FROM STRUCTURE TY_MARA
WA_FINAL LIKE LINE OF IT_FINAL. " CREATE WORKING AREA FOR INTERNAL TABLE IT_MARA
***SELECTION SCREEN/UI CREATION
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
***DOUBLE CLICK 001 TO CREATE A TEXT SYMBOL OBJECT WITH VALUE 'ENTER VALUES' AS TITLE
" Names to be displayed change from Goto->Text Elements->Selection Texts
SELECT-OPTIONS : S_MATNR FOR MARA-MATNR. " DEFINES A RANGE INPUT
PARAMETERS : P_MBRSH TYPE MARA-MBRSH. " DEFINES A SINGLE VALUE INPUT
SELECTION-SCREEN END OF BLOCK B1.
***EXECUTION STARTS HERE/PROCESSED BEFORE ANY SELECTION SCREEN
***This event gets triggered when the user clicks on execute button on Selection screen. All the Data
***retrieval and data processing logic will be written in this event.
***IF NOT MENTIONED EXPLICITLY This is implicitly called when the runtime system sees AN execution statement
START-OF-SELECTION.
***GET DATA FROM MARA INTO IT_MARA BASED ON USER INPUT
SELECT MATNR
MTART
MBRSH
MATKL
MEINS FROM MARA INTO TABLE IT_MARA WHERE MATNR IN S_MATNR AND MBRSH = P_MBRSH.
***GET DATA FROM MAKT ONLY IF IT_MARA IS NOT EMPTY
IF IT_MARA IS NOT INITIAL. " SHOULD CONTAIN SOME DATA/NO DATA IF STATE IS INITIAL
SORT IT_MARA ASCENDING BY MATNR. " The following select on the dependent table works faster because
" the search is lighter due to sorted data
" GET DATA FROM MAKT INTO IT_MAKT FOR ALL ROWS SELECTED IN IT_MARA
SELECT MATNR
MAKTX FROM MAKT INTO TABLE IT_MAKT FOR ALL ENTRIES IN IT_MARA WHERE MATNR = IT_MARA-MATNR.
ENDIF.
LOOP AT IT_MARA INTO WA_MARA. " FETCH DATA FROM IT_MARA INTO WA_MARA ROW BY ROW FOR PROCESSING
" CLEAR WA-FINAL FOR EACH NEW ROW OF IT_MARA
CLEAR WA_FINAL.
" GET DATA INTO WA-FINAL FROM IT_MARA VIA WA-MARA
WA_FINAL-MATNR = WA_MARA-MATNR.
WA_FINAL-MTART = WA_MARA-MTART.
WA_FINAL-MBRSH = WA_MARA-MBRSH.
WA_FINAL-MATKL = WA_MARA-MATKL.
WA_FINAL-MEINS = WA_MARA-MEINS.
" USING READ TABEL AS IT IS FASTER THAN LOOP AT AND SINCE IT_MAKT HAS ONLY ONE FIELD I.E. MAKTX
" READS A SINGLE LINE FROM IT_MAKT INTO WA_MAKT
READ TABLE IT_MAKT INTO WA_MAKT WITH KEY MATNR = WA_FINAL-MATNR BINARY SEARCH. " FASTER PROCESSING
***The BINARY SEARCH means that you can access an entry in a standard table by its key as
***quickly as you would be able to in a sorted table. The standard table must be sorted
***in ascending order by the specified search key. tHATS WHY WE SORTED IT_MARA EARLIER.
" GET DATA INTO WA-FINAL FROM IT_MAKT VIA WA-MAKT
WA_FINAL-MAKTX = WA_MAKT-MAKTX.
APPEND WA_FINAL TO IT_FINAL. " ADD WA-FINAL ROW TO IT-FINAL(FINAL COMBINED RESULT)
ENDLOOP.
ULINE AT /(109). " HORIZONTOL LINE - 109 CHARACHTERS LONG
WRITE : AT /1 SY-VLINE, 2'MATERIAL NUMBER', 20 SY-VLINE, 21'MATERIAL TYPE',34 SY-VLINE, 35'INDUSTRY SECTOR',
50 SY-VLINE, 51'MATERIAL GROUP', 65 SY-VLINE, 66'BASE UNIT OF MEASURE', 87 SY-VLINE, 88'MATERIAL DESCRIPTION',
109 SY-VLINE. " SY-VLINE - VERTICAL LINE
ULINE AT /(109).
LOOP AT IT_FINAL INTO WA_FINAL. " FETCH DATA FROM IT_FINAL FOR PRINTING
WRITE: AT /1 SY-VLINE, 2 WA_FINAL-MATNR, 20 SY-VLINE, 21 WA_FINAL-MTART, 34 SY-VLINE, 35 WA_FINAL-MBRSH,
50 SY-VLINE, 51 WA_FINAL-MATKL, 65 SY-VLINE, 66 WA_FINAL-MEINS, 87 SY-VLINE, 88 WA_FINAL-MAKTX, 109 SY-VLINE.
ULINE AT /(109).
ENDLOOP.
END-OF-SELECTION.