Bonjour,
Je suis entrain de créer un ALV grid simple et Objet, mais j 'aimerai comprendre ce que je fais.
Dans le code que je vous ai mi il y a une premiere partie celle qe j ai mi en rouge qui est la déclaration des tables internes. ce que je comprends pas c'est que j'ai exécuter le prog en les mettant en commentaire et le prog fonctionne ???
Et peut on m'expliquer les déclaration de l'alv objet et l'alv grid classique ?
Et j'aimerai savoir à quoi sert la déclaration de c'est 2 tables internes (mis en bleu ) alors qu'il y a déja eu des déclarations de tables internes plus haut.
PS: ce code est un exemple que j ai récupéré sur un site et j'essaie de le comprendre
Ceci est un INCLUDE de DATA
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
36DATA: i_pa0001 TYPE TABLE OF pa0001. DATA: s_pa0001 LIKE pa0001. TYPES: BEGIN OF t_data, pernr LIKE pa0001-pernr, bukrs LIKE pa0001-bukrs, werks LIKE pa0001-werks, btrtl LIKE pa0001-btrtl, END OF t_data. DATA: i_data TYPE TABLE OF t_data. * Affichage ALV grid Objet ********************************** DATA: alviewer TYPE REF TO cl_gui_alv_grid. DATA: go_alv TYPE REF TO cl_gui_alv_grid, * go_alv_eh TYPE REF TO lcl_alv_eh, go_container TYPE REF TO cl_gui_custom_container, gs_variant TYPE disvariant, gs_layout TYPE lvc_s_layo. DATA: gt_fcat TYPE lvc_t_fcat. DATA: s_restab TYPE zsrestab. DATA: i_restab TYPE STANDARD TABLE OF zsrestab. * Affichage ALV GRID Classique ******************************* TYPE-POOLS : slis. DATA: fieldcat TYPE slis_t_fieldcat_alv WITH HEADER LINE. data: IT_SORT TYPE SLIS_T_SORTINFO_ALV with header line.
Ceci est un INCLUDE pour les routines
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367*&---------------------------------------------------------------------* *& Form F1_LECTURE_DONNEES *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* FORM f1_lecture_donnees . *Charger l'IT0001 SELECT * FROM pa0001 INTO CORRESPONDING FIELDS OF TABLE i_restab WHERE pernr = '283'. ENDFORM. " F1_LECTURE_DONNEES *&---------------------------------------------------------------------* *& Form EDITION_ALV_OBJET *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* FORM edition_alv_objet . CALL SCREEN 100. ENDFORM. " EDITION_ALV_OBJET *&---------------------------------------------------------------------* *& Module init_scr_100 OUTPUT *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* MODULE init_scr_100 OUTPUT. * Ce module se charge d'afficher le resultat dejà extrait sous forme ALV PERFORM field_catalog. PERFORM create_alv_container. PERFORM create_alv_grid. PERFORM create_variant_event. PERFORM display_alv. ENDMODULE. " init_scr_100 OUTPUT *&---------------------------------------------------------------------* *& Form create_alv_container *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* FORM create_alv_container . CREATE OBJECT go_container EXPORTING container_name = 'ALV_GRID' EXCEPTIONS cntl_error = 1 cntl_system_error = 2 create_error = 3 lifetime_error = 4 lifetime_dynpro_dynpro_link = 5 OTHERS = 6. ENDFORM. " create_alv_container *&---------------------------------------------------------------------* *& Form field_catalog *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* FORM field_catalog . CALL FUNCTION 'LVC_FIELDCATALOG_MERGE' EXPORTING i_buffer_active = 'X' i_structure_name = 'ZSRESTAB' CHANGING ct_fieldcat = gt_fcat EXCEPTIONS inconsistent_interface = 1 program_error = 2 OTHERS = 3. ENDFORM. " field_catalog *&---------------------------------------------------------------------* *& Form create_alv_grid *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* FORM create_alv_grid . CREATE OBJECT go_alv EXPORTING * I_SHELLSTYLE = 0 * I_LIFETIME = i_parent = go_container * I_APPL_EVENTS = space * I_PARENTDBG = * I_APPLOGPARENT = * I_GRAPHICSPARENT = * I_NAME = * EXCEPTIONS * ERROR_CNTL_CREATE = 1 * ERROR_CNTL_INIT = 2 * ERROR_CNTL_LINK = 3 * ERROR_DP_CREATE = 4 * others = 5 . IF sy-subrc <> 0. * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO * WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. ENDIF. * CREATE OBJECT go_alv * EXPORTING * i_parent = go_container ** i_grid_id = p_gr idid ** i_toolbar_manager = p_tbm ** i_optimize_output = p_optim * EXCEPTIONS * error_cntl_create = 1 * error_cntl_init = 2 * error_cntl_link = 3 * error_dp_create = 4 * grid_id_invalid = 5 * OTHERS = 6. ENDFORM. " create_alv_grid *&---------------------------------------------------------------------* *& Form create_variant_event *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* FORM create_variant_event . * Variant-report has to be set otherwise saving of the toolbar * state is not possible gs_variant-report = sy-repid. ENDFORM. " create_variant_event *&---------------------------------------------------------------------* *& Form display_alv *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* FORM display_alv . CALL METHOD go_alv->set_table_for_first_display EXPORTING i_save = 'A' is_variant = gs_variant is_layout = gs_layout CHANGING it_outtab = i_restab it_fieldcatalog = gt_fcat EXCEPTIONS invalid_parameter_combination = 1 program_error = 2 too_many_lines = 3 OTHERS = 4. ENDFORM. " display_alv *&---------------------------------------------------------------------* *& Module STATUS_0100 OUTPUT *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* MODULE status_0100 OUTPUT. SET PF-STATUS 'ZSSA'. SET TITLEBAR 'ZSSA'. ENDMODULE. " STATUS_0100 OUTPUT *&---------------------------------------------------------------------* *& Module USER_COMMAND_0100 INPUT *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* MODULE user_command_0100 INPUT. CASE sy-ucomm. WHEN 'EXIT'. LEAVE PROGRAM. WHEN 'CANCEL'. LEAVE TO SCREEN 0. WHEN 'BACK'. LEAVE TO SCREEN 0. ENDCASE. ENDMODULE. " USER_COMMAND_0100 INPUT *&---------------------------------------------------------------------* *& Form EDITION_ALV_GRID *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* form EDITION_ALV_GRID . * fieldcatalog for revi-information CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE' EXPORTING i_program_name = sy-repid i_internal_tabname = 'I_RESTAB' i_structure_name = 'ZSRESTAB' I_CLIENT_NEVER_DISPLAY = 'X' CHANGING ct_fieldcat = fieldcat[] EXCEPTIONS inconsistent_interface = 1 program_error = 2 OTHERS = 3. CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' EXPORTING * I_INTERFACE_CHECK = ' ' * I_BYPASSING_BUFFER = ' ' * I_BUFFER_ACTIVE = ' ' * I_CALLBACK_PROGRAM = ' ' * I_CALLBACK_PF_STATUS_SET = ' ' * I_CALLBACK_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 = fieldcat[] * IT_EXCLUDING = * IT_SPECIAL_GROUPS = IT_SORT = it_sort[] * IT_FILTER = * IS_SEL_HIDE = * I_DEFAULT = 'X' * I_SAVE = ' ' * IS_VARIANT = * IT_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 * IT_ALV_GRAPHICS = * IT_HYPERLINK = * IT_ADD_FIELDCAT = * IT_EXCEPT_QINFO = * I_HTML_HEIGHT_TOP = * I_HTML_HEIGHT_END = * IMPORTING * E_EXIT_CAUSED_BY_CALLER = * ES_EXIT_CAUSED_BY_USER = TABLES t_outtab = i_restab * 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. " EDITION_ALV_GRID *&---------------------------------------------------------------------* *& Form EDITION_CLASSIQUE *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* form EDITION_CLASSIQUE . * fieldcatalog for revi-information CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE' EXPORTING i_program_name = sy-repid i_internal_tabname = 'I_RESTAB' i_structure_name = 'ZSRESTAB' I_CLIENT_NEVER_DISPLAY = 'X' CHANGING ct_fieldcat = fieldcat[] EXCEPTIONS inconsistent_interface = 1 program_error = 2 OTHERS = 3. CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY' EXPORTING * i_callback_program = sy-repid * i_callback_pf_status_set = 'SET_PF_STATUS' * i_callback_user_command = 'USER_COMMAND_DETAILLISTE' * I_STRUCTURE_NAME = * is_layout = layout it_fieldcat = fieldcat[] * IT_EXCLUDING = * IT_SPECIAL_GROUPS = IT_SORT = it_sort[] * IT_FILTER = * IS_SEL_HIDE = * i_default = 'X' * i_save = 'A' * is_variant = variante * it_events = events[] * it_event_exit = self_ucomm[] "1999/10/01 * IS_PRINT = * I_SCREEN_START_COLUMN = 0 * I_SCREEN_START_LINE = 0 * I_SCREEN_END_COLUMN = 0 * I_SCREEN_END_LINE = 0 * IMPORTING * E_EXIT_CAUSED_BY_CALLER = TABLES t_outtab = i_restab[] EXCEPTIONS program_error = 1 OTHERS = 2. endform. " EDITION_CLASSIQUE







Répondre avec citation
Partager