首先创建表结构,本文将对下列自建表限制字段TXT50资产描述不可输入,根据公司代码及资产号码自动带出资产描述,校验所填的公司代码及资产号在表ANLA中存在。
1.创建表维护生成器
2.双击上图中的概述屏幕1,进入屏幕 1的代码。或者事务代码SE80输入刚刚表维护生成器生成的函数组ZTFI231_DIYAN,进入屏幕1修改代码
3.控制不可输入的代码必须写在PBO模块,所以我写在了下图位置
4.创建模块Z_SHOW_LISTE 代码。表维护生成器生成的代码引用了很多标准代码,我们不要动到标准的代码,在函数组的包含里面,往最下面拖,找到我们自己创建的这个函数组的可以写代码的位置,这里我写到了LZTFI231_DIYANF00里面,在LZTFI231_DIYANF00创建了第三步写的module
代码如下,PBO的MODULE后面要加OUTPUT,代码的意思就是循环屏幕参数,当屏幕参数是TXT50这个字段的时候,将INPUT设置为0,改成不可输入。5.
MODULE Z_SHOW_LISTE OUTPUT.
LOOP AT SCREEN.
IF SCREEN-NAME = 'ZTFI231_DIYAN-TXT50'.
SCREEN-INPUT = 0 .
MODIFY SCREEN .
ENDIF.
ENDLOOP.
ENDMODULE .
5.创建模块MOD_GET_ANAL_TEXT50,获取资产描述,并校验数据是否合法,回到刚刚的屏幕1在这个位置加一个模块代码,这个代码快一定要在loop循环里面,才能带出每一行的描述并且校验每一行
6.同样创建该模块,写入赋值描述及校验的代码
代码很简单,就不做解释了
MODULE MOD_GET_ANAL_TEXT50 .
SELECT SINGLE ANLA~TXT50 FROM ANLA
WHERE BUKRS = @ZTFI231_DIYAN-BUKRS
AND ANLN1 = @ZTFI231_DIYAN-ANLN1
INTO @ZTFI231_DIYAN-TXT50 .
IF SY-SUBRC <> 0.
" CLEAR : ZTFI231_DIYAN-BUKRS , ZTFI231_DIYAN-ANLN1 .
MESSAGE '该公司代码下无此资产' TYPE 'E' .
ENDIF.
ENDMODULE .
最终展示效果如下
常驻CSDN欢迎留言交流