sexta-feira, 17 de janeiro de 2014

Trocando Telas por Subtelas


* Um dia desses foi solicitado para que eu fizesse um programa que mostrasse
* o resultado em um ALV na mesma tela que a tela de seleção, já veio na
* cabeça, entrar no layout da Tela e desenhar todos os parametros que
* seriam necessários para o resultado correto... Mas aí eu lembrei de um
* jeito bem Maroto de resolver, que é colocando uma SubScreen na Tela e
* assim eu não precisaria desenhar nada, somente criar um selectio-screen
* normal e declarar ele como uma Subscreen, e depois na tela chamar como
* o exemplo abaixo. A vantagem disso é a velocidade de desenvolvimento, pois
* não precisará ficar desenhando cada parametro de entrada das seleções na Tela.

REPORT z_call_subscreen.

DATA :
  it_spfli  
TYPE TABLE OF spfli,
  st_layout 
TYPE lvc_s_layo.

DATA:
  o_alv       
TYPE REF TO cl_gui_alv_grid,
  o_container 
TYPE REF TO cl_gui_custom_container.

SELECTION-SCREEN BEGIN OF SCREEN 0100 AS SUBSCREEN.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME.
PARAMETERS :
  p_carrid 
TYPE s_carr_id.
SELECTION-SCREEN END OF BLOCK   b1.
SELECTION-SCREEN END OF SCREEN 0100.

START-OF-SELECTION.

* Primeiramente vamos chamar nossa Screen.
  
CALL SCREEN 9000.

*  Agora vamos criar os objetos desse tela.