"
Apoiado por

Olha pai, agora sem mãos

Neste artigo vou mostrar-te (e explicar-te!) como podes fazer com que um ecrã de selecção de um programa se refresque periodicamente sem intervenção do utilizador.

Estás preparado?

O nosso exemplo mostra um parâmetro que se vai actualizando sozinho a cada segundo. Como o código é simples mostro-o todo de uma vez e explico-o a seguir:


PARAMETERS : p_conta TYPE t DEFAULT 300.

CLASS lcl_handler DEFINITION. 
  PUBLIC SECTION.
    METHODS: corre_handler FOR EVENT finished OF cl_gui_timer. 
ENDCLASS. 

DATA o_temporizador TYPE REF TO cl_gui_timer .
DATA o_handler TYPE REF TO lcl_handler .

CLASS lcl_handler IMPLEMENTATION. 
  METHOD corre_handler. 
    CALL METHOD o_temporizador ->run. 
    CALL METHOD cl_gui_cfw =>set_new_ok_code 
      EXPORTING 
        new_code = 'REFR'.
  ENDMETHOD.
ENDCLASS.

INITIALIZATION.
  CREATE OBJECT o_temporizador. 
  CREATE OBJECT o_handler. 
  o_temporizador-> interval = '1' . 
  CALL METHOD o_temporizador-> run .
  SET HANDLER o_handler-> corre_handler FOR ALL INSTANCES. 

AT SELECTION-SCREEN OUTPUT . 
  p_conta = p_conta - 1 .

O truque está em usar a classe CL_GUI_TIMER em interacção com o evento AT SELECTION-SCREEN OUTPUT.

  1. Primeiro declaramos o tal parâmetro que vai ser automaticamente actualizado.
  2. Depois declaramos uma pequena classe que há-de implementar o handler do evento espoletado pelo final do temporizador do CL_GUI_TIMER.
  3. A seguir declaramos as duas instâncias, uma do temporizador (CL_GUI_TIMER) e a outra do nosso handler LCL_HANDLER.
  4. O evento INITIALIZATION cria os objectos temporizador e handler, configura o temporizador e associa o seu evento ao nosso handler.
  5. A implementação do método do handler reinicia o temporizador e lança um OK code que refresca o ecrã, correndo o evento AT SELECTION-SCREEN OUPUT.
  6. Finalmente o evento AT SELECTION-SCREEN OUTPUT limita-se a decrementar o nosso contador.

Simples, não? Dúvidas?

Obrigado a Evil Saltine pela foto.

O Abapinho saúda-vos.

Deixe um comentário


Acerca do Abapinho
O Abapinho é suportado pelo WordPress
Artigos (RSS) e Comentários (RSS).