domingo, 4 de março de 2012

Criando o 2° programa em ABAP

Seguindo o mesmo conceito do post anterior, SE80, nome do programa "ZCURSO2"...

Segue o código.



1)    Criar uma tabela com exibir os dados na tela

2)    Usar os campos: * Programa Teste

DATA: V_NOME(20)       TYPE C,
      V_SOBRENOME(20)  TYPE C.

3)    Usar a tabela

DATA: BEGIN OF I_TAB OCCURS 10,
        CONTADOR       LIKE SY-TABIX,
        NOME(20)       TYPE C,
        SOBRENOME(20)  TYPE C,
        SALARIO        TYPE P DECIMALS 2,
      END OF I_TAB.

4)    Carregar uma tabela com o campo de contador e imprimir os dados

v_nome          = 'Fulano'.
v_sobrenome     = 'de Tal'.

i_tab-nome      = 'KATIA'.
i_tab-sobrenome = 'ALVES'.
i_tab-salario   = 10000.
i_tab-depto     = 'treinamento'.
append i_tab.

i_tab-nome      = 'ELVISE'.
i_tab-sobrenome = 'BRESCIANI'.
i_tab-salario   = 20000.
i_tab-depto     = 'informatica'.
append i_tab.

i_tab-nome      = 'CRISTIANE'.
i_tab-sobrenome = 'CAETANO VELOZO'.
i_tab-salario   = 200000.
i_tab-depto     = 'treinamento'.
append i_tab.

i_tab-nome      = 'SERGIO'.
i_tab-sobrenome = 'KRÜGER'.
i_tab-salario   = 50000.
i_tab-depto     = 'treinamento'.
append i_tab.

i_tab-nome      = 'ALTAMIR'.
i_tab-sobrenome = 'NUNES JUNIOR'.
i_tab-salario   = 100000.
i_tab-depto     = 'treinamento'.
append i_tab.

i_tab-nome      = 'TARCISIO'.
i_tab-sobrenome = 'MEIRA'.
i_tab-salario   = -200.
i_tab-depto     = 'treinamento'.
append i_tab.

Efetuar um sort  por   DEPTO NOME SOBRENOME.
Fazer um loop e usar os recursos do comando
AT - usar
AT NEW DEPTO. Sumarizar os valores
AT END OF DEPTO.
AT LAST.

5)    Emitir listagem com os totais


REPORT ZCURSO2 NO STANDARD PAGE HEADING LINE-SIZE 90
                                     LINE-COUNT 60.

*-----------------------------------------------------------*
* Programa Teste
*-----------------------------------------------------------*
data: v_nome(20)       type c,
      v_sobrenome(20)  type c.

data: begin of i_tab occurs 10,
        depto(15)      type c,
        contador       like sy-tabix,
        nome(20)       type c,
        sobrenome(20)  type c,
        salario        type p decimals 2,
      end of i_tab.

v_nome          = 'Fulano'.
v_sobrenome     = 'de Tal'.

i_tab-nome      = 'KATIA'.
i_tab-sobrenome = 'ALVES'.
i_tab-salario   = 10000.
i_tab-depto     = 'treinamento'.
append i_tab.

i_tab-nome      = 'ELVISE'.
i_tab-sobrenome = 'BRESCIANI'.
i_tab-salario   = 20000.
i_tab-depto     = 'informatica'.
append i_tab.

i_tab-nome      = 'CRISTIANE'.
i_tab-sobrenome = 'CAETANO VELOZO'.
i_tab-salario   = 200000.
i_tab-depto     = 'treinamento'.
append i_tab.

i_tab-nome      = 'SERGIO'.
i_tab-sobrenome = 'KRÜGER'.
i_tab-salario   = 50000.
i_tab-depto     = 'treinamento'.
append i_tab.

i_tab-nome      = 'ALTAMIR'.
i_tab-sobrenome = 'NUNES JUNIOR'.
i_tab-salario   = 100000.
i_tab-depto     = 'treinamento'.
append i_tab.

i_tab-nome      = 'TARCISIO'.
i_tab-sobrenome = 'MEIRA'.
i_tab-salario   = -200.
i_tab-depto     = 'treinamento'.
append i_tab.

clear i_tab.

sort i_tab by depto nome sobrenome.

loop at i_tab.
  at new depto.
     sum.
     write: /001 'departamento:',015 i_tab-depto.
             skip.
  endat.

  write: /001 i_tab-depto,     020 i_tab-nome,
          035 i_tab-sobrenome, 074 i_tab-salario.
*  uline.

  at end of depto.
  sum.
  write: /064 '-----------------------------',
         /064 'total:', 074 i_tab-salario,
         /064 '-----------------------------'.
  endat.

  at last.
  sum.
  write: /064 '-----------------------------',
         /064 'geral:', 074 i_tab-salario,
         /064 '-----------------------------'.
  endat.
endloop.

top-of-page.
* write: 'programa teste - Curso2', 070 'página:', sy-pagno.
write: text-001, 070 text-002, sy-pagno.
uline.


Resultado é:


Nenhum comentário:

Postar um comentário