TABLE CONTROL .
Table control ? Vc deve estar se perguntando mais oque é isso né. Então Galera nada mais do que um objeto para visualizar informações estilo uma planilha eletrônica.
CONCEITO BÁSICO.
O objeto Table control permite várias tipos de controle, como seleção de linhas e de colunas, ajustes de
largura e latitude.
Obs : usando o Table control vc não afeta a tabela Real, vc só manipula os dados de uma tabela interna.
No meu Caso eu eu manipulei dados quaisquer só para uso do exemplo do nosso programa.
CÓDIGO.
*&---------------------------------------------------------------------*
*& Report ZTABELA_ELETRONICA_FUN01
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
PROGRAM ZTABELA_ELETRONICA_FUN01.
*ZMJ_FUNC_LO01 "TABALE QUE VOU COLOCOR COMO INCLUDE
TYPE-POOLS: ICON,ABAP.
TYPES : BEGIN OF ZMJ_FUNC_LO01,
MARKED TYPE BOOLEAN,
ICON TYPE ICON.
INCLUDE STRUCTURE ZMJ_FUNC_LO01.
TYPES : END OF ZMJ_FUNC_LO01.
DATA : ITAB TYPE STANDARD TABLE OF ZMJ_FUNC_LO01 WITH KEY MARKED WITH HEADER LINE,
FCODE TYPE SY-UCOMM.
SELECT-OPTIONS: S_NOME FOR ITAB-NOME.
START-OF-SELECTION.
SELECT * INTO CORRESPONDING FIELDS OF TABLE ITAB[] FROM ZMJ_FUNC_LO01 WHERE ZMJ_FUNC_LO01~NOME IN S_NOME[].
CALL SCREEN '0100'.
END-OF-SELECTION.
"CRIANDO OS EVENTOS DA PLANILHA ELETRONICA COM O EVENTO PBO E PAI.
MODULE PBO OUTPUT.
CLEAR FCODE.
ENDMODULE.
MODULE PAI INPUT.
CASE FCODE.
WHEN 'DELETE'.
PERFORM FORM_DELETE.
WHEN 'UNDO'.
PERFORM FORM_UNDO.
ENDCASE.
ENDMODULE.
FORM FORM_DELETE.
DATA WA LIKE LINE OF ITAB[].
LOOP AT ITAB[] INTO WA WHERE MARKED EQ ABAP_TRUE AND ICON NE ICON_DELETE.
WA-ICON = ICON_DELETE.
MODIFY ITAB[] FROM WA TRANSPORTING ICON.
ENDLOOP.
ENDFORM.
FORM FORM_UNDO.
DATA WA LIKE LINE OF ITAB[].
LOOP AT ITAB[] INTO WA WHERE MARKED EQ ABAP_TRUE AND ICON EQ ICON_DELETE.
CLEAR WA-ICON.
MODIFY ITAB[] FROM WA TRANSPORTING ICON.
ENDLOOP.
ENDFORM.
*&SPWIZARD: DECLARATION OF TABLECONTROL 'TABLECONTROL' ITSELF
CONTROLS: TABLECONTROL TYPE TABLEVIEW USING SCREEN 0100.
*&SPWIZARD: OUTPUT MODULE FOR TC 'TABLECONTROL'. DO NOT CHANGE THIS LINE
*&SPWIZARD: UPDATE LINES FOR EQUIVALENT SCROLLBAR
MODULE TABLECONTROL_CHANGE_TC_ATTR OUTPUT.
DESCRIBE TABLE ITAB LINES TABLECONTROL-lines.
ENDMODULE.
*&SPWIZARD: INPUT MODUL FOR TC 'TABLECONTROL'. DO NOT CHANGE THIS LINE!
*&SPWIZARD: MARK TABLE
MODULE TABLECONTROL_MARK INPUT.
DATA: g_TABLECONTROL_wa2 like line of ITAB.
if TABLECONTROL-line_sel_mode = 1
and ITAB-MARKED = 'X'.
loop at ITAB into g_TABLECONTROL_wa2
where MARKED = 'X'.
g_TABLECONTROL_wa2-MARKED = ''.
modify ITAB
from g_TABLECONTROL_wa2
transporting MARKED.
endloop.
endif.
MODIFY ITAB
FROM ITAB
INDEX TABLECONTROL-CURRENT_LINE
TRANSPORTING MARKED.
ENDMODULE.
0 comentários:
Postar um comentário