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
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241 | *&---------------------------------------------------------------------*
*& Report ZTEST_ALV
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ztest_alv.
DATA : t_ekko TYPE TABLE OF ekko,
x_ekko TYPE ekko.
*ALV Data declaration
*--------------------------------------------------------------------*
DATA: t_fieldcatalog TYPE slis_t_fieldcat_alv WITH HEADER LINE,
d_tab_group TYPE slis_t_sp_group_alv,
x_layout TYPE slis_layout_alv,
d_repid LIKE sy-repid,
t_events TYPE slis_t_event,
x_prntparams TYPE slis_print_alv,
t_sort TYPE slis_t_sortinfo_alv,
t_alv_isort TYPE slis_t_sortinfo_alv WITH HEADER LINE,
t_alv_extab TYPE slis_t_extab WITH HEADER LINE.
*--------------------------------------------------------------------*
START-OF-SELECTION.
SELECT * FROM ekko INTO TABLE t_ekko
UP TO 50 ROWS.
PERFORM f_alv.
*&---------------------------------------------------------------------*
*& Form F_ALV
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM f_alv .
REFRESH t_fieldcatalog.
PERFORM f_build_fieldcatalog.
PERFORM f_build_layout.
PERFORM f_build_events.
PERFORM f_display_alv_report.
REFRESH : t_ekko.
ENDFORM. " F_ALV
*&---------------------------------------------------------------------*
*& Form F_BUILD_FIELDCATALOG
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM f_build_fieldcatalog .
PERFORM f_sub_fill_alv_field_catalog USING:
'01' '01' 'BUKRS' 'T_EKKO' 'R' 'Company Code' '' '' '' '' 'X',
'01' '02' 'BSART' 'T_EKKO' 'L' 'PO Type' '' '' '' '' 'X',
'01' '03' 'LOEKZ' 'T_EKKO' 'R' 'Delete' '' '' '' '' '',
'01' '04' 'LIFNR' 'T_EKKO' 'R' 'Vendor' '' '' '' '' '',
'01' '05' 'BSTYP' 'T_EKKO' 'R' 'Account' '' '' '' '' ''.
ENDFORM. " F_BUILD_FIELDCATALOG
*&---------------------------------------------------------------------*
*& Form F_BUILD_LAYOUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM f_build_layout .
x_layout-colwidth_optimize = 'X'.
x_layout-zebra = 'X'.
* x_layout-info_fieldname = 'LINE_COLOR'.
x_layout-box_tabname = 'T_EKKO'.
ENDFORM. " F_BUILD_LAYOUT
*&---------------------------------------------------------------------*
*& Form F_BUILD_EVENTS
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM f_build_events .
DATA: lx_events TYPE slis_alv_event.
REFRESH t_events.
CONSTANTS: c_formname_subtotal_text TYPE slis_formname
VALUE 'F_SUBTOTAL_TEXT'.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = t_events[]
EXCEPTIONS
list_type_wrong = 1
OTHERS = 2.
LOOP AT t_events INTO lx_events.
CASE lx_events-name.
WHEN slis_ev_top_of_page.
MOVE 'F_TOP_OF_PAGE' TO lx_events-form.
WHEN slis_ev_pf_status_set.
MOVE 'F_PF_STATUS_SET' TO lx_events-form.
ENDCASE.
MODIFY t_events FROM lx_events.
ENDLOOP.
*Subtotal
CLEAR lx_events.
READ TABLE t_events INTO lx_events
WITH KEY name = slis_ev_subtotal_text.
IF sy-subrc EQ 0.
MOVE c_formname_subtotal_text TO lx_events-form.
MODIFY t_events FROM lx_events INDEX sy-tabix.
ENDIF.
ENDFORM. " F_BUILD_EVENTS
*&---------------------------------------------------------------------*
*& Form F_DISPLAY_ALV_REPORT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM f_display_alv_report .
d_repid = sy-repid.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = d_repid
is_layout = x_layout
it_fieldcat = t_fieldcatalog[]
it_sort = t_sort
i_default = 'X'
i_save = 'A'
it_events = t_events
is_print = x_prntparams
TABLES
t_outtab = t_ekko
EXCEPTIONS
program_error = 1
OTHERS = 2.
IF sy-subrc <> 0.
ENDIF.
ENDFORM. " F_DISPLAY_ALV_REPORT
*&---------------------------------------------------------------------*
*& Form F_SUB_FILL_ALV_FIELD_CATALOG
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_0092 text
* -->P_0093 text
* -->P_0094 text
* -->P_0095 text
* -->P_0096 text
* -->P_0097 text
* -->P_0098 text
* -->P_0099 text
* -->P_0100 text
* -->P_0101 text
* -->P_0102 text
*----------------------------------------------------------------------*
FORM f_sub_fill_alv_field_catalog USING p_rowpos TYPE sycurow
p_colpos TYPE sycucol
p_fldnam TYPE fieldname
p_tabnam TYPE tabname
p_justif TYPE char1
p_seltext TYPE dd03p-scrtext_l
p_out TYPE char1
p_tech TYPE char1
p_qfield TYPE slis_fieldname
p_qtab TYPE slis_tabname
p_key TYPE char1.
DATA: lx_fcat TYPE slis_fieldcat_alv.
lx_fcat-row_pos = p_rowpos.
lx_fcat-col_pos = p_colpos.
lx_fcat-fieldname = p_fldnam.
lx_fcat-tabname = p_tabnam.
lx_fcat-just = p_justif.
lx_fcat-seltext_l = p_seltext.
lx_fcat-no_out = p_out.
lx_fcat-tech = p_tech.
lx_fcat-qfieldname = p_qfield.
lx_fcat-qtabname = p_qtab.
lx_fcat-key = p_key.
APPEND lx_fcat TO t_fieldcatalog.
CLEAR lx_fcat.
ENDFORM. " F_SUB_FILL_ALV_FIELD_CATALOG
*&---------------------------------------------------------------------*
*& Form f_top_of_page
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM f_top_of_page.
*ALV Header Declarations
DATA: lt_header TYPE slis_t_listheader,
lx_header TYPE slis_listheader,
lt_line LIKE lx_header-info,
ld_lines TYPE i,
ld_linesc(10) TYPE c.
DATA : ld_year_txt(8).
*Title
lx_header-typ = 'H'.
lx_header-info = 'PETRONAS CARIGALI INDONESIA'.
APPEND lx_header TO lt_header.
CLEAR lx_header.
lx_header-typ = 'S'.
lx_header-info = 'PRODUCTION SHARING CONTRACTS'.
APPEND lx_header TO lt_header.
CLEAR lx_header.
lx_header-typ = 'A'.
lx_header-info = 'PRODUCTION SHARING CONTRACTS'.
APPEND lx_header TO lt_header.
CLEAR lx_header.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = lt_header.
ENDFORM. "f_top_of_page
*&---------------------------------------------------------------------*
*& Form f_pf_status_set
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->FU_EXTAB text
*----------------------------------------------------------------------*
FORM f_pf_status_set USING fu_extab TYPE slis_t_extab.
REFRESH fu_extab.
SET PF-STATUS 'STANDARD' EXCLUDING fu_extab.
SET TITLEBAR 'TITLE' WITH 'Financial Quarterly Report - 4ATT'.
ENDFORM. "F_ALV_STATUS
|
No comments:
Post a Comment