quarta-feira, 24 de julho de 2013

At Select Screen

*  Eae pessoal, hoje vou mostrar um comando que é muito utilizado por
* nós abapers que é o 'AT SELECTION SCREEN' que conforme os Docs do SAP
* falam, esse comando é para criar evento durante o processamento da
* tela de seleção, quando você quer trabalhar as açoes do User como
* clicar em algo ou mudar algo na tela em momento de execução conforme a
* ação do User, segue os 'AT SELECTION SCREEN' mais usados ( pelomenos
* por mim rs ).
*  Bons estudos pessoal, e continuem mandando os emails com dúvidas,
* estarei respondendo o mais rápido possível.
*  Valeo.
*&---------------------------------------------------------------------*
REPORT z_at_select_screen.

* Tabelas
TABLES:
  makt.

* Variáveis
DATA :
 vg_maktx 
TYPE makt-maktx.

* Telas de seleção.
SELECTION-
SCREEN BEGIN OF BLOCK b1 WITH FRAME.
PARAMETERS :
  p_matnr 
TYPE mara-matnr.
SELECTION-
SCREEN END OF BLOCK   b1.

SELECTION-
SCREEN BEGIN OF BLOCK b2 WITH FRAME.
SELECT-OPTIONS:
  s_outpu 
FOR makt-matnr MODIF ID gr1 NO INTERVALS.
SELECTION-SCREEN END OF BLOCK   b2.

*  Comando acionado quando apertado o botão de Match Code do parameter
* informado.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_matnr.
  BREAK-POINT.
  
PERFORM z_select_makt.

*  Comando acionado quando apertado o Botão F1 (Ajuda)no Parameters
* Informado
AT SELECTION-SCREEN ON HELP-REQUEST FOR p_matnr.
  
BREAK-POINT.
  
PERFORM z_help_matnr.

* Processo acionado ao iniciar o programa.
AT SELECTION-SCREEN OUTPUT.
  BREAK-POINT.
  
PERFORM z_trata_tela.

*  Reparem que em nenhum momento o programa foi inicializado, pois o
* comando 'AT SELECTION SCREEN' trabalha antes de qualquer processo.
START-OF-SELECTION.
  BREAK-POINT.



*&---------------------------------------------------------------------*
*&      Form  Z_SELECT_MAKT
*&---------------------------------------------------------------------*
FORM z_select_makt .

  
SELECT SINGLE maktx
    
FROM makt
    
INTO vg_maktx
    
WHERE matnr = p_matnr
      
AND spras = sy-langu
    .

ENDFORM.                    " Z_SELECT_MAKT

*&---------------------------------------------------------------------*
*&      Form  Z_help_MATNR
*&---------------------------------------------------------------------*
FORM z_help_matnr .

  
MESSAGE 'Você apertou o botão F1 (ajuda) no parameters' TYPE 'I'.

ENDFORM.                    " Z_help_MATNR

*&---------------------------------------------------------------------*
*&      Form  Z_TRATA_TELA
*&---------------------------------------------------------------------*
FORM z_trata_tela .

  
LOOP AT SCREEN.
    
IF screen-group1 = 'GR1'.
      
screen-intensified = '1'.
      
MODIFY SCREEN.
    
ENDIF.
  
ENDLOOP.

ENDFORM.                    " Z_TRATA_TELA

3 comentários: