申明:博客针对初级顾问
选择屏幕,比如查询报表,有时候需要根据用户选择动态隐藏筛选条件
如果仅仅是灰掉不可显示,直接
screen
-
input
=
0
.就行,(1可编辑0不可编辑)
如果需要不显示,
screen
-
invisible
=
'1'
.
如果使用了
SELECT-OPTIONS:而且没有设置
NO-EXTENSION
后面会多出一个选择值的按钮来。
其实想去掉很简单,直接debug看这个对应的名称就行了。
一般前面lab页签是
%_定义字段名称_%_APP_%-TEXT
后面的值选择按钮是
'%_
定义字段名称
_%_APP_%-VALU_PUSH'
案例如下:
TABLES: bsid,vbak,vbrk,vbrp,knc1.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
PARAMETERS p_r
RADIOBUTTON GROUP g1 USER-COMMAND select DEFAULT 'X'. "日模式
PARAMETERS p_y
RADIOBUTTON GROUP g1
.
"月模式
SELECTION-SCREEN END OF BLOCK b1.
SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE t1 .
SELECT-OPTIONS:
PARAMETERS:
SELECTION-SCREEN END OF BLOCK b2.
AT SELECTION-SCREEN OUTPUT .
PERFORM frm_modify_screen.
START-OF-SELECTION.
FORM frm_modify_screen
.
LOOP
AT
SCREEN
.
IF p_r
IS
NOT
INITIAL
.
"如果是日模式,隐藏会计年底和期间
t1
=
text
-
002
.
IF
screen
-name
=
'S_GJAHR'
OR
screen
-name
=
'P_SPAN'
OR
screen
-name
=
'%_P_SPAN_%_APP_%-TEXT'
.
CLEAR p_span
.
CLEAR s_gjahr[]
.
screen
-
input
=
0
.
screen
-invisible
=
'1'
.
ENDIF
.
ELSE
.
"如果是月模式,隐藏业务范围和记账日期
t1
=
text
-
003
.
IF
screen
-name
=
'S_GSBER-LOW'
OR
screen
-name
=
'P_BUDAT'
OR
screen
-name
=
'S_GSBER-HIGH'
OR
screen
-name
=
'%_S_GSBER_%_APP_%-TEXT'
"前面描述 lab签
OR
screen
-name
=
'%_S_GSBER_%_APP_%-VALU_PUSH'
"select options 后面的值选择按钮
OR
screen
-name
=
'%_P_BUDAT_%_APP_%-TEXT'
.
CLEAR p_budat
.
CLEAR s_gsber[]
.
screen
-active
=
'1'
.
screen
-invisible
=
'1'
.
screen
-
input
=
0
.
ENDIF
.
ENDIF
.
MODIFY
SCREEN
.
ENDLOOP
.
ENDFORM .
" FRM_MODIFY_SCREEN
ENDFORM .