ABAP:多页签的选择屏幕

article/2025/11/3 21:57:27

在程序中创建一个100屏幕,然后设定子屏幕区域,可通过屏幕号指定页签,让选择屏幕更多样式,效果如下图:

实现方式如下

定义不同的选择屏幕

*  基本条件屏幕
SELECTION-SCREEN BEGIN OF SCREEN 1100 AS SUBSCREEN.
SELECTION-SCREEN BEGIN OF BLOCK B_JB WITH FRAME TITLE TEXT-010.SELECT-OPTIONS:S_GSBER FOR TGSB-GSBER NO INTERVALS NO-EXTENSION OBLIGATORY MEMORY ID GSB,"业务范围S_VKORG FOR TVKO-VKORG NO INTERVALS NO-EXTENSION OBLIGATORY DEFAULT '8000',"销售组织S_KUNNR FOR KNA1-KUNNR . "客户SELECTION-SCREEN END OF BLOCK B_JB.
SELECTION-SCREEN END OF SCREEN 1100.
*发票屏幕
SELECTION-SCREEN BEGIN OF SCREEN 1200 AS SUBSCREEN.
SELECTION-SCREEN BEGIN OF BLOCK B_FP WITH FRAME TITLE TEXT-020.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(7) G_FPCX."
PARAMETERS: R_FPCX USER-COMMAND RFPRADIOBUTTON GROUP RAD1.
SELECTION-SCREEN COMMENT 16(7) G_SCTS.
PARAMETERS: R_SCTS  RADIOBUTTON GROUP RAD1 DEFAULT 'X'.
SELECTION-SCREEN END OF LINE.
SELECT-OPTIONS:S_VBELN FOR VBRK-VBELN MODIF ID MTS,"发票号S_FKDAT FOR VBRK-FKDAT MODIF ID MTS,"发票日期S_FBELNR FOR ZTMM_ZTSCL-BELNR MODIF ID MTS."托收单号
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(7) G_YTS MODIF ID MTS."屏幕中横着的checkbox定义
PARAMETERS: C_YTS AS CHECKBOX MODIF ID MTS.
SELECTION-SCREEN COMMENT 16(7) G_WXTS MODIF ID MTS.
PARAMETERS: C_WXTS AS CHECKBOX MODIF ID MTS.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK B_FP.
SELECTION-SCREEN END OF SCREEN 1200.
*托收屏幕
SELECTION-SCREEN BEGIN OF SCREEN 1300 AS SUBSCREEN.
SELECTION-SCREEN BEGIN OF BLOCK B_TS WITH FRAME TITLE TEXT-030.
SELECT-OPTIONS:S_BELNR FOR VBRK-VKONT ,"托收单号S_BUDAT1 FOR ZTMM_ZTSCL-BUDAT1 ,"委托日期S_ERNAM1 FOR ZTMM_ZTSCL-ERNAM1 NO INTERVALS NO-EXTENSION, "创建者S_TVBELN  FOR VBRK-VBELN.
*
SELECTION-SCREEN BEGIN OF LINE.SELECTION-SCREEN COMMENT 1(6)  G_YSC."
PARAMETERS: C_YSC AS CHECKBOX  DEFAULT 'X'.
SELECTION-SCREEN COMMENT 13(6) G_YDY.
PARAMETERS: C_YDY AS CHECKBOX DEFAULT 'X'.
SELECTION-SCREEN COMMENT 28(8) G_YJJ.
PARAMETERS: C_YJJ AS CHECKBOX DEFAULT 'X'.
SELECTION-SCREEN COMMENT 45(8) G_BFHX.
PARAMETERS: C_BFHX AS CHECKBOX DEFAULT 'X'.
SELECTION-SCREEN COMMENT 60(6) G_YHX.
PARAMETERS: C_YHX AS CHECKBOX.
SELECTION-SCREEN COMMENT 75(6) G_YZF.
PARAMETERS: C_YZF AS CHECKBOX.
SELECTION-SCREEN END OF LINE.
*
SELECT-OPTIONS:
S_ERNAM2 FOR ZTMM_ZTSCL-ERNAM2 NO INTERVALS NO-EXTENSION, "交接操作人
S_BUDAT2 FOR ZTMM_ZTSCL-BUDAT2, "交接日期
S_ERNAM3 FOR ZTMM_ZTSCL-ERNAM3 NO INTERVALS NO-EXTENSION, "作废操作人
S_BUDAT3 FOR ZTMM_ZTSCL-BUDAT3. "作废日期SELECTION-SCREEN END OF BLOCK B_TS.
SELECTION-SCREEN END OF SCREEN 1300.
*应收分析屏幕
SELECTION-SCREEN BEGIN OF SCREEN 1400 AS SUBSCREEN.
SELECTION-SCREEN BEGIN OF BLOCK B_YSFX WITH FRAME TITLE TEXT-040.
PARAMETERS:    P_SDATE LIKE SY-DATUM OBLIGATORY DEFAULT SY-DATUM."开始日期
PARAMETERS:    P_EDATE LIKE SY-DATUM OBLIGATORY DEFAULT SY-DATUM."截止日期SELECTION-SCREEN END OF BLOCK B_YSFX.
SELECTION-SCREEN END OF SCREEN 1400.

调用自定义屏幕

*tabstrip定义
CONTROLS MYTABSTRIP TYPE TABSTRIP.START-OF-SELECTION.  MYTABSTRIP-ACTIVETAB = 'B_FP'.CALL SCREEN 100.

自定义屏幕

 PBO

MODULE 0100_PAI_STATUS OUTPUT.SET PF-STATUS 'ST_SCREEN_100'.SET TITLEBAR 'T_TITLE'.
ENDMODULE.                    "status_0100 OUTPUT

PAI

MODULE 0100_PBO_USER_COMMAND INPUT.SAVE_OK = OK_CODE.CLEAR OK_CODE.CASE SAVE_OK.WHEN 'B_FP'.MYTABSTRIP-ACTIVETAB = SAVE_OK.G_NUMBER = 1200.WHEN 'B_TS'.MYTABSTRIP-ACTIVETAB = SAVE_OK.G_NUMBER = 1300.WHEN 'B_YSFX'.MYTABSTRIP-ACTIVETAB = SAVE_OK.G_NUMBER = 1400.WHEN 'T_EX'."执行PERFORM AUTHORIZATION_CHECK.CASE MYTABSTRIP-ACTIVETAB.WHEN 'B_FP'.IF R_FPCX = 'X'."发票查询PERFORM SUB_FPCX.ELSEIF R_SCTS = 'X'. "生成托收PERFORM SUB_INIT_DATA."数据初始化PERFORM SUB_SCTS.ENDIF.WHEN 'B_TS'.PERFORM SUB_INIT_DATA_TSDCL."数据初始化PERFORM SUB_TSDCL."托收单处理WHEN 'B_YSFX'.PERFORM SUB_YSFX.ENDCASE.ENDCASE.ENDMODULE.                    "user_command_0100 INPUT

 


http://chatgpt.dhexx.cn/article/0fUxOwId.shtml

相关文章

【实战】1096- React 中后台系统多页签实现

在中后台管理类系统中,多页签的需求非常普遍,用户常常需要在多个页签内跳转,比如填写表单时去查询某个列表获取一些字段信息再回到表单页面填写。这样的需求在 Vue 中使用 keep-alive 即可实现,但是在 React 中,React …

多种方式带你玩转 javascript 实现关闭浏览器页签

你知道的越多,你不知道的越多 点赞再看,养成习惯 如果您有疑问或者见解,或者没有积分想获取项目,欢迎指教: 企鹅:869192208 文章目录 前言方法一方法二方法三方法四方法五方法六附录 前言 近日&#xff0c…

vue 后台系统中多页面标签

在后台开发中,常用一种页面标签工具,每次点击菜单栏时,会在页面区域上方增加一个【标签页】如下图,可关闭,可切换页面等功能,常见于后台管理系统中。 以前,我以为这个是利用tabs组件开发的&…

js关闭浏览器页签

兼容性 js实现 function closeWebPage(){if (navigator.userAgent.indexOf("MSIE") > 0) {if (navigator.userAgent.indexOf("MSIE 6.0") > 0) {window.opener null;window.close();}else {window.open(, _top);window.top.close();}}else if (nav…

layui————一个页面展示两个页签

html页面 <!DOCTYPE html> <html> <head><meta charset"utf-8"><link rel"stylesheet" href"../../../build/css/base.css" media"all"> </head> <body> <div class"layui-tab la…

SAP BP屏幕增强页签

导语&#xff1a;最近收到了BP的需求&#xff0c;要增加页签&#xff0c;找了一些资料&#xff0c;发现BP的增强页签可是真麻烦啊&#xff0c;下面把我梳理出来的分享一下。 &#x1f449;【增强记录清单…】 需求&#xff1a; 需求是在供应商界面增加一个页签&#xff0c;用…

修改浏览器页签名称

第一种若是整个系统要统一修改为一个名称 在public文件夹下index.html下直接修改或者在相应配置文件package.json或者其他&#xff08;看项目配置&#xff09; 第二种某一个路由或者菜单页签不一样的名称 可以配置到后置路由中或者组件内 语句为:document.title 测试

vue实现tagsview多页签导航功能

文章目录 前言一、效果图二、实现思路1. 新建 tags-view.js2. 在Vuex里面引入 tags-view.js3. 新建 tabsView 组件4. 新建 ScrollPane 组件5. 引入 tabsView 组件6. 使用 keep-alive 组件&#xff0c;进行页签的缓存 总结 前言 基本上后台管理系统都需要有多页签的功能&#x…

基于微前端qiankun的多页签缓存方案实践

作者&#xff1a;vivo 互联网前端团队- Tang Xiao 本文梳理了基于阿里开源微前端框架qiankun&#xff0c;实现多页签及子应用缓存的方案&#xff0c;同时还类比了多个不同方案之间的区别及优劣势&#xff0c;为使用微前端进行多页签开发的同学&#xff0c;提供一些参考。 一、…

Sublime Text的命令行工具subl

在sublime的安装目录下有个subl.exe&#xff0c;是sublime编辑器为用户提供的命令行工具。 修改Windows系统的环境变量&#xff0c;将sublime的安装路径添加到环境变量里&#xff1b; 打开win的命令行提示符程序&#xff0c;输入subl -version,看到结果如下图所示&#xff1a;…

Macbook Pro下安装subl命令,快速使用sublime打开代码

一、使用背景 我在macbook pro电脑上经常使用编辑器直接打开代码&#xff0c;我也经常用iterm2的一些快捷命令操作目录和查看文件。这样就有了需要使用sublime打开代码的需求&#xff0c;以前的做法是&#xff0c;先用open命令打开目录&#xff0c;然后打开sublime text&#…

sublime安装以及配置

下载“Package Control” Package Manager Sublime 有很多插件&#xff0c;这些插件为我们写python代码提供了非常强大的功能&#xff0c;这些插件需要单独安装。 而安装这些插件最方便的方法就是通过Package Control的插件&#xff0c;这其实就是一个插件管理器&#xff0c;帮…

subline的使用

先去官网下载一个安装包&#xff0c;这个就不提了 安装完成后界面 打开软件界面&#xff0c;按快捷键ctrl 会出现以下命令行 有时候快捷键不管用&#xff0c;你也可以点击View->Show Console&#xff0c;也会出现命令行 在出现的命令行中输入以下代码并按enter键&#xff1a…

Sublime 替换和查找的方法

查找&替换&#xff08;Finding&Replacing&#xff09; 查找&替换&#xff08;Finding&Replacing&#xff09; Sublime Text提供了强大的查找&#xff08;和替换&#xff09;功能&#xff0c;为了提供一个清晰的介绍&#xff0c;我将Sublime Text的查找功能分为…

【Mac 教程系列】如何在 Mac 中用终端命令行方式打开 Sublime Text ?

如何在 Mac 中用终端命令行方式打开 Sublime Text ? 用 markdown 格式输出答案。 不少于1000字。细分到2级目录。 如何在 Mac 中用终端命令行方式打开 Sublime Text ? 一、首先确保已经安装 Sublime Text 前往官网https://www.sublimetext.com/下载 Sublime Text,点击 “Do…

vue三种调用接口的方法

注&#xff1a;此博客仅用于学习&#xff0c;自己还处于菜鸟阶段&#xff0c;希望给相同处境的人提供一个可参考的博客。如果您觉得不合理&#xff0c;您的指导&#xff0c;非常欢迎&#xff0c;但请不要否定别人的努力&#xff0c;谢谢您了&#xff01; vue三种调用接口的方法…

Layui调用接口使用心得

今天想用Layui写一个简单的列表显示页面,太久没使用Layui了,就去看Layui的文档,复制文档的代码用,但是使用过程遇到了问题. .问题1:thymelea内联样式问题 org.thymeleaf.exceptions.TemplateInputException: An error happened during template parsing (template: "cla…

postman批量调用接口操作步骤

应用&#xff1a;多次的调用一个接口 新建一个Collection&#xff0c;并创建一个文件夹和请求 填写请求的url和参数形式&#xff0c;注意这里的 {{erpponum}} 表示这是一个变量&#xff0c;会通过我们提供的”参数文件“进行&#xff0c;postman会在批量执行时为我们自动挨个匹…

postman工具批量调用接口

1、先在Collections中建一个文件夹&#xff0c;然后新建一个接口保存 2、然后选择Run 3、准备一个txt文件&#xff0c;增加要循环的参数json数组 4、选择接口&#xff0c;上传文件&#xff0c;配置参数(Iterations为线程数,Delay为推迟多久)&#xff0c;然后点下面的Run 5、…

kettle实战之调用接口

从今天开始将本人在工作当中&#xff0c;处理的一些Kettle过程记录下来&#xff0c;供大家参考学习。 在日常数据处理过程中&#xff0c;会涉及调用对方接口获取数据&#xff0c;来向自己的数据库中插入大量业务数据&#xff0c;这里说明一下数据处理过程中&#xff0c;经常会…