quarta-feira, 28 de março de 2012

Split

"  Sabe quando vc quer uma parte da String até certo ponto do texto,
" isso pode ser resolvido facilmente usando um commando chamado
" 'SPLIT' que faz nada mais nada menos que quebrar o texto até o
" delimitador informado deletando o delimitador, usado bastante pra
" Batch Input e outras tratativas de string, olhem aaee.

REPORT z_split.

DATA : it_texto TYPE TABLE OF string.

DATA :
  v_texto TYPE string,
  v_t1 TYPE string,
  v_t2 TYPE string.

*&------Texto Inicial sem alteração------------------------------------*
v_texto 'Texto test2 pra ver s3 funciona'.

WRITE : 'Texto no começo :' , v_texto, / .
*&---------------------------------------------------------------------*

*&-----Texto sendo quebrado para duas variáveis------------------------*
SPLIT v_texto AT space INTO v_t1
                            v_t2.

WRITE : 'Texto enviado para duas variáveis : ',/
        'Variável 1: ', v_t1,/,
        'Variavel 2: ', v_t2,/.
*&---------------------------------------------------------------------*

*&-----Texto sendo quebrado para uma tabela de string------------------*
SPLIT v_texto AT space INTO TABLE it_texto.

LOOP AT it_texto INTO v_texto.

  IF sy-tabix 1.
    WRITE : 'Texto enviando para uma tabela :' , v_texto, /.
  else.
    WRITE : v_texto, / .
  ENDIF.

ENDLOOP.

BREAK-POINT.
*&---------------------------------------------------------------------*

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+