SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN POSITION 20.
PARAMETERS NAME(10).
SELECTION-SCREEN POSITION 40.
PARAMETERS BIRTH TYPE D.
SELECTION-SCREEN END OF LINE.
************************************************************************
* SELECTION-SELECTION 定义选择屏幕输入条件
************************************************************************
SELECTION-SCREEN:BEGIN OF BLOCK b1 WITH FRAME TITLE text-s01.
PARAMETERS: pa_werks LIKE ekpo-werks OBLIGATORY MEMORY ID wer . "工厂
SELECT-OPTIONS: so_lifnr FOR ekko-lifnr , "供应商
so_matnr FOR ekpo-matnr. "物料
SELECTION-SCREEN:END OF BLOCK b1.
*OBLIGATORY必须输入
* MEMORY ID控制显示
SELECTION-SCREEN BEGIN OF BLOCK RADIO
WITH FRAME .
PARAMETER R1 RADIOBUTTON GROUP GR1.
PARAMETER R2 RADIOBUTTON GROUP GR1.
PARAMETER R3 RADIOBUTTON GROUP GR1.
SELECTION-SCREEN END OF BLOCK RADIO.
parameters和select-option中的一些用法:
(1)使用DEFAULT后缀为参数指定缺省值
parameters:p1(20) type c default 'msj'.
(2)使用obligatory后缀来标识参数为必输项。指定了该参数后在输入框会有必输项的图标出现, 必须输入数据后才可继续运行。
(3)使用as checkbox后缀使参数以复选框的形式出现。使用复选框的参数一定为长度为1的字符串,其内容只能为’X’或‘’。
parameters:p4 as checkbox .
parameters:p5 as checkbox default 'X'.
(4)NO-EXTENSION:限制选择表为单行,元素输入后面不会出现按钮[iks?ten??n]
NO INTERVALS:只会出现LOW字段,To后面的HIGH字段不出现在选择屏幕上,但是用户仍然可以在Mutiple Selection窗口中输入范围选择。也就是说:只要有按钮,就可以选择多个条件与范围值
3、在选择屏幕的复选框CheckBox中,默认这个复选框选中用的是 DEFAULT ‘X’
4、MATCHCODE OBJECT search_help. 为屏幕对象加上指定的 F4 帮助.
5、AND 是并且的意思
or 是或者的意思
6、实现选择屏幕不可输入的条件
AT SELECTION-SCREEN OUTPUT. (表示在选择屏幕之后)
LOOP AT SCREEN.
IF pa_check = 'X'.
IF screen-name = 'PA_MATNR'.
screen-input = 0. "0代表不能输入 1代表可以输入!
MODIFY SCREEN.
ENDIF.
ENDIF.
ENDLOOP.
AT SELECTION-SCREEN.(表示在选择屏幕之前)
7、实现选中复选框以后才能进行输入。(重要!!!)
注意:输入框和单选按钮都必须要在PARAMETERS中定义才可以。
PARAMETERS: P_XREF3 type BSEG-XREF3 , "款项性质
CK_YFZK AS CHECKBOX USER-COMMAND c1, "预付账款
USER-COMMAND:是在点击屏幕按钮的时候,将触发这个过程,因此要想实现输入框在选中了某个按钮后能输入,必须要使用这个。
AT SELECTION-SCREEN OUTPUT. (表示在选择屏幕之后)
LOOP AT SCREEN.
IF SCREEN-NAME EQ 'P_XREF3'.
SCREEN-INPUT = 0 ."0代表不能输入 1代表可以输入!
ENDIF.
MODIFY SCREEN.
if CK_YFZK = 'X'.
if SCREEN-NAME EQ 'P_XREF3' .
SCREEN-INPUT = 1.
ENDIF.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
8、导入Excel模板的语法
GV_OBJECT_KEY TYPE SBDST_OBJECT_KEY VALUE 'ZFIR045TMPL', "导入EXCEL模板
9、 LOOP AT SCREEN
实现的功能:当点击screen上的一个check box 或者Radio Button时,隐藏或者显示某些parameters或select options。
10、 计算内表的行数
DESCRIBE TABLE lt_mat LINES lv_cont.
这行的意思是 计算内表 lt_mat 的行数 ,将行数放到变量 lv_cont 里。
11、ABAP中的CHAIN…ENDCHAIN
(1)
CHAIN.
FIELD <FLD1>.
FIELD <FLD2>,<FLD3>,<FLD4>.
MODULE <MDL1>.
MODULE <MDL2>.
ENDCHAIN.
以上两种没有条件限制,都会走MODULE里面的逻辑校验,
(2)
CHAIN.
FIELD: A, B, C.
FIELD: D, E, F.
MODULE X ON CHAIN-INPUT.
MODULE Y.
ENDCHAIN.
如果字段A、B、C、D、E和F中任何一个具有不同于初始值(空或者0),则调用模块X。而始终调用模块Y。 如果Y发现错误, 则在错误对话期间,重新打开这六 个字段并等待输入。
(3)
CHAIN.
FIELD: A, B, C MODULE X ON INPUT.
ENDCHAIN.
只有当列表中的最后字段(C)包含非初始值时,才调用模块X。如果X发现错误,则在错误对话框中重新打这开三个字段(A, B,C)并等待输入。
(4)
CHAIN.
FIELD: A, B, C MODULE X ON CHAIN-REQUEST.
ENDCHAIN.
只有当列表中的最后字段(C)的值发生改变时,才调用模块X。如果X发现错误,则在错误对话框中重新打这开三个字段(A, B,C)并等待输入。
INPUT:是包含非初始值
CHAIN-REQUEST:是指发生改变