选择屏幕动态隐藏字段(SELECT-OPT…
2014-08-14 13:31
309 查看
申明:博客针对初级顾问
选择屏幕,比如查询报表,有时候需要根据用户选择动态隐藏筛选条件
如果仅仅是灰掉不可显示,直接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:
s_bukrs FOR
bsid-bukrs ,
" 公司代码
s_vkorg FOR
vbak-vkorg ,
" 销售组织
s_fkdat FOR
vbrk-fkdat ,
" 发票日期
s_kkber FOR
vbrk-kkber ,
" 信贷范围
s_kunag FOR
vbrk-kunag ,
" 售达方
s_gsber FOR
vbrp-gsber ,
" 业务范围
s_gjahr FOR
knc1-gjahr .
"
会计年度
PARAMETERS:
p_budat TYPE bsid-budat
,
" 记账日期
p_span TYPE
num1 .
" 期间
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
选择屏幕,比如查询报表,有时候需要根据用户选择动态隐藏筛选条件
如果仅仅是灰掉不可显示,直接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:
s_bukrs FOR
bsid-bukrs ,
" 公司代码
s_vkorg FOR
vbak-vkorg ,
" 销售组织
s_fkdat FOR
vbrk-fkdat ,
" 发票日期
s_kkber FOR
vbrk-kkber ,
" 信贷范围
s_kunag FOR
vbrk-kunag ,
" 售达方
s_gsber FOR
vbrp-gsber ,
" 业务范围
s_gjahr FOR
knc1-gjahr .
"
会计年度
PARAMETERS:
p_budat TYPE bsid-budat
,
" 记账日期
p_span TYPE
num1 .
" 期间
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
相关文章推荐
- 动态隐藏/显示选择屏幕
- 第一次提问题--根据dropdownlist 的选择而动态显示或隐藏GridView的某些字段!!
- 如何限制SELECT-OPTIONS的选择屏幕的OPTION
- select下拉列表动态显示选择公司及部门信息——级联
- c#从Access数据库中选择时,Select条件有日期时间型字段的问题
- 动态选择屏幕
- 选择 年 月 日后 计算出该月共有几周,动态显示在select中
- 如何限制SELECT-OPTIONS的选择屏幕的OPTION
- 并发程序报错:ORA-01007: variable not in select list(选择列表中没有变量) 以及相关动态指针写法
- 如何动态选择字段作为条件来查询
- sap 隐藏选择屏幕上的某个选择项
- 如何限制SELECT-OPTIONS的选择屏幕的OPTION
- IbatisNet maps中select,insert,update中动态字段
- 如何限制SELECT-OPTIONS的选择屏幕的OPTION
- 如何限制SELECT-OPTIONS的选择屏幕的OPTION
- select 动态列表选择
- 选择屏幕字段的自动转化为内部形式
- JS动态改变select选择变更option的index值
- 隐藏标准选择屏幕的执行按钮
- ie6中select标签动态插入选择项<option>后不能设置selected属性