domingo, 4 de março de 2012

Criando o 3° programa em ABAP

Neste post vamos dar um pouco de cores.

Conforme no primeiro post "Criando 1° programa em ABAP", entre na transação SE80, digite o nome do programa "ZCURSO3".




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,
      v_onof(2)        type c.

3)    Usar a tabela

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,
        nascimento     type d,
      end of i_tab.

Carregar uma tabela conforme modelo
v_nome           = 'Fulano'.
v_sobrenome      = 'de Tal'.

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

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

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

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

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

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


Efetuar um sort por DEPTO NOME SOBRENOME.
* para efeito de impressão
Setar o campo V_ONOF = 'nn'.

Fazer um loop e usar os recursos do comando
AT – usar

  at first.
    format color 6 intensified on.
    write: / 'altom '.
    format reset.
    skip.
  endat.

·         exemplo do cores e quebras

at new depto.
     sum.
     format color 4 intensified on.
     write: /001 'departamento:',015 i_tab-depto,090(1) space.
     skip.
     format reset.
  endat.

if v_onof = 'nn'.
    format color 2 intensified on.
    v_onof = 'ff'.
 else.
    format color 2 intensified off.
    v_onof = 'nn'.
 endif.

4)    Emitir listagem com os totais observem que a cada impressão vamos mudar o tipo de cor ou intensidade.


report zanj no standard page heading line-size 90
                                     line-count 60.

*------------------------------------------------------------*
* Programa Teste
*------------------------------------------------------------*

data: v_nome(20)       type c,
      v_sobrenome(20)  type c,
      v_onof(2)        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,
        nascimento     type d,
      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'.
i_tab-nascimento = '19690121'.
append i_tab.

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

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

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

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

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

clear i_tab.

sort i_tab by depto nome sobrenome.
v_onof = 'nn'.

loop at i_tab.
  at first.
    format color 6 intensified on.
    write: / 'Curso ABAP'.
    format reset.
    skip.
  endat.

  at new depto.
     sum.
     format color 4 intensified on.
     write: /001 'departamento:',015 i_tab-depto,090(1) space.
     skip.
     format reset.
  endat.

 if v_onof = 'nn'.
    format color 2 intensified on.
    v_onof = 'ff'.
 else.
    format color 2 intensified off.
    v_onof = 'nn'.
 endif.

  write: /001 i_tab-nascimento,  020 i_tab-nome,
          035 i_tab-sobrenome,   074 i_tab-salario.
  format reset.

  at end of depto.
  sum.

  write: /064 '-----------------------------',
         /064 'total:    ' color 3 intensified on,
          074 i_tab-salario color 3 intensified on,
         /064 '-----------------------------'.
  endat.

  at last.
  sum.

  write: /064 '-----------------------------',
         /064 'geral:    ' color 3 intensified on,
          074 i_tab-salario color 3 intensified on,
         /064 '-----------------------------'.
  endat.
endloop.

top-of-page.

write: 001 text-001, 070 text-002,
       /001 text-008.
format reset.
uline.


O resultado é:



Nenhum comentário:

Postar um comentário