ALV OO
description
Transcript of ALV OO
-
Criando um ALV OO 1 Declare os objetos Container e ALV.
*--------------------------------------------------------------------* * Objetos: (O_...) *--------------------------------------------------------------------* DATA: * Referenciando o obejto 'O_ALV' com a classe de ALV. o_alv TYPE REF TO cl_gui_alv_grid, * Referenciando o objeto 'O_CONTAINER' com a classe de Container customizado. o_container TYPE REF TO cl_gui_docking_container.
2 Em seguida ns precisamos definir as caratersticas do ALV, como alinhamento de texto, eventos. Para isso iremos configurar o Fieldcat. Vamos declarar a seguinte tabela interna e work rea.
t_fieldcat TYPE TABLE OF lvc_s_fcat. wa_fieldcat TYPE slis_fieldcat_alv.
3 Agora precisamos definir a estrutura do nosso alv, ou seja, as colunas e cabealhos da coluna.
" Adiciona as colunas do ALV report. PERFORM f_add_fieldcat USING: "campo "alinhamento "icone "texto da coluna 'LINHA' c_centro '' text-001, 'EMPRESA' c_centro '' text-002, 'CDEBITO' c_centro '' text-003, 'LDEBITO' c_centro '' text-004, 'CCREDITO' c_centro '' text-005, 'LCREDITO' c_centro '' text-006, 'CENTRO' c_centro '' text-007, 'MONTCRED' c_direita '' text-008, "alinhado a direita 'MONTANTE' c_direita '' text-009, "alinhado a direita 'MENSAGEM' c_esquerda '' text-010, ""alinhado a esquerda 'STATUS' c_centro c_marc text-011. "cone.
Aqui definimos os campos de referncia de cada coluna, o alinhamento do contedo de cada
clula, o tipo de cada clula e texto que ir aparecer no cabealho de cada coluna.
-
FORM f_add_fieldcat USING p_campo TYPE lvc_s_fcat-ref_field
p_alinhamento TYPE lvc_s_fcat-just
p_icone TYPE lvc_s_fcat-icon
p_texto TYPE lvc_s_fcat-coltext.
"Work Areas Local
DATA wa_fcat TYPE lvc_s_fcat.
"Preenche estrutura do fieldcat.
wa_fcat-ref_field = p_campo .
wa_fcat-fieldname = p_campo .
wa_fcat-just = p_alinhamento.
wa_fcat-icon = p_icone .
wa_fcat-coltext = p_texto .
wa_fcat-ref_table = c_tab .
APPEND wa_fcat TO t_fieldcat.
CLEAR wa_fcat.
ENDFORM. " ADD_FIELDCAT
Observe a declarao DATA wa_fcat TYPE lvc_s_fcat. A estrutura lvc_s_fcat possui os campos com as caractersticas que utilizaremos para nosso ALV OO neste exemplo. Porm no existem somente estes tipos. Quando entramos na estrutura lvc_s_fcat
Podemos ver todos os tipos que podemos utilizar na passagem de parmetros do ALV.
-
A primeira coluna Campo indica o nome do campo que ser utilizado para referncia em nosso ALV OO. Lembre-se que esta coluna dever conter os nomes dos campos em caixa alta (maisculas). 4 - Em seguida vamos em Prepare before output PROCESS BEFORE OUTPUT.
MODULE STATUS_9000.
Entre no module 9000
Descomente as seguintes linhas.
SET PF-STATUS 'STATUS_9000'.
SET TITLEBAR 'MAIN'. Neste exemplo set pf-status nomeado como satatus_9000 e set titlebar como main, ambos em maisculas. 5 - Agora precisamos instanciar o objeto do tipo Container.
PERFORM f_cria_container.
FORM f_cria_container .
IF o_container IS INITIAL.
CREATE OBJECT o_container
EXPORTING
side = cl_gui_docking_container=>dock_at_top
repid = sy-repid
dynnr = sy-dynnr
extension = 1000
EXCEPTIONS
others = 6.
ENDIF.
ENDFORM.
6 - Em seguida criar o ALV PERFORM f_cria_alv
FORM f_cria_alv .
IF o_alv IS BOUND.
* Metodo da classe de alv atribuida ao objeto o_alv para limpar o obje
to.
o_alv->free( ).
ENDIF.
* Faz a criao do objeto do ALV passando o nome do Container que rec
eber
* o ALV
CREATE OBJECT o_alv
EXPORTING
i_parent = o_container.
-
* Alimenta a estrutura de Layout do alv.
PERFORM f_layout_alv.
Como o nome do perform diz, aqui configuramos o layout. Deixando a clula proporcional ao contedo e a saida zebrada. FORM f_layout_alv .
"Define a estrutura do layout do ALV.
wa_layout-cwidth_opt = c_marc.
wa_layout-zebra = c_marc.
ENDFORM.
* Exibe alv conforme seus parametros
CALL METHOD o_alv->set_table_for_first_display
EXPORTING
is_layout = wa_layout
CHANGING
it_fieldcatalog = t_fieldcat
it_outtab = t_saida.
ENDFORM.
A tabela de sada corresponde a tabela com o contedo que ser passado para o ALV.