segunda-feira, 26 de março de 2012

ALV - OO ( Orientado a Objeto )

*&---------------------------------------------------------------------*
"  Eae Abapers, estarei mostrando como fazer uma ALV orientado a objeto
" da forma mais fácil e rápida, estarei atribuindo o ALV para um Custom
" control criado na tela 9001.
" Não lembra como criar uma tela, veja um dos passos do link abaixo.
" http://abapjuniores.blogspot.com.br/2011/04/module-pool-basico.html

"  Me perguntaram isso no email e não respondi por falta de tempo, como
" meio de desculpa eu estou postando a resposta agora, espero que ajude,

REPORT  z_alv_oo.

* Tabelas Transparentes
TABLES:
  mara.

* Tabela Interna
DATA :
  it_mara   TYPE TABLE OF mara,
  st_layout TYPE lvc_s_layo.

* Objetos
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_custom_container.

* tela de seleção
SELECTION-SCREEN BEGIN OF BLOCK b1.
SELECT-OPTIONS :
* Código do material
  s_matnr FOR mara-matnr.
SELECTION-SCREEN END   OF BLOCK b1.

* Inicio do processo
START-OF-SELECTION.
* Tela do ALV.
  CALL SCREEN 9001.

* Fim do processo
END-OF-SELECTION.

sexta-feira, 23 de março de 2012

Função - DAY_ATTRIBUTES_GET

*  Irei mostrar hoje a função 'DAY_ATTRIBUTES_GET' que retorna uma tabela
* muito interessante que mostra todos os atributos diários em um certo
* intervalo de tempo, dá pra faze muita coisa com estes dados de retorno
* dá pra faze calendário, rotina de apontamento, agenda, um monte de
* coisa só depende de quanto você gosta de brincar com ABAP

REPORT z_day_attributes_get.

* Declaração
DATA :
  vg_newdate TYPE sy-datum,
  it_day_atr TYPE TABLE OF casdayattr,
  st_day_atr TYPE casdayattr.

* Tela de seleção
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME.
SELECT-OPTIONS:
  so_peri FOR sy-datum.
PARAMETERS:
  p_langu    TYPE scal-fcalid DEFAULT 'BR'.
SELECTION-SCREEN END   OF BLOCK b1.


START-OF-SELECTION.

  PERFORM : f_day_attributes,
            f_show.

quarta-feira, 21 de março de 2012

UNPACK, PACK e CONDENSE

*  Fala galera vou postar hoje um negocio que ajuda muito na hora de
* trabalhar com alimentação de variáveis, paramentros de funções e na
* hora de  mostra os dados fica um pouco mais bonito também, são os
* famosos 'UNPACK', 'PACK' e 'CONDENSE', está tudo comentado no código.

REPORT z_unpack_pack_condense.

* Declarações
DATA :
  texto10(10),
  texto5(5).

BREAK-POINT.

texto10 '1234'.
texto5  '1234'.

* Adiciona 0's a esquerda até completa o variavel por inteiro.
UNPACK texto10 TO texto10.
UNPACK texto5 TO texto5.

write : 'UNPACK ', TEXTO10,/
          'UNPACK ', TEXTO5,/.
BREAK-POINT.

* Tira os 0's a esquerda mas mantêm os dados orientados a direita.
PACK texto10 TO texto10.
PACK texto5 TO texto5.

write : 'PACK    ', TEXTO10,/
          'PACK    ', TEXTO5,/.
BREAK-POINT.

* Tira os espaços vazios da variável.
CONDENSE texto10.
CONDENSE texto5.

write : 'CONDENSE ', TEXTO10,/
          'CONDENSE ', TEXTO5,/.
BREAK-POINT.

terça-feira, 20 de março de 2012

Função - CCM_GO_BACK_MONTHS

*  Pra prova que o ABAP tem função pra tudo, hoje vou mostrar uma função
* que retorna o mês conforme a quantidade de meses que quiser voltar a partir
* data informada.

REPORT z_ccm_go_back_months.

* Declaração
DATA :
  vg_newdate TYPE sy-datum.

* Executa função
CALL FUNCTION 'CCM_GO_BACK_MONTHS'
     EXPORTING
          currdate   = sy-datum "Data Atual do Sistema
          backmonths = '010'    "Qtde de meses pra voltar
     IMPORTING
          newdate    = vg_newdate. "Data de retorno

IF sy-subrc <> 0.
  EXIT.
ENDIF.

BREAK-POINT.

domingo, 18 de março de 2012

Chamando Perform de outro Programa

*  Opa pessoal, vou mostrar hoje uma técnica usado bastante em programas
* standards que é usar performs de outros programas como se fosse uma 
* função, eu vou usar um simples pra vocês pegarem o conceito depois é 
* só ir pro abraço, assim vc não vai precisar fazer a mesma rotina pra
* varios programas, a idéia é fazer em um programa e depois utilizar o 
* mesmo perform pros outros programas.
*&---------------------------------------------------------------------*
*&    Programa 1
*&---------------------------------------------------------------------*
REPORT zprogram_001.
DATA :
  v_value
(6TYPE c.

v_value 
'000123'.
BREAK-POINT.
PERFORM f_trata_numero CHANGING v_value.
*&---------------------------------------------------------------------*
*&      Form  f_trata_numero
*&---------------------------------------------------------------------*
FORM f_trata_numero CHANGING  valor.
* Tratativa do valor.
  
PACK valor TO valor.
  
condense valor.
break-point.
ENDFORM.                    " f_trata_numero

quinta-feira, 15 de março de 2012

Volta das Férias

Fala rapaziada esperta, voltei de ferias semana passada e ainda to meio no clima, pra vocês verem estou postando soh hoje, rsrsr, e pra explicar um bucado dos emails que recebi perguntando se eu tinha abandonado os ABAP' s Jr huahuahua, to de volta 100% descansado e pronto pra mais posts, tenho bastante material pronto e começarei a postar a partir de amanhã, estou muito feliz com a quantidade de curriculos que recebi e já repassei todos...... Estarei respondendo mais rápido possível sobre as dúvidas enviadas ( se ainda tiverem ) e vamo que vamo.. t+

quinta-feira, 16 de fevereiro de 2012

SapScript - Passo a Passo - 2

"  Opa, Demorou mas chegou, aqui está o post restante de como fazer uma
" Sapscript, continuação do link abaixo:
http://abapjuniores.blogspot.com/2012/02/sapscript-passo-passo-1.html
"  Primeiramente iremos colocar códigos dentro das janelas da pagina
" principal que são a 'MAIN' e a 'WINDOW1', clicando no botão em destaque
" na imagem abaixo, agora o bixo vai pega. rsrs to brincando rs.



sexta-feira, 3 de fevereiro de 2012

SapScript - Passo a Passo - 1

"  Fala galera, seja bem vindos a um dos temas mais cabeludos postados aqui
" no Blog, Iremos falar de Sapscript.... tem muita gente, Nova e velha de
" ABAP que quando escuta essa palavra já começa a soar frio rsrs... vou fala
" a verdade trabalhei muito pouco com isso pois hoje quando falamos de criação
" de formulários já pensamos em Smartforms ( Será tema nos proximos Posts ),
" mas quando escutamos manutenção de formulários , aih sim pensamos em
" Sapscript que nada mais é uma forma antiga de fazer formularios como notas,
" documentos padrões e etc, agora estarei passando como fazer um Passo a passo.
"  Como sempre falo e não tenho vergonha, qualquer besteira que eu falar, por
" favor comentem para aprendermos juntos.

"  Vamos começa então.... primeiramente vamos para a transação 'SE71' e prencher
" o campo conforme abaixo, se não for problema vamos tentar trabalhar com a mesma
" nomenclatura senão a gente pode se confundir, pois temos muitas telas e imagens
" ainda, sem conta o Código fonte que vou fazer depois.