SCREEN 实例(重点在于FIELD的验证结合CHAIN的用法)
2011-02-12 17:06
363 查看
REPORT中代码------------------------------------------------------------------------------------------
TABLES SPFLI.
DATA: OK_CODE TYPE SY-UCOMM.
DATA: S***E_OK TYPE SY-UCOMM.
DATA: FLD1(20) TYPE C,
FLD2(20) TYPE C,
FLD3(20) TYPE C,
FLD4(20) TYPE C,
ACTION(50) TYPE C.
*&---------------------------------------------------------------------*
*& Module CANCEL INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
CALL SCREEN 100.
module CANCEL input.
LE***E PROGRAM.
endmodule. " CANCEL INPUT
*&---------------------------------------------------------------------*
*& Module USER_COMMAND_0100 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
module USER_COMMAND_0100 input.
S***E_OK = OK_CODE.
CLEAR OK_CODE.
CASE S***E_OK.
WHEN 'EXIT'.
LE***E PROGRAM.
ENDCASE.
* SELECT SINGLE *
* INTO CORRESPONDING FIELDS OF SPFLI
* FROM SPFLI
* WHERE CARRID EQ SPFLI-CARRID AND CONNID EQ SPFLI-CONNID.
*IF sy-subrc ne 0.
* CLEAR spfli.
*ENDIF.
ACTION = ''.
CONCATENATE FLD1 FLD2 FLD3 FLD4 INTO ACTION.
endmodule. " USER_COMMAND_0100 INPUT
*&---------------------------------------------------------------------*
*& Module STATUS_0100 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
module STATUS_0100 output.
SET PF-STATUS 'STATUS1'.
* SET TITLEBAR 'xxx'.
endmodule. " STATUS_0100 OUTPUT
*&---------------------------------------------------------------------*
*& Module CHECK1 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
module CHECK1 input.
IF fld1 = 'FLD1'.
MESSAGE e398(00) WITH 'FLD1 ERROR'.
ENDIF.
IF FLD1 = 'FLD11'.
MESSAGE I398(00) WITH 'FLD1 WARNING'.
ENDIF.
IF FLD1 = 'FLD111'.
MESSAGE S398(00) WITH 'FLD1 OK'.
ENDIF.
endmodule. " CHECK1 INPUT
*&---------------------------------------------------------------------*
*& Module CHECK2 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
module CHECK2 input.
IF FLD3 = 'FLD3'.
MESSAGE E398(00) WITH 'FLD3 ERROR'.
ENDIF.
IF FLD3 = 'FLD33'.
MESSAGE I398(00) WITH 'FLD3 WARNING'.
ENDIF.
IF FLD3 = 'FLD333'.
MESSAGE S398(00) WITH 'FLD3 OK'.
ENDIF.
endmodule. " CHECK2 INPUT
*&---------------------------------------------------------------------*
*& Module CHECK3 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
module CHECK3 input.
MESSAGE I398(00) WITH 'FLD2 * WARNING'.
endmodule. " CHECK3 INPUT
屏幕100的逻辑流---------------------------------------------------------------------------------------
PROCESS BEFORE OUTPUT.
MODULE STATUS_0100.
*
PROCESS AFTER INPUT.
CHAIN.
FIELD: FLD1, FLD2.
MODULE CHECK1.
ENDCHAIN.
CHAIN.
FIELD: FLD3, FLD4.
MODULE CHECK2.
ENDCHAIN.
FIELD FLD2 MODULE CHECK3 ON *-INPUT.
MODULE CANCEL AT EXIT-COMMAND.
MODULE USER_COMMAND_0100.
TABLES SPFLI.
DATA: OK_CODE TYPE SY-UCOMM.
DATA: S***E_OK TYPE SY-UCOMM.
DATA: FLD1(20) TYPE C,
FLD2(20) TYPE C,
FLD3(20) TYPE C,
FLD4(20) TYPE C,
ACTION(50) TYPE C.
*&---------------------------------------------------------------------*
*& Module CANCEL INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
CALL SCREEN 100.
module CANCEL input.
LE***E PROGRAM.
endmodule. " CANCEL INPUT
*&---------------------------------------------------------------------*
*& Module USER_COMMAND_0100 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
module USER_COMMAND_0100 input.
S***E_OK = OK_CODE.
CLEAR OK_CODE.
CASE S***E_OK.
WHEN 'EXIT'.
LE***E PROGRAM.
ENDCASE.
* SELECT SINGLE *
* INTO CORRESPONDING FIELDS OF SPFLI
* FROM SPFLI
* WHERE CARRID EQ SPFLI-CARRID AND CONNID EQ SPFLI-CONNID.
*IF sy-subrc ne 0.
* CLEAR spfli.
*ENDIF.
ACTION = ''.
CONCATENATE FLD1 FLD2 FLD3 FLD4 INTO ACTION.
endmodule. " USER_COMMAND_0100 INPUT
*&---------------------------------------------------------------------*
*& Module STATUS_0100 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
module STATUS_0100 output.
SET PF-STATUS 'STATUS1'.
* SET TITLEBAR 'xxx'.
endmodule. " STATUS_0100 OUTPUT
*&---------------------------------------------------------------------*
*& Module CHECK1 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
module CHECK1 input.
IF fld1 = 'FLD1'.
MESSAGE e398(00) WITH 'FLD1 ERROR'.
ENDIF.
IF FLD1 = 'FLD11'.
MESSAGE I398(00) WITH 'FLD1 WARNING'.
ENDIF.
IF FLD1 = 'FLD111'.
MESSAGE S398(00) WITH 'FLD1 OK'.
ENDIF.
endmodule. " CHECK1 INPUT
*&---------------------------------------------------------------------*
*& Module CHECK2 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
module CHECK2 input.
IF FLD3 = 'FLD3'.
MESSAGE E398(00) WITH 'FLD3 ERROR'.
ENDIF.
IF FLD3 = 'FLD33'.
MESSAGE I398(00) WITH 'FLD3 WARNING'.
ENDIF.
IF FLD3 = 'FLD333'.
MESSAGE S398(00) WITH 'FLD3 OK'.
ENDIF.
endmodule. " CHECK2 INPUT
*&---------------------------------------------------------------------*
*& Module CHECK3 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
module CHECK3 input.
MESSAGE I398(00) WITH 'FLD2 * WARNING'.
endmodule. " CHECK3 INPUT
屏幕100的逻辑流---------------------------------------------------------------------------------------
PROCESS BEFORE OUTPUT.
MODULE STATUS_0100.
*
PROCESS AFTER INPUT.
CHAIN.
FIELD: FLD1, FLD2.
MODULE CHECK1.
ENDCHAIN.
CHAIN.
FIELD: FLD3, FLD4.
MODULE CHECK2.
ENDCHAIN.
FIELD FLD2 MODULE CHECK3 ON *-INPUT.
MODULE CANCEL AT EXIT-COMMAND.
MODULE USER_COMMAND_0100.
相关文章推荐
- FIELD MODULE结合CHAIN在SCREEN中的应用实例
- XSD(XML Schema Definition)用法实例介绍以及C#使用xsd文件验证XML格式
- 表单验证ASP.NET RequiredFieldValidator 控件使用方法及使用实例
- Android 结合实例学会AsyncTask的用法
- XSD(XML Schema Definition)用法实例介绍以及C#使用xsd文件验证XML格式
- php基于表单密码验证与HTTP验证用法实例
- Ueditor angularjs化过程记录(重点在于验证)
- XSD(XML Schema Definition)用法实例介绍以及C#使用xsd文件验证XML格式
- 动态sql语句用法实例:SQL Server2000下验证(部分转载)
- XSD(XML Schema Definition)用法实例介绍以及C#使用xsd文件验证XML格式
- js正则表达式用法实例:验证邮箱格式、密码复杂度、手机号码、QQ号码
- php基于表单密码验证与HTTP验证用法实例
- RRDtool的用法(结合实例)
- Android 结合实例学会AsyncTask的用法
- 实例验证网络字节序、主机字节序转换函数 htonl htons ntohl ntohs的用法以及需要注意的问题
- dwr笔记二之经典用法之和spring结合+验证用户是否存在
- dwr笔记二之经典用法之和spring结合+验证用户是否存在
- js正则表达式用法实例:验证邮箱格式、密码复杂度、手机号码、QQ号码
- jQuery与getJson结合的用法实例