Você está na página 1de 50

Módulo POOL ( ON LINE )

Aula 03

Criando Programas Module Pool (On-Line).

Entrar na transação SE80.

Escolha Programa e abaixo insira o nome do programa: ZMPxx_CADFUNC . Tecle ENTER.

Clique em Sim.

Desmarque a opção Com include TOP e clique em Ok.


Módulo POOL ( ON LINE )
2

No campo Tipo, altere para Pool de Módulos.


Módulo POOL ( ON LINE )
3

Clique em Gravar.
Módulo POOL ( ON LINE )
4

O código fonte do programa principal fica de acordo com a tela abaixo:

Para criar os includes, clique duplo encima do nome do objeto.


Módulo POOL ( ON LINE )
5

Clique em Sim para criar o include.

O mesmo pode ser feito com qualquer objeto dentro do ABAP.

Neste primeiro passo, criamos os Includes. Na barra de Objetos, temos a seguinte situação:

Ativar os objetos que foram criados:


Módulo POOL ( ON LINE )
6

Repositório do nosso Programa, ira ficar assim:

Dentro do include TOP, inserimos as tabelas que serão utilizadas no programa.

* Declaração de tabelas
TABLES: ztb01_cargo, "Cadastro de Cargo
        ztb01_depto, "Cadastro de Departamento
        ztb01_func.  "Cadastro de Funcionários

Ao salvar o include, automaticamente os objetos serão apresentados do lado esquerdo da tela:


Módulo POOL ( ON LINE )
7

Para criarmos a primeira tela, clique com o botão direito sobre o nome do programa
principal:

Criar  Tela:

Insira o número da tela:

Clique em Ok.
Módulo POOL ( ON LINE )
8

Clique agora em LógProcmto:


Módulo POOL ( ON LINE )
9

Descomete as linhas conforme acima.

Para criar o Module Status_0100, clique duplo encima do nome do objeto:

Clique em Sim.
Módulo POOL ( ON LINE )
10

Selecione o include PBO.


Módulo POOL ( ON LINE )
11

Descomente SET

Descomente as duas linhas propostas. Altere os textos conforme tela acima.

Para criar o STATUS_GUI, clique duplo em ‘TELA_0100’.

A seguinte tela será exibida:


Módulo POOL ( ON LINE )
12

Dar Enter

Dentro de Teclas de função, vamos ativar o botão Voltar:


Módulo POOL ( ON LINE )
13

Dentro de Barras de Menu:

Double click, para inserir Códigos:


Módulo POOL ( ON LINE )
14

Dentro de Barra de Ferramentas:

Ao teclar ENTER, a seguinte tela é exibida:

Selecione uma tecla de atalho e clique em OK.

Exemplo: F2
Módulo POOL ( ON LINE )
15

No botão Criar, digite as seguintes informações:

Clique em OK. Após concluída, temos a seguinte tela:

Clique em Voltar.
Módulo POOL ( ON LINE )
16

Para criar o titulo da tela 0100, clique duplo em TIT_0100.

Clique em Sim para a tela de criação de Objetos.

Clique em Ok para confirmar o Titulo da Janela.


Módulo POOL ( ON LINE )
17

Na lógica de processamento da tela 0100, vamos criar o Modulo USER_COMMAND_0100.

Clique duplo no nome do Objeto:

O user command será criado dentro do include PAI.


Módulo POOL ( ON LINE )
18

*&--------------------------------------------------------------------
-*
*&  Include           ZMP01_CADFUNC_PAI
*&--------------------------------------------------------------------
-*
*&--------------------------------------------------------------------
-*
*&      Module  USER_COMMAND_0100  INPUT
*&--------------------------------------------------------------------
-*
*       text
*---------------------------------------------------------------------
-*
MODULE user_command_0100 INPUT.

* Variável  de Sistema  SY-UCOMM -->  User Command


* Esta  variável grava  a ultima  ação do  usuário.

  CASE sy-ucomm.
  WHEN 'BACK'. "Botão Back  foi pressionado  (F3)
    LEAVE PROGRAM. "Sai do  programa
  WHEN 'FCREATE'.

  WHEN OTHERS.
  ENDCASE.

ENDMODULE.                 " USER_COMMAND_0100  INPUT
Módulo POOL ( ON LINE )
19

Vamos criar a transação para o Sistema de Funcionários:

Clique em Ok.
Módulo POOL ( ON LINE )
20

Depois SALVAR, browse da SE80, ira exibir a nova transação:


Módulo POOL ( ON LINE )
21

Vamos agora tratar o comando FCREATE, dentro da User Command da Tela 0100.

    WHEN 'FCREATE'. "Criar funcionário
      call SCREEN '0200'.

Como a tela 0020 não existe vamos cria-la com um clique duplo em 0200.

Salvar. Clique no Botão Layout. A tela será desenhada conforme abaixo:


Módulo POOL ( ON LINE )
22
Módulo POOL ( ON LINE )
23
Módulo POOL ( ON LINE )
24
Módulo POOL ( ON LINE )
25

Todos os campos de entrada estão referenciados à estrutura WA_FUNC, criada no include

TOP. As labels podem ser criadas pelo botão de Campo de Texto .

A tela final ficou assim:


Módulo POOL ( ON LINE )
26

Vamos agora para a Logica de Processamento da Tela 0200:

Descomente os módulos.

Vamos criar os Modulos:


Módulo POOL ( ON LINE )
27

Criar Status Tela 0200.


Módulo POOL ( ON LINE )
28

Dentro do Status Gui:

Ir para Teclas de Função:


Módulo POOL ( ON LINE )
29

Ativar os botões abaixo:

Criar o Titulo:

Clique em Ok.
Módulo POOL ( ON LINE )
30

Vamos agora para a Lógica de processamento da tela 0200, em MODULE


USER_COMMAND_0200.
Módulo POOL ( ON LINE )
31

Vamos criar o Modulo do Verificar os dados.


Módulo POOL ( ON LINE )
32
Módulo POOL ( ON LINE )
33

Seguem os códigos fontes da aula 3 e 4

Programa Principal: ZMP01_CADFUNC

*&--------------------------------------------------------------------
-*
*& PoolMóds.         ZMP01_CADFUNC
*&
*&--------------------------------------------------------------------
-*
*&
*&
*&--------------------------------------------------------------------
-*

PROGRAM ZMP01_CADFUNC.

* Include para Tabelas, Tipos, Variaveis, tab. internas e etc.
include ZMP01_CADFUNC_top.

* Include para Processo PBO - Antes da texla ser exibida
include ZMP01_CADFUNC_pbo.

* Include para Processo PAI - Depois da Tela ser exibida
include ZMP01_CADFUNC_pai.

* Include para Funcoes e Forms
include ZMP01_CADFUNC_fct.
Módulo POOL ( ON LINE )
34

Include: ZMP01_CADFUNC_FCT

*&--------------------------------------------------------------------
-*
*&  Include           ZMP01_CADFUNC_FCT
*&--------------------------------------------------------------------
-*
*&--------------------------------------------------------------------
-*
*&      Form  VERIFICA_DADOS
*&--------------------------------------------------------------------
-*
*       text
*---------------------------------------------------------------------
-*
*      <--P_V_ERRO  text
*---------------------------------------------------------------------
-*
FORM verifica_dados  CHANGING p_v_erro.

  CLEAR: v_erro.

* Verifica se cargo existe
  SELECT count(*)
    FROM ztb01_cargo
     WHERE cargo EQ wa_func-cargo.

  IF sy-subrc NE 0. "Não encontrou o registro
    MESSAGE i002(zmsg00) WITH
    'Cargo não encontrado.'.
    v_erro = 'X'.
  ENDIF.

* Verifica Departamento.
  SELECT count(*)
    FROM ztb01_depto
    WHERE depto EQ wa_func-depto.

  IF sy-subrc NE 0. "Não encontrou o registro
    MESSAGE i002(zmsg00) WITH
    'Departamento não encontrado.'.
    v_erro = 'X'.
  ENDIF.

ENDFORM.                    " VERIFICA_DADOS
*&--------------------------------------------------------------------
-*
*&      Form  SALVA_DADOS
*&--------------------------------------------------------------------
-*
Módulo POOL ( ON LINE )
35

*       text
*---------------------------------------------------------------------
-*
*      -->P_0046   text
*---------------------------------------------------------------------
-*
FORM salva_dados  USING  l_typrec.

* Move Dados correspondente da workarea para tabela
  MOVE-CORRESPONDING wa_func TO ztb01_func.

  IF l_typrec EQ 'I'. "Insert
    INSERT ztb01_func.
  ELSE. "Atualizar Funcionário
    UPDATE ztb01_func.
  ENDIF.

  IF sy-subrc EQ 0. "Sucesso ao Gravar

    MESSAGE i000(zmsg00) WITH 'Funcionário'
    wa_func-codre
    wa_func-nome
    'Gravado com Sucesso'.

    PERFORM limpa_variaveis.
  ELSE.

    MESSAGE i000(zmsg00) WITH 'Erro ao Gravar Funcionário'
    wa_func-codre
    wa_func-nome.
  ENDIF.

ENDFORM.                    " SALVA_DADOS
*&--------------------------------------------------------------------
-*
*&      Form  CALCULA_CODRE
*&--------------------------------------------------------------------
-*
*       text
*---------------------------------------------------------------------
-*
*  -->  p1        text
*  <--  p2        text
*---------------------------------------------------------------------
-*
FORM calcula_codre .

  SELECT MAX( codre )
     INTO wa_func-codre
         FROM ztb01_func.

  IF sy-subrc NE 0. "Tabela vazia
Módulo POOL ( ON LINE )
36

    ztb01_func-codre = '0000000001'.
  ELSE.
    ztb01_func-codre = wa_func-codre + 1.
  ENDIF.

ENDFORM.                    " CALCULA_CODRE
*&--------------------------------------------------------------------
-*
*&      Form  LIMPA_VARIAVEIS
*&--------------------------------------------------------------------
-*
*       text
*---------------------------------------------------------------------
-*
*  -->  p1        text
*  <--  p2        text
*---------------------------------------------------------------------
-*
FORM limpa_variaveis .

  CLEAR: wa_func, wa_func_aux, v_erro, v_answer.

ENDFORM.                    " LIMPA_VARIAVEIS
*&--------------------------------------------------------------------
-*
*&      Form  BUSCA_DADOS
*&--------------------------------------------------------------------
-*
*       text
*---------------------------------------------------------------------
-*
*  -->  p1        text
*  <--  p2        text
*---------------------------------------------------------------------
-*
FORM busca_dados .

  SELECT SINGLE *
    FROM ztb01_func
    INTO wa_func
    WHERE codre EQ wa_func-codre.

  IF sy-subrc EQ 0. "Se dados foram encontrados

    SELECT SINGLE descr INTO wa_func-dcargo
                        FROM ztb01_cargo
                        WHERE cargo EQ wa_func-cargo.
Módulo POOL ( ON LINE )
37

    SELECT SINGLE descr INTO wa_func-ddepto
                        FROM ztb01_depto
                        WHERE depto EQ wa_func-depto.

    wa_func_aux = wa_func.

  ELSE.

    MESSAGE 'Dados não Encontrados' TYPE 'I'.
    PERFORM limpa_variaveis.

  ENDIF.

ENDFORM.                    " BUSCA_DADOS
*&--------------------------------------------------------------------
-*
*&      Form  DEMITE_FUNCIONARIO
*&--------------------------------------------------------------------
-*
*       text
*---------------------------------------------------------------------
-*
*  -->  p1        text
*  <--  p2        text
*---------------------------------------------------------------------
-*
FORM demite_funcionario .

  DATA: v_dif TYPE i.

  IF wa_func-dtdem IS INITIAL.

    wa_func-dtdem = sy-datum.

    PERFORM confirma_demissao.

    IF v_answer EQ '1'.
      PERFORM salva_dados USING 'U'.
    ELSE.
      wa_func-demit = space.
    ENDIF.

  ELSE.

    v_dif = sy-datum - wa_func-dtdem. "subtrai data atual - data demi
ssão

    IF v_dif GT 7. "Maior que
      MESSAGE 'Não pode demitir retroativo maior que uma semana' TYPE 
'I'.

    ELSEIF v_dif GT -30.  "Menor que
Módulo POOL ( ON LINE )
38

      MESSAGE 'Não pode demitir acima de 30 de antecedência' TYPE 'I'.

    ELSE.

      PERFORM confirma_demissao.

      IF v_answer EQ '1'.
        PERFORM salva_dados USING 'U'.
      ELSE.
        wa_func-demit = ' '.
      ENDIF.

    ENDIF.

  ENDIF.

ENDFORM.                    " DEMITE_FUNCIONARIO
*&--------------------------------------------------------------------
-*
*&      Form  CONFIRMA_DEMISSAO
*&--------------------------------------------------------------------
-*
*       text
*---------------------------------------------------------------------
-*
*  -->  p1        text
*  <--  p2        text
*---------------------------------------------------------------------
-*
FORM confirma_demissao .

  DATA: v_text_question(128) TYPE c,
        v_datac(10).

  WRITE wa_func-dtdem TO v_datac.

  CONCATENATE 'Funcionário' wa_func-codre wa_func-nome
              'será demitido em' v_datac '.'
              'Confirma?' INTO
              v_text_question SEPARATED BY space.

  CALL FUNCTION 'POPUP_TO_CONFIRM'
    EXPORTING
      titlebar              = 'Confirma Demissão?'
      diagnose_object       = ' '
      text_question         = v_text_question
      text_button_1         = 'Sim'
      icon_button_1         = 'ICON_OKAY'
      text_button_2         = 'Não'
Módulo POOL ( ON LINE )
39

      icon_button_2         = 'ICON_CANCEL'
      default_button        = '1'
      display_cancel_button = ' '
    IMPORTING
      answer                = v_answer.

ENDFORM.                    " CONFIRMA_DEMISSAO
*&--------------------------------------------------------------------
-*
*&      Form  ALTERA_TELA
*&--------------------------------------------------------------------
-*
*       text
*---------------------------------------------------------------------
-*
*  -->  p1        text
*  <--  p2        text
*---------------------------------------------------------------------
-*
FORM altera_tela .

*** Tratar tela de Exibição
  IF v_change = ' '.

    LOOP AT SCREEN.
      IF screen-name EQ 'WA_FUNC-CODRE'.
        screen-input = 1. "Deixa campo aberto
      ELSE.
        screen-input = 0. "Fecha campo
      ENDIF.
      MODIFY SCREEN.
    ENDLOOP.

  ELSE.

    IF wa_func_aux IS INITIAL. "Nenhum funcionário selecionado
      LOOP AT SCREEN.
        IF screen-name EQ 'WA_FUNC-CODRE'.
          screen-input = 1. "Deixa campo aberto
        ELSE.
          screen-input = 0. "Fecha campo
        ENDIF.
        MODIFY SCREEN.
      ENDLOOP.

    ELSE.

      LOOP AT SCREEN.
        IF screen-name EQ 'WA_FUNC-CODRE'  OR
           screen-name EQ 'WA_FUNC-DCARGO' OR
Módulo POOL ( ON LINE )
40

           screen-name EQ 'WA_FUNC-DDEPTO'.
          screen-input = 0. "Fecha campo
        ELSE.
          screen-input = 1. "Deixa campo aberto
        ENDIF.
        MODIFY SCREEN.
      ENDLOOP.
    ENDIF.

  ENDIF.

ENDFORM.                    " ALTERA_TELA
*&--------------------------------------------------------------------
-*
*&      Form  CONFIRMA_SAIDA
*&--------------------------------------------------------------------
-*
*       text
*---------------------------------------------------------------------
-*
*  -->  p1        text
*  <--  p2        text
*---------------------------------------------------------------------
-*
FORM confirma_saida .

  CALL FUNCTION 'POPUP_TO_CONFIRM'
    EXPORTING
      titlebar              = 'Confirma Saída?'
*     DIAGNOSE_OBJECT       = ' '
      text_question         =
                              'Dados não foram salvos. Deseja sair?'
      text_button_1         = 'Sim'
      icon_button_1         = 'ICON_OKAY'
      text_button_2         = 'Não'
      icon_button_2         = 'ICON_CANCEL'
      default_button        = '1'
      display_cancel_button = ' '
    IMPORTING
      answer                = v_answer.

ENDFORM.                    " CONFIRMA_SAIDA
*&--------------------------------------------------------------------
-*
*&      Form  VALIDA_DADOS
*&--------------------------------------------------------------------
-*
*       text
*---------------------------------------------------------------------
-*
Módulo POOL ( ON LINE )
41

*  -->  p1        text
*  <--  p2        text
*---------------------------------------------------------------------
-*
FORM valida_dados .

*** Verificar campo CARGO
  SELECT count(*)
    FROM ztb01_cargo
    WHERE cargo EQ wa_func-cargo.

  IF sy-subrc NE 0.
    MESSAGE 'CARGO NÃO ENCONTTRADO' TYPE 'I'.
    v_erro = 'X'. "Erro encontrado. Não permite continuar
  ENDIF.

*** Verificar campo DEPARTAMENTO
  SELECT count(*)
    FROM ztb01_depto
    WHERE depto EQ wa_func-depto.

  IF sy-subrc NE 0.
    MESSAGE 'DEPARTAMENTO NÃO ENCONTTRADO' TYPE 'I'.
    v_erro = 'X'. "Erro encontrado. Não permite continuar
  ENDIF.

ENDFORM.                    " VALIDA_DADOS
Módulo POOL ( ON LINE )
42

Include: ZMP01_CADFUNC_PAI

*&--------------------------------------------------------------------
-*
*&  Include           ZMP01_CADFUNC_PAI
*&--------------------------------------------------------------------
-*
*&--------------------------------------------------------------------
-*
*&      Module  USER_COMMAND_0100  INPUT
*&--------------------------------------------------------------------
-*
*       text
*---------------------------------------------------------------------
-*
MODULE user_command_0100 INPUT.

* Variável de Sistema SY-UCOMM --> User Command
* Esta variável grava a ultima ação do usuário.

  CASE sy-ucomm.

    WHEN 'BACK'. "Botão Back foi pressionado (F3)
      LEAVE PROGRAM. "Sai do programa

    WHEN 'SAIR'.
      LEAVE PROGRAM. "Sai do programa

    WHEN 'FCREATE'. "Criar funcionário
      v_tprec = 'I'.
      CALL SCREEN '0200'.

    WHEN 'FCHANGE' OR 'FSHOW'. "Alterar ou Modificar
      IF sy-ucomm EQ 'FCHANGE'.
        v_change = 'X'.
      ELSE.
        v_change = ' '.
      ENDIF.
      CALL SCREEN '0300'.

    WHEN 'FDEMI'. "Demitir funcionário
      CALL SCREEN '0400' STARTING AT 3 3.

    WHEN OTHERS.
Módulo POOL ( ON LINE )
43

  ENDCASE.

ENDMODULE.                 " USER_COMMAND_0100  INPUT
*&--------------------------------------------------------------------
-*
*&      Module  USER_COMMAND_0200  INPUT
*&--------------------------------------------------------------------
-*
*       text
*---------------------------------------------------------------------
-*
MODULE user_command_0200 INPUT.

  CASE sy-ucomm.

    WHEN 'BACK'.
*    set SCREEN '0010'.
*    leave screen.
*
*    leave to screen '0010'.
*
*    call screen '0010'.

      LEAVE TO SCREEN 0. "Volta para a tela anterior

    WHEN 'SAIR' OR 'CANC'.
      LEAVE PROGRAM. "Sai do programa

    WHEN 'ENTER'.
      PERFORM verifica_dados CHANGING v_erro.

    WHEN 'SAVE'.
      PERFORM verifica_dados CHANGING v_erro.
      PERFORM salva_dados USING 'I'.

    WHEN OTHERS.

  ENDCASE.

ENDMODULE.                 " USER_COMMAND_0200  INPUT
*&--------------------------------------------------------------------
-*
*&      Module  USER_COMMAND_0300  INPUT
Módulo POOL ( ON LINE )
44

*&--------------------------------------------------------------------
-*
*       text
*---------------------------------------------------------------------
-*
MODULE user_command_0300 INPUT.

  CASE sy-ucomm.

    WHEN 'BACK'.

      IF v_change EQ ' '. "Tela de Exibição
        PERFORM limpa_variaveis.
        LEAVE TO SCREEN 0.
      ELSE.
        IF wa_func EQ wa_func_aux. "Não houve alteração
          PERFORM limpa_variaveis.
          LEAVE TO SCREEN 0.

        ELSE. "houve alteração pergunta antes de sair

          PERFORM confirma_saida.

          IF v_answer EQ '1'.
            PERFORM limpa_variaveis.
            LEAVE TO SCREEN 0.
          ENDIF.

        ENDIF.
      ENDIF.

    WHEN 'ENTER'.

      IF v_change EQ ' '. "Tela de Exibição
        PERFORM busca_dados.
      ELSE. "Tela de Alteração
        IF wa_func_aux IS INITIAL.
          PERFORM busca_dados.
        ELSE.
          PERFORM valida_dados.
        ENDIF.
      ENDIF.

    WHEN 'FOTHER'.
      IF wa_func = wa_func_aux. "Não houve alteração
        PERFORM limpa_variaveis.
      ELSE.
        PERFORM confirma_saida.
        IF v_answer EQ '1'.
          PERFORM limpa_variaveis.
        ENDIF.
      ENDIF.
Módulo POOL ( ON LINE )
45

    WHEN 'SAVE'.
      PERFORM valida_dados.
      IF v_erro IS INITIAL. "não encontrou erros
        PERFORM salva_dados USING 'U'.
      ELSE.
        MESSAGE 'Existem erros. Dados não foram Gravados' TYPE 'I'.
      ENDIF.
    WHEN OTHERS.
  ENDCASE.

ENDMODULE.                 " USER_COMMAND_0300  INPUT
*&--------------------------------------------------------------------
-*
*&      Module  USER_COMMAND_0400  INPUT
*&--------------------------------------------------------------------
-*
*       text
*---------------------------------------------------------------------
-*
MODULE user_command_0400 INPUT.

  CASE sy-ucomm.

    WHEN 'BACK'.
      PERFORM limpa_variaveis.
      LEAVE TO SCREEN 0.

    WHEN 'ENTER'.
      IF wa_func_aux IS INITIAL OR
         wa_func-codre NE wa_func_aux-codre.

        PERFORM busca_dados.

        IF wa_func-demit EQ 'X'. "Já está demitido
          MESSAGE 'Funcionário já demitido' TYPE 'I'.
          PERFORM limpa_variaveis.
        ENDIF.

      ENDIF.

    WHEN 'FFIRE'. "CODE pela check box do ON-Line
      IF wa_func_aux IS INITIAL.
        MESSAGE 'Selecione um funcionário para ser demitido' TYPE 'I'.
      ELSE.
        PERFORM demite_funcionario.
      ENDIF.

    WHEN OTHERS.
Módulo POOL ( ON LINE )
46

  ENDCASE.

ENDMODULE.                 " USER_COMMAND_0400  INPUT
Módulo POOL ( ON LINE )
47

Include: ZMP01_CADFUNC_PBO

*&--------------------------------------------------------------------
-*
*&  Include           ZMP01_CADFUNC_PBO
*&--------------------------------------------------------------------
-*
*&--------------------------------------------------------------------
-*
*&      Module  STATUS_0100  OUTPUT
*&--------------------------------------------------------------------
-*
*       text
*---------------------------------------------------------------------
-*
MODULE status_0100 OUTPUT.
  SET PF-STATUS 'TELA_0100'.
  SET TITLEBAR 'TIT_0100'.

ENDMODULE.                 " STATUS_0100  OUTPUT
*&--------------------------------------------------------------------
-*
*&      Module  STATUS_0200  OUTPUT
*&--------------------------------------------------------------------
-*
*       text
*---------------------------------------------------------------------
-*
MODULE status_0200 OUTPUT.
  SET PF-STATUS 'TELA_0200'.
  SET TITLEBAR 'TIT_0200'.

ENDMODULE.                 " STATUS_0200  OUTPUT
*&--------------------------------------------------------------------
-*
*&      Module  STATUS_0300  OUTPUT
*&--------------------------------------------------------------------
-*
*       text
*---------------------------------------------------------------------
-*
MODULE status_0300 OUTPUT.

  DATA fcode TYPE TABLE OF sy-ucomm.
  REFRESH fcode. "Limpa o conteúdo da tabela

  IF v_change EQ 'X'. "Tela de Alteração

    SET TITLEBAR 'TIT_0300'.
Módulo POOL ( ON LINE )
48

  ELSE. "Tela de Exibição
    SET TITLEBAR 'TIT_0310'.

    APPEND 'FOTHER' TO fcode.
    APPEND 'SAVE'   TO fcode.

  ENDIF.

  SET PF-STATUS 'TELA_0300' EXCLUDING fcode.

* Fecha campo da tela
  PERFORM altera_tela.

ENDMODULE.                 " STATUS_0300  OUTPUT
*&--------------------------------------------------------------------
-*
*&      Module  STATUS_0400  OUTPUT
*&--------------------------------------------------------------------
-*
*       text
*---------------------------------------------------------------------
-*
MODULE status_0400 OUTPUT.
  SET PF-STATUS 'TELA_0400'.
  SET TITLEBAR 'TIT_0400'.

ENDMODULE.                 " STATUS_0400  OUTPUT
Módulo POOL ( ON LINE )
49
Módulo POOL ( ON LINE )
50

Você também pode gostar