"选择屏幕设计,第一个框架:" SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001. SELECTION-SCREEN COMMENT 1(20) TXT01. PARAMETERS: PA TYPE C RADIOBUTTON GROUP G1 DEFAULT 'X' USER-COMMAND FLAG , "这里很关键,user-command xxx 表示这个组件改变时发出事件信息。" PB TYPE C RADIOBUTTON GROUP G1. SELECTION-SCREEN END OF BLOCK B1. "第二个框架" SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-002. SELECTION-SCREEN:BEGIN OF LINE , COMMENT 1(8) TXT02 FOR FIELD P1 . PARAMETER P1 TYPE C LENGTH 20 MODIF ID IN2. "这里是第二个关键,使用modif id xxx,注意这里不是modify 不要混淆,还有id名最多为三位,比如inp,如果超过三位会报错。P1即物料号,这里ID IN2。" SELECTION-SCREEN END OF LINE. SELECTION-SCREEN SKIP 1. SELECTION-SCREEN:BEGIN OF LINE, COMMENT 1(8) TXT03. PARAMETER P2 TYPE C LENGTH 30 MODIF ID IN2. "P2也就是物料描述,和P1一样modif id 为IN2" SELECTION-SCREEN END OF LINE. SELECTION-SCREEN END OF BLOCK B2. "第三个框架" SELECTION-SCREEN BEGIN OF BLOCK B3 WITH FRAME TITLE TEXT-003. SELECTION-SCREEN BEGIN OF LINE. SELECTION-SCREEN COMMENT 1(10) TXT04 FOR FIELD P3. PARAMETER P3 TYPE C LENGTH 20 MODIF ID IN3."这里ID 为IN3。" SELECTION-SCREEN END OF LINE. SELECTION-SCREEN END OF BLOCK B3. "第四个框架" SELECTION-SCREEN BEGIN OF BLOCK B4 WITH FRAME TITLE TEXT-004. PARAMETER PC AS CHECKBOX USER-COMMAND MARK."选择框" SELECTION-SCREEN BEGIN OF LINE. SELECTION-SCREEN COMMENT 1(10) TXT05. PARAMETER P4(20) TYPE C MODIF ID IN4 ."ID:IN4" SELECTION-SCREEN END OF LINE. SELECTION-SCREEN END OF BLOCK B4. INITIALIZATION. TXT01 = '请选择物料类型:'. TXT02 = '物料号:'. TXT03 = '物料描述:'. TXT04 = '采购订单号:'. TXT05 = '备注'. "如果说上面是给控制和被控制组件打上标记,这里就是逻辑控制实现控制组件改变被控制组件的属性。" AT SELECTION-SCREEN OUTPUT. LOOP AT SCREEN."SCREEN为SAP系统结构,可以在se11中查看" IF SCREEN-GROUP1 = 'IN2' AND PA <> 'X'. SCREEN-INPUT = 0."input属性为1是可输入,0是无法输入。" CLEAR: P1,P2. ENDIF. IF SCREEN-GROUP1 = 'IN3' AND PB <> 'X'. SCREEN-INPUT = 0. CLEAR: P3. ENDIF. IF SCREEN-GROUP1 = 'IN4' AND PC <> 'X'. SCREEN-ACTIVE = 0."同理,ACTIVE为1显示,为0隐藏。" CLEAR:P4. ENDIF. MODIFY SCREEN."提交修改后的属性" ENDLOOP. "at selection-screen output,是一个动态的内容,也就是说当我们改变屏幕元素的时候,这里相应跟着改变。" AT SELECTION-SCREEN."提交错误消息" CASE SY-UCOMM. WHEN 'ONLI'. "当点击执行时。" IF PA = 'X' . IF P1 IS INITIAL OR P2 IS INITIAL. MESSAGE '请填写相关物料信息!' TYPE 'E'. ENDIF. ELSEIF PB = 'X'. IF P3 IS INITIAL. MESSAGE '请填写采购订单号!' TYPE 'E'. ENDIF. ELSEIF PC = 'X'. IF P4 IS INITIAL. MESSAGE '请填写备注内容!' TYPE 'E'. ENDIF. ENDIF. ENDCASE. START-OF-SELECTION. PERFORM DISPLAY. END-OF-SELECTION. "这是简单的一个展示表格,不多赘述。" FORM DISPLAY. DATA:STR1 TYPE STRING, STR2 TYPE STRING, STR3 TYPE STRING, STR4 TYPE STRING. IF PA = 'X' . STR1 = P1. STR2 = P2. STR3 = ' 无'. STR4 = P4. ELSEIF PB = 'X'. STR1 = 'WG0000000001'. STR2 = '外购物料'. STR3 = P3. STR4 = P4. ENDIF. WRITE:/30(20) '物料信息表' CENTERED . ULINE:/10(100)."画横线 WRITE:/1(9) '' INTENSIFIED COLOR = 0, AT 10 SY-VLINE, 11(20) '物料号' , AT 31 SY-VLINE, 32(30) '物料描述', AT 63 SY-VLINE, 64(20) '采购订单', AT 85 SY-VLINE, 86(20) '备注', AT 109 SY-VLINE. ULINE:/10(100). WRITE:/1(9) '' INTENSIFIED COLOR = 0, AT 10 SY-VLINE, 11(20) STR1, AT 31 SY-VLINE, 32(30) STR2, AT 63 SY-VLINE, 64(20) STR3, AT 85 SY-VLINE, 86(20) STR4, AT 109 SY-VLINE. ULINE:/10(100).
网友评论