*&---------------------------------------------------------------------*
" 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.
segunda-feira, 26 de março de 2012
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.
* 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.
* 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.
* 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(6) TYPE 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
* 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(6) TYPE 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.
" 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.
Assinar:
Postagens (Atom)