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.