ABAP 一个隐藏 selection-screen block的实例
以下是一个演示如何通过 selection-screen 中的pushbutton来动态改变屏幕上的字段的显示状态的(即显示或者隐藏)。
注意:显示 通过本示例可知selection-screen 中的 field 的显示状态都是 的,在程序中修改其属性 active 的值为 '0' 时,该field就回隐藏起来。 但是在下一次屏幕显示前,其默认值又归为显示了。这时候可以在 at selection-screen output 事件或者 PBO中来修改active 值为 '0'即可。
另外,注意使用 modif id *** 来将selection screen 中的 field 指派到 screen-group1 中。 *** 是不超过三个字符的 id 名称,即指定了 screen-group1的值。
*INCLUDE <icon>.
TABLES: sscrfields,
sflight. SELECTION-SCREEN: PUSHBUTTON /() pbo1 "open block 1
USER-COMMAND ucomm_o1 MODIF ID mo1,
PUSHBUTTON /() pbc1 "close block 1
USER-COMMAND ucomm_c1 MODIF ID mc1. SELECTION-SCREEN BEGIN OF BLOCK b01 WITH FRAME. SELECT-OPTIONS: s_car FOR sflight-carrid MODIF ID mc1,
* s_con FOR sflight-connid MODIF ID mc1,
* s_fld FOR sflight-fldate MODIF ID mc1,
s_pri FOR sflight-price MODIF ID mc1. SELECTION-SCREEN END OF BLOCK b01. SELECTION-SCREEN: PUSHBUTTON /() pbo2 "open block 1
USER-COMMAND ucomm_o2 MODIF ID mo2,
PUSHBUTTON /() pbc2 "close block 1
USER-COMMAND ucomm_c2 MODIF ID mc2. SELECTION-SCREEN BEGIN OF BLOCK b02 WITH FRAME. SELECT-OPTIONS: s_car2 FOR sflight-carrid MODIF ID mc2,
* s_con2 FOR sflight-connid MODIF ID mc2,
* s_fld2 FOR sflight-fldate MODIF ID mc2,
s_pri2 FOR sflight-price MODIF ID mc2. SELECTION-SCREEN END OF BLOCK b02. PARAMETERS: par_cb1() TYPE c NO-DISPLAY,
par_cb2() TYPE c NO-DISPLAY. INITIALIZATION. CONCATENATE icon_expand: '打开' '' INTO pbo1,
'打开' '' INTO pbo2. CONCATENATE icon_collapse: '关闭' '' INTO pbc1,
'关闭' '' INTO pbc2.
par_cb1 = 'X'.
par_cb2 = 'X'. AT SELECTION-SCREEN.
CASE sscrfields-ucomm.
WHEN 'UCOMM_O1'.
CLEAR par_cb1.
WHEN 'UCOMM_C1'.
par_cb1 = 'X'.
WHEN 'UCOMM_O2'.
CLEAR par_cb2.
WHEN 'UCOMM_C2'.
par_cb2 = 'X'.
ENDCASE. AT SELECTION-SCREEN OUTPUT.
LOOP AT SCREEN.
PERFORM close_block USING: par_cb1 'MO1' 'X',
par_cb1 'MC1' space,
par_cb2 'MO2' 'X',
par_cb2 'MC2' space. ENDLOOP. START-OF-SELECTION.
DO.
IF sy-index = .
EXIT.
ENDIF.
ENDDO.
*&--------------------------------------------------------------------*
*& Form close_block
*&--------------------------------------------------------------------*
* text
*---------------------------------------------------------------------*
* -->VALUE(U_CLOtextLOCK)
* -->U_MODIFY_IDtext
* -->U_CONVERT text
*---------------------------------------------------------------------*
FORM close_block USING value(u_close_block) LIKE par_cb1
u_modify_id LIKE screen-group1
u_convert. IF NOT u_convert IS INITIAL.
IF u_close_block IS INITIAL.
u_close_block = 'X'.
ELSE.
CLEAR u_close_block.
ENDIF.
ENDIF. IF ( screen-group1 = u_modify_id )
AND ( NOT u_close_block IS INITIAL ).
screen-active = ''.
MODIFY SCREEN.
ENDIF. ENDFORM. "close_block



ABAP 一个隐藏 selection-screen block的实例的更多相关文章
- 【ABAP系列】SAP ABAP选择屏幕(SELECTION SCREEN)事件解析
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP选择屏幕(SEL ...
- 选择屏幕(Selection Screen)
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
- 一个完整的Installshield安装程序实例—艾泽拉斯之海洋女神出品(四) --高级设置二
原文:一个完整的Installshield安装程序实例-艾泽拉斯之海洋女神出品(四) --高级设置二 上一篇:一个完整的安装程序实例—艾泽拉斯之海洋女神出品(三) --高级设置一4. 根据用户选择的组 ...
- 一个完整的Installshield安装程序实例-转
一个完整的Installshield安装程序实例—艾泽拉斯之海洋女神出品(一)---基本设置一 前言 Installshield可以说是最好的做安装程序的商业软件之一,不过因为功能的太过于强大,以至于 ...
- tp5 r3 一个简单的SQL语句调试实例
tp5 r3 一个简单的SQL语句调试实例先看效果核心代码 public function index() { if (IS_AJAX && session("uid&quo ...
- 抓到 Netty 一个隐藏很深的内存泄露 Bug | 详解 Recycler 对象池的精妙设计与实现
欢迎关注公众号:bin的技术小屋,如果大家在看文章的时候发现图片加载不了,可以到公众号查看原文 本系列Netty源码解析文章基于 4.1.56.Final版本 最近在 Review Netty 代码的 ...
- Android 一个Activity保存它自己的实例
一个Activity保存他自己的实例的作用是,在其他Activity中可以方便的调用该Activity里的方法. 我们可以使用一个静态的变量保存当前Activity的实例,并将其标志为private访 ...
- Delphi 中的 procedure of object (类方法存在一个隐藏参数self),简单深刻 good
其实要了解这些东西,适当的学些反汇编,WINDOWS内存管理机制,PE结构,看下李维的VCL架构剖析可以很好理解type TMyEvent = procedure of object;这是一种数据类型 ...
- 关于一个隐藏和显示物品列表的demo
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/stri ...
随机推荐
- c#params ref out
params params 关键字可以指定在参数数目可变处采用参数的方法参数. 在方法声明中的 params 关键字之后不允许任何其他参数,并且在方法声明中只允许一个 params 关键字. 示例: ...
- Dapper,大规模分布式系统的跟踪系统--转
原文地址:http://bigbully.github.io/Dapper-translation/ 概述 当代的互联网的服务,通常都是用复杂的.大规模分布式集群来实现的.互联网应用构建在不同的软件模 ...
- 前端开发教程:使用 CSS3 Transforms 构建圆形导航
在本教程中我将告诉你如何使用 CSS 变换来创建圆形导航.教程逐一讲解实现这个样式将要涉及一些基本的数学知识并配合 CSS 变换来创建这些样式.不过不用担心,这里用到的数学知识真的是很简单的.教程使用 ...
- javascript学习—理解addLoadEvent函数
onload事件是HTML DOM Event 对象的一个属性,又叫事件句柄(Event Handlers),它会在页面或图像加载完成后(注意是加载完成后)立即发生. window.onload = ...
- Elasticsearch安装
在启动或者安装ES之前,需要先下载JDK 1.7以上的版本,对于2.0来说,要求JDK1.8以上. 检查JDK的版本 使用命令: java -version echo $JAVA_HOME 查看JDK ...
- 大M法(Big M Method)
前面一篇讲的单纯形方法的实现,但程序输入的必须是已经有初始基本可行解的单纯形表. 但实际问题中很少有现成的基本可行解,比如以下这个问题: min f(x) = –3x1 +x2 + x3 s.t. x ...
- Django之路由、模板和模型系统
一.路由系统 浏览器会自动给url后加一个"/" django会自动给路由的正则表达式前面加一个"/" django会给任何不带"/"结尾的 ...
- 基于 CSS3 Media Queries 的 HTML5 应用
先来介绍下 media,确切的说应该是 CSS media queries(CSS 媒体查询),媒体查询包含了一个媒体类型和至少一个使用如宽度.高度和颜色等媒体属性来限制样式表范围的表达式.CSS3 ...
- 前端自动化开发之grunt
上篇文章介绍了前端模块化开发工具seaJs,利用seaJs我们可以轻松实现前端的模块化编程,参见http://www.cnblogs.com/luozhihao/p/4818782.html 那么今天 ...
- 关于MVC中模型model的验证问题
今天在做项目练习的时候发现,MVC中使用自带的模型验证时会提前显示在界面上,比如下面所示: 这是什么原因了,是因为我在表示get请求的action里面返回了其界面所显示使用的model,我们知道mvc ...