关于SCREEN的部分输入条件可隐藏的问题(二)

本文介绍了如何通过输入参数决定是否展示隐藏界面,并实现了按特定输入内容触发不同隐藏块的显示,包括根据‘AA’和‘AZ’输入分别展开‘CITYFROM’和‘CITYTO’选项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

通过关于SCREEN的部分输入条件可隐藏的问题(一)的介绍,我想再做一下延伸

1.

实现根据输入SPFLI-CARRID的内容,决定是否把隐藏界面打开。比如carrid字段中有“AA”、“AZ”、“DL”等,如果输入“AA”的话,隐藏界面打开,否则不打开。通过如下代码实现:

REPORT ZT .

TYPE-POOLS ICON.

TABLES SPFLI.

SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TXT-001.

PARAMETERS S_CARRID TYPE SPFLI-CARRID.

SELECTION-SCREEN END OF BLOCK B1.

SELECTION-SCREEN BEGIN OF LINE.

SELECTION-SCREEN PUSHBUTTON 1(4) BUT1 USER-COMMAND BUTTON1 VISIBLE LENGTH 2.

SELECTION-SCREEN COMMENT 6(20) COM1.

SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE TXT-002.

SELECT-OPTIONS:S_CIFROM FOR SPFLI-CITYFROM MODIF ID AX,

S_CITYTO FOR SPFLI-CITYTO MODIF ID AX.

SELECTION-SCREEN END OF BLOCK B2 .

INITIALIZATION.

WRITE ICON_DATA_AREA_EXPAND AS ICON TO BUT1 .

COM1 = 'DATA EXPAND'.

AT SELECTION-SCREEN.

CASE SY-UCOMM.

WHEN 'BUTTON1'.

IF BUT1 = '@K1@' and s_carrid = 'AA'.

WRITE ICON_DATA_AREA_COLLAPSE AS ICON TO BUT1.

COM1 = 'DATA COLLAPSE'.

ELSE.

WRITE ICON_DATA_AREA_EXPAND AS ICON TO BUT1.

COM1 = 'DATA EXPAND'.

ENDIF.

ENDCASE.

AT SELECTION-SCREEN OUTPUT.

LOOP AT SCREEN.

IF BUT1 = '@K1@' AND SCREEN-GROUP1 = 'AX'.

SCREEN-ACTIVE = 0.

MODIFY SCREEN.

ENDIF.

ENDLOOP.

我们看“IF BUT1 = '@K1@' and s_carrid = 'AA'”这段代码是关键的地方,这样写的话打开输入界面的时候,隐藏块只在“AA”的时候才可能点击出现。

2.

通过1的处理,实现按输入出现隐藏块。现在我还想实现“按输入的字段内容决定输入块的内容”。即:输入“AA”出现CITYFROM的隐藏块,输入“AZ”出现CITYTO的隐藏块,输入其它内容则不会出现隐藏块。

首先我需要再做一个块,然后在代码上做一下调整。

SCREEN-ACTIVE = 0.0表示隐藏,这点至关重要。

TYPE-POOLS ICON.

TABLES SPFLI.

SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TXT-001.

PARAMETERS S_CARRID TYPE SPFLI-CARRID.

SELECTION-SCREEN END OF BLOCK B1.

SELECTION-SCREEN BEGIN OF LINE.

SELECTION-SCREEN PUSHBUTTON 1(4) BUT1 USER-COMMAND BUTTON1 VISIBLE LENGTH 2.

SELECTION-SCREEN COMMENT 6(20) COM1.

SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE TXT-002.

SELECT-OPTIONS:S_CIFROM FOR SPFLI-CITYFROM MODIF ID AX.

SELECTION-SCREEN END OF BLOCK B2 .

SELECTION-SCREEN BEGIN OF BLOCK B3 WITH FRAME TITLE TXT-003.

SELECT-OPTIONS:S_CITYTO FOR SPFLI-CITYTO MODIF ID BX.

SELECTION-SCREEN END OF BLOCK B3 .

INITIALIZATION.

WRITE ICON_DATA_AREA_EXPAND AS ICON TO BUT1 .

COM1 = 'DATA EXPAND'.

AT SELECTION-SCREEN.

CASE SY-UCOMM.

WHEN 'BUTTON1'.

IF BUT1 = '@K1@' AND S_CARRID = 'AA'

OR BUT1 = '@K1@' AND S_CARRID = 'AZ'.

WRITE ICON_DATA_AREA_COLLAPSE AS ICON TO BUT1.

COM1 = 'DATA COLLAPSE'.

ELSE.

WRITE ICON_DATA_AREA_EXPAND AS ICON TO BUT1.

COM1 = 'DATA EXPAND'.

ENDIF.

ENDCASE.

AT SELECTION-SCREEN OUTPUT.

LOOP AT SCREEN.

IF BUT1 = '@K1@' AND SCREEN-GROUP1 = 'AX'

OR BUT1 = '@K1@' AND SCREEN-GROUP1 = 'BX'.

SCREEN-ACTIVE = 0.

MODIFY SCREEN.

ENDIF.

IF BUT1 = '@K2@' AND SCREEN-GROUP1 = 'AX' AND s_carrid = 'AZ'.

SCREEN-ACTIVE = 0.

MODIFY SCREEN.

ENDIF.

IF BUT1 = '@K2@' AND SCREEN-GROUP1 = 'BX' AND s_carrid = 'AA'.

SCREEN-ACTIVE = 0.

MODIFY SCREEN.

ENDIF.

ENDLOOP.

[@more@]

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/24345566/viewspace-1049533/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/24345566/viewspace-1049533/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值