ITPub博客

首页 > 应用开发 > IT综合 > 关于SCREEN的部分输入条件可隐藏的问题(二)

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

原创 IT综合 作者:lha2010 时间:2011-05-06 17:20:53 0 删除 编辑

通过关于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博客 ” ,链接:https://blog.itpub.net/24345566/viewspace-1049533/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: SAP 财务表
请登录后发表评论 登录
全部评论

注册时间:2013-03-16

  • 博文量
    18
  • 访问量
    17861