Escolar Documentos
Profissional Documentos
Cultura Documentos
1 de 5
http://abapando.wordpress.com/2011/12/13/exemplo-alv-hierarquico-...
REPORT zac2003_g01_alvhierarq .
TYPE-POOLS slis.
***Tabelas Transparentes***
TABLES: ekko, ekpo.
***************************
*****Tabelas Internas******
" configuracao geral da saida do relatorio
DATA: s_layout
TYPE slis_layout_alv,
s_print
TYPE slis_print_alv, "impressora
s_sort
TYPE slis_t_sortinfo_alv WITH HEADER LINE, "ordenacao
" formatacao dos campos e a saida deles no
" relatorio
s_keyinfo
TYPE slis_keyinfo_alv,
s_fieldcat TYPE slis_t_fieldcat_alv WITH HEADER LINE.
DATA: BEGIN OF it_ekpo OCCURS 0,
ebeln LIKE ekpo-ebeln,
ebelp LIKE ekpo-ebelp,
txz01 LIKE ekpo-txz01,
matnr LIKE ekpo-matnr,
menge LIKE ekpo-menge,
netpr LIKE ekpo-netpr,
netwr LIKE ekpo-netwr,
box
LIKE ptrv_approval-box,
END OF it_ekpo,
BEGIN OF it_ekko OCCURS 0,
ebeln LIKE ekko-ebeln,
lifnr LIKE ekko-lifnr,
box
LIKE ptrv_approval-box,
END OF it_ekko.
********Variaveis*********
DATA: v_repid
LIKE sy-repid,
v_variant
LIKE disvariant,
v_def_variant
LIKE disvariant, "valor default
v_variant_exit(1) TYPE c,
v_variant_def(1)
TYPE c,
"valor default
v_variant_save(1) TYPE c,
"valor q foi salvo
"string de 30 vindo da slis
s_box_name
TYPE slis_fieldname VALUE 'BOX'.
**************************
*----------------------------------------------------------------------*
* Tela de seleo
*----------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK lot WITH FRAME TITLE text-001.
SELECT-OPTIONS:
s_ebeln FOR ekko-ebeln OBLIGATORY. " Pedido de compra
SELECTION-SCREEN ULINE.
PARAMETERS p_vari LIKE disvariant-variant.
SELECTION-SCREEN END OF BLOCK lot.
************************************************************************
INITIALIZATION.
***************************INICIALIZATION*******************************
PERFORM zf_inicializar.
***********search help para variant***********
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_vari.
PERFORM zf_f4_para_variant.
**********************************************
***********tratar variante informada***************
PERFORM zf_tratar_variant.
***************************************************
02/06/2014 20:17
2 de 5
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
http://abapando.wordpress.com/2011/12/13/exemplo-alv-hierarquico-...
02/06/2014 20:17
3 de 5
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
http://abapando.wordpress.com/2011/12/13/exemplo-alv-hierarquico-...
p_vari = v_def_variant-variant.
ENDIF.
ENDIF.
ENDFORM.
" zf_f4_para_variant
*&---------------------------------------------------------------------*
*&
Form zf_tratar_variant
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
FORM zf_tratar_variant.
IF NOT
MOVE
MOVE
CALL
p_vari IS INITIAL.
v_variant TO v_def_variant.
p_vari TO v_def_variant-variant.
FUNCTION 'REUSE_ALV_VARIANT_EXISTENCE'
EXPORTING
i_save
= v_variant_save
CHANGING
cs_variant = v_def_variant.
v_variant = v_def_variant.
*
P_TXTVAR = VARIANTE-TEXT.
ELSE.
CLEAR v_variant.
v_variant-report = v_repid.
ENDIF.
ENDFORM.
" zf_tratar_variant
*&---------------------------------------------------------------------*
*&
Form zf_selecao
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
FORM zf_selecao.
SELECT ebeln lifnr
FROM ekko
INTO TABLE it_ekko
WHERE ebeln IN s_ebeln.
IF sy-subrc = 0.
SELECT ebeln ebelp txz01 matnr menge netpr netwr
FROM ekpo
INTO TABLE it_ekpo
FOR ALL ENTRIES IN it_ekko
WHERE ebeln = it_ekko-ebeln.
ENDIF.
ENDFORM.
" zf_selecao
*&---------------------------------------------------------------------*
*&
Form zf_definir_layout
*&---------------------------------------------------------------------*
*----------------------------------------------------------------------*
FORM zf_definir_layout.
s_layout-colwidth_optimize = 'X'.
s_layout-zebra = 'X'.
s_layout-box_fieldname = s_box_name.
s_layout-box_tabname
= 'IT_EKPO'.
s_layout-box_tabname
= 'IT_EKKO'.
s_layout-window_titlebar = 'EXERCICIO ALV HIERARQUICO'." Mud na barra
ENDFORM.
" zf_definir_layout
*&---------------------------------------------------------------------*
*&
Form zf_definir_sortinfo
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
FORM zf_definir_sortinfo.
REFRESH s_sort.
s_sort-spos
s_sort-fieldname
s_sort-up
s_sort-tabname
=
=
=
=
'01'.
" Sequncia de ordenao
'EBELN'.
'X'.
'IT_EKKO'.
02/06/2014 20:17
4 de 5
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
s_sort-fieldname
s_sort-up
s_sort-tabname
http://abapando.wordpress.com/2011/12/13/exemplo-alv-hierarquico-...
= 'EBELN'.
= 'X'.
= 'IT_EKKO'.
APPEND s_sort.
ENDFORM.
" zf_definir_sortinfo
*&---------------------------------------------------------------------*
*&
Form zf_definir_fieldcat
*&---------------------------------------------------------------------*
FORM zf_definir_fieldcat.
REFRESH s_fieldcat.
clear s_fieldcat.
s_fieldcat-fieldname
s_fieldcat-tabname
s_fieldcat-ref_tabname
*
s_fieldcat-checkbox
*
s_fieldcat-input
s_fieldcat-key
s_fieldcat-col_pos
append s_fieldcat .
= 'EBELN'.
= 'IT_EKKO'.
= 'EKKO'.
= 'X'.
= 'X'.
= 'X'.
= '1'.
clear s_fieldcat.
s_fieldcat-fieldname
s_fieldcat-tabname
s_fieldcat-ref_tabname
s_fieldcat-key
s_fieldcat-col_pos
append s_fieldcat .
= 'LIFNR'.
= 'IT_EKKO'.
= 'EKKO'.
= 'X'.
= '1'.
.
*Definindo est box,no podemos passa key = X p/prximo campo
clear s_fieldcat.
s_fieldcat-fieldname
= 'BOX'.
s_fieldcat-tabname
= 'IT_EKPO'.
s_fieldcat-ref_tabname
= 'PTRV_APPROVAL'.
s_fieldcat-checkbox
= 'X'.
s_fieldcat-input
= 'X'.
s_fieldcat-col_pos
= '1'.
append s_fieldcat.
clear s_fieldcat.
s_fieldcat-fieldname
s_fieldcat-tabname
s_fieldcat-ref_tabname
s_fieldcat-col_pos
s_fieldcat-row_pos
* fieldcat-key
append s_fieldcat .
Campos Chaves
clear s_fieldcat.
s_fieldcat-fieldname
s_fieldcat-tabname
s_fieldcat-ref_tabname
s_fieldcat-col_pos
* fieldcat-row_pos
append s_fieldcat.
=
=
=
=
=
=
'EBELP'.
'IT_EKPO'.
'EKPO'.
'2'.
'1'.
'X'.
Campos Chaves
clear s_fieldcat.
s_fieldcat-fieldname
s_fieldcat-tabname
s_fieldcat-ref_tabname
s_fieldcat-col_pos
* fieldcat-do_sum
append s_fieldcat .
= 'MATNR'.
= 'IT_EKPO'.
= 'EKPO'.
= '3'.
= '1'.
clear s_fieldcat.
s_fieldcat-fieldname
s_fieldcat-tabname
s_fieldcat-ref_tabname
s_fieldcat-no_out
append s_fieldcat .
clear s_fieldcat.
= 'MENGE'.
= 'IT_EKPO'.
= 'EKPO'.
= '4'.
= 'X'.
=
=
=
=
'NETWR'.
'IT_EKPO'.
'EKPO'.
'X'.
02/06/2014 20:17
5 de 5
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
s_fieldcat-no_out
append s_fieldcat .
http://abapando.wordpress.com/2011/12/13/exemplo-alv-hierarquico-...
= 'X'.
clear s_fieldcat.
s_fieldcat-fieldname
s_fieldcat-tabname
s_fieldcat-ref_tabname
s_fieldcat-no_out
append s_fieldcat .
=
=
=
=
'NETPR'.
'IT_EKPO'.
'EKPO'.
'X'.
clear s_fieldcat.
s_fieldcat-fieldname
s_fieldcat-tabname
s_fieldcat-ref_tabname
s_fieldcat-no_out
append s_fieldcat .
=
=
=
=
'TXZ01'.
'IT_EKPO'.
'EKPO'.
'X'.
ENDFORM.
" zf_definir_fieldcat
*&---------------------------------------------------------------------*
*&
Form zf_mostrar
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM zf_mostrar.
DATA: l_repid LIKE sy-repid.
*
*
*
*
*
*
*
ENDFORM.
" zf_mostrar
*&---------------------------------------------------------------------*
*&
Form zf_definir_relacionamento
*&---------------------------------------------------------------------*
FORM zf_definir_relacionamento.
s_keyinfo-header01 = 'EBELN'.
s_keyinfo-item01
= 'EBELN'.
ENDFORM.
" zf_definir_relacionamento
02/06/2014 20:17