用 ABAP 实现的报表欢迎屏幕 - Splash Screen

简介: 用 ABAP 实现的报表欢迎屏幕 - Splash Screen

说明

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.                             " PBO
相关文章
|
7月前
|
BI
SAP ABAP 报表几个事件的先后执行顺序和作用
SAP ABAP 报表几个事件的先后执行顺序和作用
54 0
|
4天前
|
BI
如何使用动态 ABAP 程序生成技术,对 ABAP 系统标准的报表行为进行微调试读版
如何使用动态 ABAP 程序生成技术,对 ABAP 系统标准的报表行为进行微调试读版
17 0
|
4天前
|
存储 UED 开发者
ABAP Dynpro 编程里 PBO 中 LOOP AT SCREEN 的使用方法介绍
ABAP Dynpro 编程里 PBO 中 LOOP AT SCREEN 的使用方法介绍
8 1
|
4天前
|
存储 API
如何在 SAPGUI 的 ABAP 报表里显示图片试读版
如何在 SAPGUI 的 ABAP 报表里显示图片试读版
29 1
|
4天前
|
存储 UED 开发者
ABAP Screen 编程里 OK_CODE 的重要作用
ABAP Screen 编程里 OK_CODE 的重要作用
12 0
|
4天前
|
BI 数据库
SAP ABAP ALV 报表单击某列后执行某段 ABAP 逻辑的实现方式 - hotspot 行为实现试读版
SAP ABAP ALV 报表单击某列后执行某段 ABAP 逻辑的实现方式 - hotspot 行为实现试读版
37 0
|
7月前
|
BI 数据库
给 ABAP ALV 报表的数据行增添颜色效果试读版
给 ABAP ALV 报表的数据行增添颜色效果试读版
49 0
|
6月前
|
BI
利用 ALV 实现增删改查系列之四:如何捕捉 SAP ABAP ALV 报表行项目删除时抛出的事件试读版
利用 ALV 实现增删改查系列之四:如何捕捉 SAP ABAP ALV 报表行项目删除时抛出的事件试读版
58 0
|
7月前
|
SQL BI 应用服务中间件
SAP ABAP 报表进度显示控件的使用详解试读版
SAP ABAP 报表进度显示控件的使用详解试读版
79 0
|
4天前
|
前端开发 开发工具 Android开发
小技巧分享 - 使用 Visual Studio Code 查看和修改 ABAP 代码试读版
小技巧分享 - 使用 Visual Studio Code 查看和修改 ABAP 代码试读版
18 0
小技巧分享 - 使用 Visual Studio Code 查看和修改 ABAP 代码试读版