ABAP 一个隐藏 selection-screen block的实例

时间:2022-08-19 01:53:45

以下是一个演示如何通过 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 一个隐藏 selection-screen block的实例ABAP 一个隐藏 selection-screen block的实例

ABAP 一个隐藏 selection-screen block的实例的更多相关文章

  1. 【ABAP系列】SAP ABAP选择屏幕&lpar;SELECTION SCREEN&rpar;事件解析

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP选择屏幕(SEL ...

  2. 选择屏幕&lpar;Selection Screen&rpar;

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  3. 一个完整的Installshield安装程序实例—艾泽拉斯之海洋女神出品(四) --高级设置二

    原文:一个完整的Installshield安装程序实例-艾泽拉斯之海洋女神出品(四) --高级设置二 上一篇:一个完整的安装程序实例—艾泽拉斯之海洋女神出品(三) --高级设置一4. 根据用户选择的组 ...

  4. 一个完整的Installshield安装程序实例-转

    一个完整的Installshield安装程序实例—艾泽拉斯之海洋女神出品(一)---基本设置一 前言 Installshield可以说是最好的做安装程序的商业软件之一,不过因为功能的太过于强大,以至于 ...

  5. tp5 r3 一个简单的SQL语句调试实例

    tp5 r3 一个简单的SQL语句调试实例先看效果核心代码 public function index() { if (IS_AJAX && session("uid&quo ...

  6. Android 一个Activity保存它自己的实例

    一个Activity保存他自己的实例的作用是,在其他Activity中可以方便的调用该Activity里的方法. 我们可以使用一个静态的变量保存当前Activity的实例,并将其标志为private访 ...

  7. Delphi 中的 procedure of object (类方法存在一个隐藏参数self),简单深刻 good

    其实要了解这些东西,适当的学些反汇编,WINDOWS内存管理机制,PE结构,看下李维的VCL架构剖析可以很好理解type TMyEvent = procedure of object;这是一种数据类型 ...

  8. 关于一个隐藏和显示物品列表的demo

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/stri ...

  9. 一个使用CSocket类的网络通信实例

    http://www.cppblog.com/changshoumeng/archive/2010/05/14/115413.html 3.8 一个使用CSocket类的网络通信实例 本例采用CSoc ...

随机推荐

  1. tcpdum使用

    安装tcpdump包:yum install -y tcpdump ,不加”-i eth0”是表示抓取所有的接口包括lo. 1.抓取包含10.88.88.96的数据包 # tcpdump -i eth ...

  2. ubuntu 安装fcitx输入法

    ubuntu 14 的环境 我用的ibus输入法和firefox 36.0.4 版本相互冲突,有bug.在输入栏无法选中,以及复制.查其原因是ibus输入法有问题,需要重新换个输入法. 我先卸载了ib ...

  3. poj1456 结构体排序&plus;贪心

    题意:给出很多商品,每个商品有价值和出售期限,只能在期限内出售才能获取利润,每一个单位时间只能出售一种商品,问最多能获得多少利润. 只需要按照优先价值大的,其次时间长的排序所有物品,然后贪心选择,从它 ...

  4. 30个实用的Linux find命令

    除了在一个目录结构下查找文件这种基本的操作,你还可以用find命令实现一些实用的操作,使你的命令行之旅更加简易.本文将介绍15种无论是于新手还是老鸟都非常有用的Linux find命令 . 首先,在你 ...

  5. POJ 1007

    DNA Sorting Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 83069 Accepted: 33428 Descrip ...

  6. hdu 3722 二分图 最优完备匹配 KM算法

    这题只要想到是最优完备匹配就行了: 题意:给出n个字符串,若两两相连,将前一个反置添加到后一个后面,相连的值为两个字串从头开始相等的字符个数: 问如何匹配得出最大值: 思路:建图,套模板. 代码: # ...

  7. NRF52832与W25Q80通信

    1 NRF52832SPI主机的功能描述 nRF52832SPIM的主要特征 3个SPI实例 支持SPI的模式0到模式3 支持DMA Individual selection of IO pin fo ...

  8. 709&period; To Lower Case

    Algorithm to-lower-case https://leetcode.com/problems/to-lower-case/ 1)problem Implement function To ...

  9. SNF快速开发平台MVC-EasyUI3&period;9之-DataGrid表格控件如何增加右键菜单

    如题,我们在项目开发当中会遇到需要,表格控件增加右键菜单的使用. 下面我们就以SNF框架增加右键菜单步骤如下: 1.在加载页面当中增加如下菜单定义 <div id="mm" ...

  10. Python 自然语言处理笔记&lpar;一&rpar;

    一. NLTK的几个常用函数 1. Concordance 实例如下: >>> text1.concordance("monstrous") Displaying ...