一步一步说明如何制作一个CV03N(CV01N/CV02N)的屏幕增强.
如何查找增强就不再赘述了,这个增强是CV110001.
首先从CMOD里进去创建一个项目,点"ENHANCEMENT ASSIGNMENTS",把CV110001写进相应的文本框中保存,然后点"组件",进入SCREEN EXIT,给"100"屏幕增加描述,屏幕类型选择子屏幕.
根据自己的需求,在屏幕上放置相应的控件,并填写它们的属性.然后进入屏幕的PBO,写一些相关的代码.我做的这个例子只是显示一个URL.
MODULE STATUS_0100 OUTPUT.
DATA:CONTAINER TYPE REF TO CL_GUI_CUSTOM_CONTAINER,
EDITOR TYPE REF TO CL_GUI_TEXTEDIT,
LINE(255) TYPE C,
TEXT_TAB LIKE STANDARD TABLE OF LINE.
DATA:MOD TYPE DRAW-ZMOD,
URL TYPE DRAW-ZURL.
REFRESH TEXT_TAB.
MOD = P_DRAW-ZMOD.
LINE = P_DRAW-ZURL.
APPEND LINE TO TEXT_TAB.
***创建容器
IF CONTAINER IS INITIAL.
CREATE OBJECT CONTAINER
EXPORTING
CONTAINER_NAME = 'URL'.
ENDIF.
***创建EDITOR
IF EDITOR IS INITIAL.
CREATE OBJECT EDITOR
EXPORTING
PARENT = CONTAINER.
ENDIF.
***设置TOOLBAR不可见
CALL METHOD EDITOR->SET_TOOLBAR_MODE
EXPORTING
TOOLBAR_MODE = 0.
***设置自动换行
CALL METHOD EDITOR->SET_WORDWRAP_BEHAVIOR.
***设置只读
CALL METHOD EDITOR->SET_READONLY_MODE
EXPORTING
READONLY_MODE = 1.
***读取显示内容
CALL METHOD EDITOR->SET_TEXT_AS_STREAM
EXPORTING
TEXT = TEXT_TAB.
ENDMODULE. " STATUS_0100 OUTPUT
屏幕设计和PBO已经完毕,怎么让这个屏幕显示在CV03N的子屏幕中,还有工作要做.
EXIT_SAPLCV110_001 设置这个屏幕在相应的选项卡中
*&---------------------------------------------------------------------*
*& 包括 ZXCV110U01
*&---------------------------------------------------------------------*
IF P_DRAW-ZURL <> ''.
PFX_TAB1 = '可视化图形'.
ENDIF.
屏幕上的按钮(F_URL)按下产生的动作在EXIT_SAPLCV110_004中.
IF PFX_OKCODE = 'F_URL'.
CALL FUNCTION 'SO_LINK_DISPLAY'
EXPORTING
URL_CONTENT = P_DRAW-ZURL.
ENDIF.
最后进入CV03N看到的图片如下,其中"可视化图形"这个选项卡在本来的CV03N中是没有的.