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


*&---------------------------------------------------------------------*
*&    Programa 2
*&---------------------------------------------------------------------*
REPORT zprogram_002.
DATA :
  v_variavel
(8TYPE c.

v_variavel 
'00000010'.
BREAK-POINT.
*  Aqui que tá o pulo do gato.... reparem que o nome do programa 'DONO'
* do perform (zmauro), aparece do lado do perform (f_trata_numero).
*  Outra coisa importante de perceber é que a variáveis são diferentes
* entre os programas mas mesmo assim funciona.
PERFORM f_trata_numero(zprogram_001CHANGING v_variavel.
BREAK-POINT.
*  Isso é dahora, mas não trabalhem com isso se não souberem bem o que
* estão fazendo, pois a rotina que você está pegando de outro programa
* pode retornar o que você quer mas no meio do processo ele pode
* modificar algo que não tem nada a ver com o que você está fazendo,
* portanto é melhor usar uma função mesmo, mas tá aí uma ferramenta
* legalzinha.
Comentários
0 Comentários

Nenhum comentário:

Postar um comentário