ABAP屏幕开发 - 设计折叠样式的屏幕(类似MIGO或ME23N的屏幕)

news/2024/12/23 6:20:07/

在sap的应用中,我们有时会需要设计折叠样式的屏幕(类似MIGO的屏幕),以缓解屏幕区域的太小的矛盾。折叠样式屏幕实现的基本原理是用子屏幕根据用户的输入调用不同的子屏幕来实现的。现在以放置两个子屏幕的折叠式的屏幕来说明实现的步骤。为了实现两个子屏幕的折叠式的屏幕需要设计7个屏幕(一个主屏幕,两个信息屏幕,一个全展示子屏幕,一个下半部展示子屏幕,一个上半部展示子屏幕,一个下全关闭子屏幕)。具体步骤如下:

Step 1:设计一个主屏幕,放置一个”子屏幕范围”

屏幕的逻辑流为:

PROCESS BEFORE OUTPUT.

CALL SUBSCREEN sa_2200_1 INCLUDING sy-repid '2220'.

*

PROCESS AFTER INPUT.

MODULE USER_COMMAND_0100.

CALL SUBSCREEN sa_2200_1.

 

MODULE USER_COMMAND_0100 INPUT.

  DATA lv_return_code TYPE i.

 

  CLEAR save_ok.

  save_ok = ok_code.

  CLEAR ok_code.

  CLEAR gv_processed.

  CALL METHOD cl_gui_cfw=>dispatch

    IMPORTING

      return_code = lv_return_code.

  CHECK lv_return_code = cl_gui_cfw=>rc_noevent.

  CASE save_ok.

    WHEN 'PB_2220_1' OR 'PB_2220_2' OR 'PB_2240_1' OR 'PB_2240_2' OR

         'PB_2260_1' OR 'PB_2260_2' OR 'PB_2280_1' OR 'PB_2280_2'.

      PERFORM set_the_col_area_screen.

    WHEN others.

*     action code from the menus will be processed here.

      PERFORM get_screen_number USING save_ok.

  ENDCASE.

ENDMODULE.                 " USER_COMMAND_0100  INPUT

 

*&---------------------------------------------------------------------*

*&      Form  set_the_col_area_screen

*&---------------------------------------------------------------------*

*       This subroutine is used to set the subscreen for the collapsible

*       areas

*----------------------------------------------------------------------*

FORM set_the_col_area_screen .

  CASE save_ok.

    WHEN 'PB_2220_1' OR 'PB_2260_2'. "打开下半部展开的子屏幕

      gv_subscreen_2200_1  =  2280.

    WHEN 'PB_2220_2' OR 'PB_2260_1'. "打开上半部展开的子屏幕

      gv_subscreen_2200_1  =  2240.

    WHEN 'PB_2240_1' OR 'PB_2280_2'. "打开全关闭的子屏幕

      gv_subscreen_2200_1  =  2260.

    WHEN 'PB_2280_1' OR  'PB_2240_2'. "打开全打开的子屏幕

      gv_subscreen_2200_1  =  2220.

  ENDCASE.

ENDFORM.                    " set_the_col_area_screen

 

 

Step 2: 最底层的两个信息子屏幕

屏幕(2290)

逻辑流

PROCESS BEFORE OUTPUT.

*

PROCESS AFTER INPUT.

 

屏幕(2230)

逻辑流

PROCESS BEFORE OUTPUT.

*

PROCESS AFTER INPUT.

 

Step 3: 定义全展示子屏幕 (2220)

第一个按钮的功能码:PB_2220_1

第一个按钮的功能码:PB_2220_2

屏幕逻辑流

PROCESS BEFORE OUTPUT.

CALL SUBSCREEN SA_2220_1 including sy-repid '2290'.

CALL SUBSCREEN SA_2220_2 including sy-repid '2300'.

*

PROCESS AFTER INPUT.

CALL SUBSCREEN SA_2220_1.

CALL SUBSCREEN SA_2220_2.

 

Step 4:定义上半部展开的子屏幕(2240)

第一个按钮的功能码:PB_2240_1

第一个按钮的功能码:PB_2240_2

屏幕逻辑流

PROCESS BEFORE OUTPUT.

CALL SUBSCREEN SA_2240_1 including sy-repid '2290'.

*

PROCESS AFTER INPUT.

CALL SUBSCREEN SA_2240_1.

 

Step 5:定义下半部展开的子屏幕(2280)

第一个按钮的功能码:PB_2280_1

第一个按钮的功能码:PB_2280_2

屏幕逻辑流

PROCESS BEFORE OUTPUT.

CALL SUBSCREEN SA_2280_2 including sy-repid '2300'.

*

PROCESS AFTER INPUT.

CALL SUBSCREEN SA_2280_2.

 

Step 6:定义全关闭的子屏幕(2260)

第一个按钮的功能码:PB_2260_1

第一个按钮的功能码:PB_2260_2

屏幕逻辑流

PROCESS BEFORE OUTPUT.

*

PROCESS AFTER INPUT.

 

 

转载自:http://blog.csdn.net/zhongguomao/article/details/6689095

 

 

 

 

 

 

 

 


http://www.ppmy.cn/news/664698.html

相关文章

Android开发笔记(一百)折叠式列表

更多动态视图MoreNewsView 经常看朋友圈的动态,有的动态内容较多就只展示前面一段,如果用户想看完整的再点击展开,这样整个页面的动态列表比较均衡,不会出现个别动态占用大片屏幕的情况。同样,查看博客的文章列表也类似…

Unity 中实现一个简单的可折叠菜单

不带动画 带动画 实现代码 public class Nodes : BaseNode {/// <summary>/// 只在内存中分配一次/// </summary>private static Text text;public override void Start(){text GameObject.Find("Canvas/CurrentClickNodeText").GetComponent<Text&…

【Flutter】Android、Flutter 折叠屏适配 ( 展开大屏 | 折叠主屏 | 折叠副屏 | 静态展示 | 动态热切换适配 | 拉伸布局 | X 轴自适应适配 | 布局重构 )

文章目录 一、Android、Flutter 折叠屏适配二、展开大屏适配三、折叠主屏适配四、折叠副屏适配五、折叠屏动态热切换适配五、拉伸布局六、X 轴自适应适配七、布局重构八、Android、Flutter 中的程序配置1、屏幕自适应配置2、设置切换屏蔽宽高比不重启适配3、设置最大最小屏幕比…

米家骑记电助力折叠自行车,看看里面的电子方案

在ifixit上看见米家骑记电助力折叠自行车拆解&#xff0c;这也是他们第一次拆解交通工具&#xff0c;这里分享给大家。 多少年来&#xff0c;我们一直认为&#xff1a;任何一台能够用电力的设备&#xff0c;将会最终安装上电力驱动。米家骑记电助力折叠自行车现在就在我们的拆解…

Flutter折叠展开列表的使用

flutter中官方其实已经封装好了折叠展开列表&#xff1a;ExpansionPanel&#xff0c;但是官方的可定制性太差&#xff0c;我今天主要说下如何简单实现一个自己的折叠展开列表。 状态控制 折叠展开列表&#xff0c;每一个父列表项都应该有一个状态记录&#xff0c;如果是关闭入…

Android开发实战手把手教你实现一个折叠式布局

本文出自门心叼龙的博客&#xff0c;属于原创类容&#xff0c;转载请注明出处。 在上一篇文章我们实现了一个头部固定的ExpandedListView,今天需要在它的基础上实现&#xff1a;在它头部加一个背景图片&#xff0c;默认状态下他处于展开状态&#xff0c;往上滑的时候背景图片逐…

Ubuntu18.04本地部署Stable-Diffusion-webui绘画

记录Ubuntu下安装Stable-Diffusion-webui&#xff0c;比较简单,以供参考。 系统&#xff1a;Ubuntu 18.04.4 LTS 内存&#xff1a;40G 显卡&#xff1a;32G 硬盘&#xff1a;500G 一、安装cuda 支持安装的cuda版本可以用nvidia-smi命令查看&#xff1a; ----------------…

Spring + ECharts数据可视化

Apache ECharts是一个基于 JavaScript 的开源可视化图表库&#xff0c;在网页上实现数据的可视化&#xff0c;非常好用&#xff0c;来简单写一个demo&#xff0c;实践一下。 目录 一、成果 二、数据准备 三、具体实现 某年每个学生各科分数的柱状图 后端 前端 后端代码 …