* 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
Gostei! simples e didático
ResponderExcluirparabens pela iniciativa !
nesse caso teria que ter uma tabela especifica para criar essa tela de seleção?
ResponderExcluirAcredito que não.
ResponderExcluir