I created 2 MODAL screens 0806 & 2009
0806 was for start of job spash & 20009 was an exit SPLASH
Used this effectively in a lrge DOI Excel download program..
2 JPG files with a nice Indian Welcome & fancy Bengali Text!
Each Modal scren had 2 Containers
CUSTOM_1 shaped for Picture control
CUSTOM_2 for CL_GUI_TIMER control
* Create 2 MODAL screens 0806 and 2009
* 1 CUSTOM_1 shaped to hold JPG
* and 1 CUSTOM_2 to hold TIMER
REPORT zpp_r012 LINE-SIZE 160
LINE-COUNT 72
MESSAGE-ID zpp01.
DATA: container1 TYPE REF TO cl_gui_custom_container,
container2 TYPE REF TO cl_gui_custom_container,
picture TYPE REF TO cl_gui_picture.
DATA: graphic_url(255),
g_result TYPE i,
g_linesz TYPE i,
g_filesz TYPE i,
g_name(100).
TYPES: t_graphic_line(256) TYPE x.
DATA: graphic_line TYPE t_graphic_line,
graphic_table TYPE TABLE OF t_graphic_line.
*---------------------------------------------------------------------*
* CLASS lcl_event_handler DEFINITION
*---------------------------------------------------------------------*
CLASS lcl_event_handler DEFINITION.
PUBLIC SECTION.
CLASS-METHODS: on_finished FOR EVENT finished OF cl_gui_timer.
ENDCLASS. "lcl_event_handler DEFINITION
*---------------------------------------------------------------------*
* CLASS lcl_event_handler IMPLEMENTATION
*---------------------------------------------------------------------*
CLASS lcl_event_handler IMPLEMENTATION.
METHOD on_finished.
IF sy-dynnr = 2009.
LEAVE PROGRAM.
ELSE.
PERFORM f_excel_job.
ENDIF.
ENDMETHOD. "on_finished
ENDCLASS. "lcl_event_handler IMPLEMENTATION
DATA timer TYPE REF TO cl_gui_timer.
DATA event_handler TYPE REF TO lcl_event_handler.
DATA timeout TYPE i VALUE '3'.
*&---------------------------------------------------------------------*
* SELECTION-SCREEN DESIGN
*
*&---------------------------------------------------------------------*
SELECTION-SCREEN: BEGIN OF BLOCK b2sels WITH FRAME TITLE text-002.
PARAMETERS: pwerks LIKE mseg-werks OBLIGATORY, "THIS Plant
pbudat LIKE mkpf-budat OBLIGATORY. "THIS Date
SELECTION-SCREEN: END OF BLOCK b2sels.
*&---------------------------------------------------------------------*
* INITIALIZATION EVENT
*
*&---------------------------------------------------------------------*
INITIALIZATION.
*&---------------------------------------------------------------------*
* AT SELECTION-SCREEN EVENT
*
*&---------------------------------------------------------------------*
**Use this EVENT to validate SELECTION-SCREEN
AT SELECTION-SCREEN.
*&---------------------------------------------------------------------*
* START-OF-SELECTION EVENT
*
*&---------------------------------------------------------------------*
START-OF-SELECTION.
CALL SCREEN 0806 STARTING AT 30 4.
*&---------------------------------------------------------------------*
*& Form f_excel_job
*&---------------------------------------------------------------------*
FORM f_excel_job.
* LOTS of Code
CALL SCREEN 2009 STARTING AT 30 4.
ENDFORM. "f_excel_job
** LOTS of CODE
*&---------------------------------------------------------------------*
*& Form getpicurl
*&---------------------------------------------------------------------*
FORM getpicurl.
OPEN DATASET g_name FOR INPUT IN BINARY MODE.
REFRESH graphic_table.
CLEAR g_filesz.
DO.
CLEAR graphic_line.
READ DATASET g_name INTO graphic_line ACTUAL LENGTH g_linesz.
ADD g_linesz TO g_filesz.
APPEND graphic_line TO graphic_table.
IF sy-subrc <> 0.
EXIT.
ENDIF.
ENDDO.
CLOSE DATASET g_name.
CLEAR graphic_url.
CALL FUNCTION 'DP_CREATE_URL'
EXPORTING
type = 'IMAGE'
subtype = 'GIF'
TABLES
data = graphic_table
CHANGING
url = graphic_url
EXCEPTIONS
dp_invalid_parameter = 1
dp_error_put_table = 2
dp_error_general = 3
OTHERS = 4.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
EXIT.
ENDIF.
IF graphic_url IS NOT INITIAL.
CALL METHOD picture->clear_picture
EXCEPTIONS
error = 1.
CALL METHOD picture->load_picture_from_url
EXPORTING
url = graphic_url
IMPORTING
RESULT = g_result.
CALL METHOD picture->set_display_mode
EXPORTING
display_mode = picture->display_mode_normal_center
EXCEPTIONS
error = 1.
CALL METHOD cl_gui_cfw=>update_view.
ENDIF.
ENDFORM. "getpicurl
*---------------------------------------------------------------------*
* MODULE zjncpbo OUTPUT screen 0806
*---------------------------------------------------------------------*
MODULE zjncpbo OUTPUT.
MOVE 'NAMASTE.JPG' TO g_name.
CREATE OBJECT: container1 EXPORTING container_name = 'CUSTOM_1',
container2 EXPORTING container_name = 'CUSTOM_2',
picture EXPORTING parent = container1,
timer EXPORTING parent = container2.
SET HANDLER lcl_event_handler=>on_finished FOR timer.
* Start Timer
timer->interval = timeout.
CALL METHOD timer->run.
PERFORM getpicurl.
CALL METHOD cl_gui_cfw=>flush.
ENDMODULE. " PBO
*---------------------------------------------------------------------*
* MODULE zjncpbo2 OUTPUT screen 2009
*---------------------------------------------------------------------*
MODULE zjncpbo2 OUTPUT.
MOVE 'THANKS.JPG' TO g_name.
CREATE OBJECT: container1 EXPORTING container_name = 'CUSTOM_1',
container2 EXPORTING container_name = 'CUSTOM_2',
picture EXPORTING parent = container1,
timer EXPORTING parent = container2.
SET HANDLER lcl_event_handler=>on_finished FOR timer.
* Start Timer
timer->interval = timeout.
CALL METHOD timer->run.
PERFORM getpicurl.
CALL METHOD cl_gui_cfw=>flush.
ENDMODULE.