Antes de ler este tutorial, certifique-se do que é um programa de diálogo ...
CALL SUBSCREEN
- Uma subtela é uma tela independente exibida em uma área de outra tela ("principal").
- As subtelas permitem incorporar uma tela em outra durante a execução. Você pode incluir várias subtelas na tela principal.
- O termo subtela se aplica à tela que você incorpora e à área da tela principal em que você a coloca. Este tutorial é sobre áreas de subtela. As telas reais criadas por meio da transação SE51, são chamadas de telas de subtela se definidas nos atributos da tela.
- Quando você usa uma subtela, a lógica de fluxo da tela incorporada também é incorporada à lógica de fluxo da tela principal. Portanto, usar subtelas em telas é como usar inclusões em programas ABAP.
Para usar uma subtela, você deve seguir três etapas simples
- Defina a (s) área (s) da subtela em uma tela
- Definir telas de subtela adequadas
- Inclui a tela da subtela na área da subtela.
Além disso, você precisa ajustar o quadro da subtela e da tela principal. Você precisa nomeá-lo no campo de nome do campo.
Além disso, você também precisa ajustar os campos na subtela para que eles apareçam na tela principal. Caso a subtela seja definida para ser maior do que a área disponível na tela principal, apenas ficará visível a parte da subtela que se encaixa na área disponível. A área é sempre medida a partir do canto superior esquerdo da tela. Portanto, você deve tomar cuidado adequado ao definir áreas de subtelas e criar subtelas.
EXEMPLO
Por exemplo, aqui definimos duas áreas de subtela na tela principal e anexamos duas subtelas diferentes às áreas correspondentes. Sempre que a tela principal é chamada, o PBO da tela principal é chamado. Mas antes da exibição, os PBOs de cada tela anexada com áreas de subtela na tela principal também são chamados.
Você pode incluir uma tela de subtela usando a instrução CALL SUBSCREEN na lógica de fluxo da tela principal.
Para incluir uma tela de subtela na área de subtela da tela principal e chamar sua lógica de fluxo PBO, use a seguinte instrução no evento PBO da tela principal:
PROCESSO ANTES DA SAÍDA.CALL SUBSCREEN <área> INCLUINDO [] .
Esta instrução atribui a tela da subtela com o número
O nome da área da subtela deve ser inserido diretamente, sem as vírgulas invertidas. Você pode especificar os nomes
Para chamar a lógica de fluxo PAI da tela de subtela, use a seguinte instrução na lógica de fluxo PAI da tela principal:
PROCESSO APÓS ENTRADA.CALL SUBSCREEN <área>.
Esta instrução inclui a lógica de fluxo PAI da tela da subtela incluída na área da subtela <área> no evento PBO. Isso pode chamar os módulos PAI do programa ABAP nos quais a tela de subtela é definida. Os dados são transportados entre campos com nomes idênticos na tela da subtela e o programa ABAP quando o evento PAI é acionado ou nas instruções FIELD correspondentes na lógica de fluxo PAI da tela da subtela.
Pontos para lembrar
- Os nomes dos elementos das subtelas em uma tela devem ser exclusivos
- Você não deve ter OK_CODE ou FCODE anexado à subtela. O OK_CODE da tela principal em si é OK_CODE da subtela
- As subtelas não podem ter módulos de diálogo contendo SET TITLEBAR, SET PF-STATUS, SET SCREEN, LEAVE SCREEN ou LEAVE TO SCREEN. Isso causará um erro de tempo de execução.
- Você precisa chamá-lo na lógica de fluxo (PBO e PAI) da tela principal.
- CALL SUBSCREEN não é permitido nas instruções CHAIN ... ENDCHAIN e LOOP ENDLOOP
- Não pode ter um módulo AT EXIT-COMMAND
- Os campos que você usa são os campos globais. Eles devem ser declarados no topo incluem
- Se estiver usando subtelas de outro programa de diálogo, a transferência de dados não acontecerá a menos que você adicione um código específico.