ALV OO

4
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 nós precisamos definir as caraterísticas 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 cabeçalhos 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 referência de cada coluna, o alinhamento do conteúdo de cada célula, o tipo de cada célula e texto que irá aparecer no cabeçalho de cada coluna.

description

Criando Um ALV OO

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.