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.                             " PBO
 
 
 
Serkan AKKAVAK
Computer Engineer
ABAP Developer & SAP MM SD Consultant
Contact : serkurumsal@yandex.com