Esconder elementos de Tela
Vamos esconder um checkbox da tela. Para isso vamos começar com as declarações das variáveis:
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001. PARAMETERS: ch_rel AS CHECKBOX, ch_pr_lc AS CHECKBOX. SELECTION-SCREEN SKIP. SELECTION-SCREEN BEGIN OF LINE. SELECTION-SCREEN PUSHBUTTON (30) btn USER-COMMAND click1. PARAMETER: gd_ucomm LIKE sy-ucomm NO-DISPLAY. SELECTION-SCREEN END OF LINE. SELECTION-SCREEN END OF BLOCK b1.
O comando "Skip" serve para dar um espaçamento, como se fosse para pular uma linha.
Logo após temos a declaração do botão que irá nos auxiliar no "Hide"(esconder) do nosso objeto, neste tutorial, o checkbox.
No último parâmetro temos um pequeno truque: caso você queira mais de um botão poderá declará-lo como um parâmetro que não será exibido na tela. Além disso você também pode deixar um valor padrão no parâmetro.
INITIALIZATION.
CONCATENATE '@02@' text-010 INTO btn.
AT SELECTION-SCREEN.
CLEAR gd_ucomm.
IF sy-ucomm EQ 'CLICK1'.
gd_ucomm = 'CLICK1'.
ENDIF.
AT SELECTION-SCREEN OUTPUT.
IF gd_ucomm EQ 'CLICK1'.
LOOP AT SCREEN.
IF screen-name EQ 'CH_REL'.
screen-invisible = 1.
screen-input = 0.
screen-active = 0.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ENDIF.
Na linha 1 temos no evento "INITIALIZATION" a atribuição do texto do nosso botão. Observe que você pode adicionar um ícone para ficar mais intuitivo ao usuário (o que é uma boa prática). Não são só os module-pool que podem ficar bonitos, ok?
A seguir, na linha 4, iremos inicializar o nosso parâmetro (caso você não tenha adicionado nenhum valor default) quando o evento "AT SELECTION-SCREEN" for acionado. O gd_ucomm servirá como uma flag para uso posterior.
A partir da linha 10, no evento "AT SELECTION-SCREEN OUTPUT" temos a lógica de fato que precisamos para esconder o objeto: se a condição for cumprida o programa executará o loop e tornará nosso checkbox indisponível.


Comentários
Postar um comentário