1. 使用function: VIEW_MAINTENANCE_CALL取代用transaction with parameters产生t-code的方式调用维护示图
2.外壳过滤条件的实现
2.1 在外壳程序中把过滤条件传到内存中
2.2 在function goup: ZXXXX 中的 LZXXXXTOP从内存中取得过滤条件
* LOAD-OF-PROGRAM. | | | | | |
* RANGES: S_WERKS FOR T001L-WERKS, | | | |
* S_LGORT FOR T001L-LGORT. | | | |
* DATA: G_ACTVT TYPE C. | | | | |
* IMPORT P1 = S_WERKS FROM MEMORY ID 'S_WERKS'. | |
* IMPORT P2 = S_LGORT FROM MEMORY ID 'S_LGORT'. | |
* IMPORT P3 = G_ACTVT FROM MEMORY ID 'G_ACTVT'. | |
* INSERT 'WERKS IN S_WERKS' INTO VIM_WHERETAB INDEX 1. | |
* INSERT 'AND LGORT IN S_LGORT' INTO VIM_WHERETAB INDEX 2. |
* 2.3 在function: TABLEPROC_ZXXXX 里面, 注销过程:TABLEPROC, |
* 调用新的过程SUB_XXX_TABLEPROC, 新的过程里面的代码复制 | |
* tableproc里面的代码, ---->代码如下 | | | |
* | | | | | | | |
* * PERFORM TABLEPROC. | |
* PERFORM SUB_XXX_TABLEPROC.
* 2.4 调整新的过程SUB_XXX_TABLEPROC里面的代码 | | | * 注销过程:TABLE_GET_DATA, 调用新的过程SUB_xxx_TABLE_GET_DATA, | * 新的过程里面的代码copy from 过程: TABLE_GET_DATA ---->代码如下 | * | | | | | | | | * * PERFORM TABLE_GET_DATA. | | * PERFORM SUB_XXX_TABLE_GET_DATA.
* 2.5 调整新的过程SUB_XXX_TABLE_GET_DATA里面的代码 | | | | | | * 注销语句: REFRESH VIM_WHERETAB. | | | | | | | * 注销语句: SELECT * FROM (X_HEADER-MAINTVIEW) INTO TABLE <PRIMTAB> | | | * 新增语句: SELECT * FROM (X_HEADER-MAINTVIEW) INTO TABLE | | | | * <PRIMTAB> WHERE (VIM_WHERETAB) .. | | | | | | * ---->代码如下 | | | | | | | | | * | | | | | | | | | | | * * REFRESH VIM_WHERETAB. | | | | | * * read data from database without wheretab...........................* | | * CREATE DATA PRIMTAB TYPE STANDARD TABLE OF (X_HEADER-MAINTVIEW)."UCb | | | * ASSIGN PRIMTAB->* TO <PRIMTAB>. | | | | | | | * * SELECT * FROM (X_HEADER-MAINTVIEW) INTO TABLE <PRIMTAB>. | * | | | | | | | | * SELECT * FROM (X_HEADER-MAINTVIEW) INTO TABLE <PRIMTAB> WHERE (VIM_WHERETAB) .. | |
* 4. 维护, 显示功能区分 | | | | | | | * 4.1 显示的时候隐藏转到维护截面去的toolbar, 在屏幕0001的PBO里面 | | | * 注销语句:MODULE LISTE_INITIALISIEREN. 起用新的module: | | | * SUB_xxx_LISTE_INITIALISIEREN, 新module的代码copy from | | | * MODULE LISTE_INITIALISIEREN. -->代码如下: | | | | * | | | | | | | | | ** PROCESS BEFORE OUTPUT. | | | | | | ** MODULE LISTE_INITIALISIEREN. | | | | | | | * MODULE SUB_LSL_LISTE_INITIALISIEREN. | | | | | | | | | * LOOP AT EXTRACT WITH CONTROL | | | | | | * TCTRL_ZXXXX CURSOR NEXTLINE. | | | | | | * MODULE LISTE_SHOW_LISTE. | | | | | | * ENDLOOP. | | | | | | | | * | | | | | | | | | * | | | | | | | | | * 4.2 更改MODULE SUB_LSL_LISTE_INITIALISIEREN. | | | | * 在语句: SET CURSOR FIELD F LINE L OFFSET O. 之后 | | | | * 在语句: PERFORM SET_PF_STATUS USING STATUS. 之前, 增加代码 | | | * -->代码如下 | | | | | | | | * | | | | | | | | | * SET CURSOR FIELD F LINE L OFFSET O. | | | | | * | | | **-------如果是显示状态, 则隐藏 [更改] 按钮 | | | | | * DATA: BEGIN OF T_FCODE OCCURS 10, | | | | | * FCODE LIKE RSMPE-FUNC, | | | | | | * END OF T_FCODE. | | | | | | | * IF G_ACTVT = 'S' . "显示 | | | | | | * EXCL_CUA_FUNCT-FUNCTION = 'AEND'. "更改 | | | | | * COLLECT EXCL_CUA_FUNCT. | | | | | | * ENDIF. | | | | | | | | * | | | * PERFORM SET_PF_STATUS USING STATUS. | | | | | *&---------------------------------------------------------------------* | |