ABAP actualiza la pantalla de selección con regularidad

principio

Utilice la clase de temporizador CL_GUI_TIMER para llamar continuamente, los pasos son los siguientes

  • Cree una instancia del temporizador y supervise el evento terminado del temporizador
  • Cambie los atributos y valores de los elementos de la pantalla en la salida de selección y comience a ejecutar el temporizador al mismo tiempo
  • Cuando termina el tiempo, se activa el evento terminado y, al configurar el código de función, el flujo lógico de la pantalla vuelve a la salida de selección nuevamente.

Conjetura personal : las pantallas personalizadas y los ALV también se pueden actualizar con regularidad, y se pueden usar para ciclar temporizadores y activar PBO; pero después de leer algunos artículos, parece que esta clase de temporizador no se recomienda por razones desconocidas, y ALV no es un desarrollo de UI5 . No creo que sea interesante actualizar de forma regular, y son bonitas campanas y silbatos.

Código de referencia

parameters : p_time type i default 3.

class lcl_event definition.

  public section.

    methods m_timer_finished for event finished of cl_gui_timer.

endclass.
class lcl_event implementation.

  method m_timer_finished.

    "    cl_gui_cfw=>set_new_ok_code(
    "      exporting
    "        new_code = 'REFR').

    "触发新的屏幕逻辑流,实现屏幕刷新
    call function 'SAPGUI_SET_FUNCTIONCODE'
      exceptions
        others = 0.

  endmethod.                    "handle_finished

endclass.                    "lcl_event IMPLEMENTATION

initialization.

  data(lo_timer) = new cl_gui_timer( ).
  lo_timer->interval = 1.

  data(lo_event) = new lcl_event( ).
  set handler lo_event->m_timer_finished for lo_timer.

at selection-screen output.
  if lo_timer is bound.
    lo_timer->run( ).
    p_time = p_time - 1.
  endif.

  if p_time le 0.
    lo_timer->cancel( ).
  endif.

Supongo que te gusta

Origin blog.csdn.net/u012232542/article/details/106717321
Recomendado
Clasificación