Explorar E-books
Categorias
Explorar Audiolivros
Categorias
Explorar Revistas
Categorias
Explorar Documentos
Categorias
Quase todos ns estamos bem cientes de ALVs com uma coluna editvel . Se
perguntado sobre uma linha editvel , podemos ver caras perplexas. Embora o
conceito tenha sido discutido em diferentes fruns muitas vezes antes, nenhum
cdigo inteiro foi encontrado para implementar isso em movimento . A discusso a
seguir explicar dentro e fora da criao de um ALV com linhas
editveis . Alm disso, encontre todo o cdigo de trabalho no final, que pode ser
baixado e reutilizado.
Requerimento
Programa de Construo
internas Nota -
LS_STYLEROW e LT_STYLEROW so usados para manter as informaes de
estilo que vamos criar mais tarde neste artigo.
4. Implementao da classe
No s voc tem que tornar os campos editveis, mas tambm ter que cuidar
de desabilitar se a condio de edio no for atendida.
Agora voc deve ser bom com a funcionalidade de linha editvel . Vamos para
o corpo bsico do nosso programa.
1
2 *&-------------------------------------------------------------------*
3 *& S E L E C T I O N S C R E E N
4 *&-------------------------------------------------------------------*
5 selection-screen: begin of block B1 with frame title text-001.
6 select-options: s_ebeln for ekko-ebeln.
7 selection-screen: end of block B1.
6. Incio da seleo
1
2 *&-------------------------------------------------------------------*
3 *& S T A R T O F S E L E C T I O N
4 *&-------------------------------------------------------------------*
5 start-of-selection.
6 perform fetch_data.
7 call screen 0100.
Crie uma sub-rotina para obter os dados bsicos para a exibio da grade. A
lgica de fluxo para a tela personalizada criada parecer abaixo.
Tela de seleo
Tela da lista
Clique em qualquer documento de compras na na tela da lista e volte para o
relatrio. Voc deve poder editar todas as linhas associadas do documento de
compras.
Tentei com outro nmero de servio e funcionou perfeitamente!
Leitura adicional
Leitura adicional
1
2 *&---------------------------------------------------------------------*
3 *& Module USER_COMMAND_0100 INPUT
4 *&---------------------------------------------------------------------*
5 * Process After Input and Back,Exit and Cancel logic
6 *----------------------------------------------------------------------*
7
8 MODULE USER_COMMAND_0100 INPUT.
9
10 if sy-ucomm = 'E'.
11
12 leave to screen 0.
13
14 elseif sy-ucomm = 'ENDE'.
15
16 leave to screen 0.
17
18 elseif sy-ucomm = 'ECAN'.
19
20 leave to screen 0.
21
22 elseif sy-ucomm = 'SPOS'.
23
24 * When save trigger this section
25 ref_ag->check_changed_data(
26
27 importing e_valid = c_valid ).
28
29 if c_valid eq abap_true.
30
31 *Check the data change
32
33 if lt_final_old[] NE lt_final[].
34
35 LOOP AT lt_final into ls_final.
36
37 read table lt_final_old into ls_final_old index sy-tabix.
38
39 if ls_final_old ne ls_final.
40
41 append ls_final to t_final.
42
43 endif.
44
45 ENDLOOP.
46
47 *Any table update should be handled here
48
49 *Create the ALV to show the final data updated
50
51 TRY.
52
53 CALL METHOD CL_SALV_TABLE=>FACTORY
54 IMPORTING
55 R_SALV_TABLE = ref_salv
56 CHANGING
57 T_TABLE = t_final.
58
59 CATCH CX_SALV_MSG .
60 ENDTRY.
61
62 *Display the final updated table
63 ref_salv->display( ).
64
65 leave to screen 0.
66
67 endif.
68
69 endif.
70
71 endif.
72
73 ENDMODULE. " USER_COMMAND_0100 INPUT
O resultado final depois de incorporar esta operao ser algo como abaixo.
O usurio ir editar algo na sada ALV (eu mudei o 'Material' como WL-test e
DG-test).