" Agora que nós sabemos fazer uma 'function vamos agora aprender a trabalhar
" com elas, (caso não saiba http://abapjuniores.blogspot.com/2011/04/funcao-basico.html)
" vou usar de exemplo uma função chamada SAPGUI_PROGRESS_INDICATOR,
" que uma função standard que serve para interação com o usuário informando
" em qualquer parte do processo um texto na barra inferior esquerdo,
" primeiro como sempre colocar essa 'function dentro de um Perform, no caso
" dessa 'Function usaremos o 'Using no Perform pq dependendo do processo o
" texto vai mudar. Dentro do 'Form clicar no botão 'MODELO' que fica ao lado
" do 'Pretty Printer' e nele abrirá um campo com a descrição de 'Call Function
" coloque o nome da função standart ou criado e aperte 'Enter.
" Assim é mais fácil porque ele mostra todas as variáveis onde as
" opcionais estão comentadas e ai e só descomentar e relacionar ela com
" alguma variável ou qualquer outra coisa que tenha o valor requerido ou
" até mesmo o proprio valor.
report zmj_func_001.
" Tabelas .....
tables : bsak
.
" Tipos .....
types :
begin of ty_bsak,
bukrs type bsak-bukrs, " Empresa
lifnr type bsak-lifnr, " Nº conta do fornecedor
augdt type bsak-augdt, " tabela de contabilidade
end of ty_bsak
.
" Estruturas ....
data : st_bsak type ty_bsak
.
" Tabelas internas .....
data : it_bsak type table of ty_bsak
.
" Constantes .....
constants : c_re(2) type c value 'RE'.
" Tela de seleção ....
SELECTION-SCREEN BEGIN OF BLOCK b01 WITH FRAME TITLE text-001.
SELECT-OPTIONS: so_bukrs FOR bsak-bukrs no intervals " Empresa
.
SELECTION-SCREEN END OF BLOCK b01.
" Initialization ....
perform seleciona_dados.
*&---------------------------------------------------------------------*
*& Form SELECIONA_DADOS
*&---------------------------------------------------------------------*
form SELECIONA_DADOS .
perform SAPGUI_PROGRESS_INDICATOR using 'Processo 1'.
* Seleciona os dados da tabela 'BSAK e coloca na tabela interna 'IT_BSAK
* conforme criterios de seleção pela tela.
SELECT bukrs " Empresa
lifnr " Nº conta do fornecedor
augdt " Data de compensação
FROM bsak " tabela de contabilidade
INTO TABLE it_bsak " Tabla Interna
WHERE bukrs IN so_bukrs " Empresa
AND blart = c_re. " Tipo de documento
endform. " SELECIONA_DADOS
*&---------------------------------------------------------------------*
*& Form SAPGUI_PROGRESS_INDICATOR
*&---------------------------------------------------------------------*
form SAPGUI_PROGRESS_INDICATOR using p_process.
CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
EXPORTING
PERCENTAGE = 10 " Velo do reloginho em %
TEXT = p_process " Texto que aparecerá
.
endform. " SAPGUI_PROGRESS_INDICATOR
" Agora é soh executar e ver a mensagem que a aparece na barra inferior,
" eu uso ele principalmente quando o código tem varios processos e quero
" ver oq o programa tah fazendo...
" Espero que tenham entendido até o proximo Post.