SAP 选择屏幕动态通过Radio Button 显示与隐藏以及控制是否必输

如何在选择屏幕上进行动态展示屏幕字段,并且进行必输项检查控制

1. 选择屏幕定义

SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE TEXT-001.SELECTION-SCREEN BEGIN OF LINE.PARAMETERS: p_r1 TYPE c RADIOBUTTON GROUP grp USER-COMMAND uc DEFAULT 'X'. "核价申请SELECTION-SCREEN COMMENT 2(23) TEXT-002 FOR FIELD p_r1.PARAMETERS: p_r2 TYPE c RADIOBUTTON GROUP grp. "核价清单SELECTION-SCREEN COMMENT 27(23) TEXT-003 FOR FIELD p_r2.SELECTION-SCREEN END OF LINE.PARAMETERS: p_vkorg TYPE vbak-vkorg MODIF ID md1.SELECT-OPTIONS: s_zdjba FOR zsdt040a-zdjba MODIF ID md2 MATCHCODE OBJECT zdjba_esh, "核价单号s_zhjrq FOR zsdt040a-zhjrq MODIF ID md2, "核价日期s_kunnr FOR zsdt040a-kunnr MODIF ID md2, "客户s_vkorg FOR zsdt040a-vkorg MODIF ID md2, "销售组织s_status FOR zsdt040a-status MODIF ID md2. "审批状态SELECTION-SCREEN END OF BLOCK b1.

注意:1. 需要给radio button指定功能码,比如上面程序代码中指定的功能码为uc

           2. 需要对选择屏幕上需要进行动态显示的字段进行分组,哪些字段属于一组进行动态控制,可以通过modif id进行分组

2. 屏幕字段属性设置

INITIALIZATION.PERFORM frm_init.AT SELECTION-SCREEN OUTPUT.PERFORM frm_set_attribute.*&---------------------------------------------------------------------*
*& Form frm_init
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM frm_init .ENDFORM.
*&---------------------------------------------------------------------*
*& Form frm_set_attribute
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM frm_set_attribute .LOOP AT SCREEN.IF p_r1 IS NOT INITIAL.IF screen-group1 = 'MD2'.screen-invisible = 1.screen-active = 0.screen-required = 0.ELSE.screen-invisible = 0.screen-active = 1.screen-required = 2.ENDIF.ELSE.IF screen-group1 = 'MD1'.screen-invisible = 1.screen-active = 0.ELSE.screen-invisible = 0.screen-active = 1.IF screen-name = 'S_ZHJRQ-LOW'.screen-required = 2.ENDIF.ENDIF.ENDIF.MODIFY SCREEN.ENDLOOP.ENDFORM.

注意:1. 屏幕字段的显示与隐藏可以通过screen的属性invisible和active进行控制

            2. 屏幕字段是否需要必输,可以通过screen的属性required进行控制,required有三个值:0和1和2,其中0表示不用必输,1表示必输且会进行必输检查,2也表示必输,但是只是展示必输的标识,但不会做必输检查,如果赋值为2要进行必输检查控制的话,需要单独在AT SELECTION-SCREEN中进行检查控制,选择2的目的是为了在点击radio button切换的时候,不会因为有必输的检查标识不能自动来回切换

3. 必输检查控制

AT SELECTION-SCREEN.PERFORM frm_check_input.START-OF-SELECTION.*&---------------------------------------------------------------------*
*& Form frm_check_input
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM frm_check_input .IF sy-ucomm <> 'UC' ANDsy-ucomm <> '%011'.IF p_r1 IS NOT INITIAL.IF p_vkorg IS INITIAL.IF sy-langu = '1'.MESSAGE '在必填字段 "销售组织" 中进行输入' TYPE 'E'.ELSE.MESSAGE 'Make an entry in mandatory field "Sales Organization"' TYPE 'E'.ENDIF.ENDIF.ELSE.IF s_zhjrq[] IS INITIAL.IF sy-langu = '1'.MESSAGE '在必填字段 "核价日期" 中进行输入' TYPE 'E'.ELSE.MESSAGE 'Make an entry in mandatory field "Valuation date"' TYPE 'E'.ENDIF.ENDIF.ENDIF.ENDIF.
ENDFORM.

注意:排除某些功能码的目的是为了,在触发这些功能码的时候,无需做必输的检查,比如上面代码中排除了radio button的功能码UC,所以在点击radio button按钮的时候,不会做在这个radio button展示的屏幕字段信息进行必输检查

效果图如下:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/112513.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

算法刷题 week2

目录 week21. 二维数组中的查找题目题解(单调性扫描) O(nm) 2.替换空格题目题解(线性扫描) O(n)(双指针扫描) O(n) 3.从尾到头打印链表题目题解(遍历链表) O(n) week2 1. 二维数组中的查找 题目 题解 (单调性扫描) O(nm) 核心在于发现每个子矩阵右上角的数的性质&#xff1…

【适配的一些小细节】

使用svg 使用img引入svg图片的时候 使用的时候 <img src"./img/logo.svg"/>

上半年毛利率高达82%,敷尔佳“风采不减当年”?

随着公众护肤意识的提升&#xff0c;消费者相比之前对基础护肤变得更加注重产品的成分、功效及安全性。为迎合市场需求&#xff0c;敷尔佳重磅打造了多款新品&#xff0c;2022 年四季度上市的有医用重组III 型人源化胶原蛋白贴&#xff0c;今年上半年新推的有御龄紧致次抛精华液…

WPS 换行后缩进、加粗等自定义样式的清除

在使用WPS的Word编辑文字时&#xff0c;经常会出现换行后&#xff0c;自动缩进这种格式&#xff0c;需要清除这种样式&#xff0c;可以按照下图来操作&#xff1a;

《Python趣味工具》——自制emoji3

今日目标 在上次&#xff0c;我们绘制了静态的emoji图。并且总结了turtle中的常用函数。 本次我们将尝试制作一个动态的emoji&#xff0c;让你的表情包动起来&#xff01; 文章目录 一、动画原理&#xff1a;二、制作动画&#xff1a;1. 修改eyes_black()函数&#xff1a;2. 绘…

继续复制:元胞自动机中的自我复制

兰顿循环。 一、说明 任何观察生物体的人都非常清楚&#xff0c;它们可以产生像自己一样的其他生物体。这是它们的正常功能&#xff0c;如果他们不这样做&#xff0c;它们就不会存在&#xff0c;而且这很可能是它们在世界上比比皆是的原因。换句话说&#xff0c;生物体是基本…

1.1 安装配置CentOS

文章目录 零、学习目标一、导入新课二、新课讲解&#xff08;一&#xff09;安装VMWare Workstation1、获取安装程序2、进入安装向导3、按提示完成安装 &#xff08;二&#xff09;虚拟网络编辑器1、启动虚拟网络编辑器2、选择VMnet8虚拟网3、更改网络配置4、查看DHCP设置5、查…

ROS 入门

目录 简介 ROS诞生背景 ROS的设计目标 ROS与ROS2 安装ROS 1.配置ubuntu的软件和更新 2.设置安装源 3.设置key 4.安装 5.配置环境变量 安装可能出现的问题 安装构建依赖 卸载 ROS架构 1.设计者 2.维护者 3. 立足系统架构: ROS 可以划分为三层 ROS通信机制 话…

[计算机入门] 电源选项设置

3.10 电源选项设置 有时候我们的电脑一段时间没有用&#xff0c;会自己关掉屏幕或者直接睡眠&#xff0c;这是电源选项没有设置好导致的。 1、打开控制面板&#xff0c;打开其中的电源选项 2、点击左侧上方的选择关闭显示器的时间 3、进入到编辑计划设置界面&#xff0c;在…

4G模块驱动移植

一、4G模块概述 1、调试的模块型号是广和通的 NL668-EAU-00-M.2。 2、使用的接口是 M.2 Key-B。实际只用到了M2里的USB接口。 调试过程 以QMI_WWAN号方式进行说明&#xff0c;其他拨号方式也试过。最后以QMI_WWAN方式调通了&#xff0c;拨号成功了。 其他拨号方式因为现有文档…

C语言入门Day_22 初识指针

目录 前言&#xff1a; 1.内存地址 2.指针的定义 3.指针的使用 4.易错点 5.思维导图 前言&#xff1a; 之前我们学过变量可以用来存储数据&#xff0c;就像一个盒子里面可以放不同的球一样。 这是一个方便大家理解专业概念的比喻。 在计算机世界里面&#xff0c;数据实…

全量数据采集:不同网站的方法与挑战

简介 在当今数字化时代中&#xff0c;有数据就能方便我们做出很多决策。数据的获取与分析已经成为学术研究、商业分析、战略决策以及个人好奇心的关键驱动力。本文将分享不同网站的全量数据采集方法&#xff0c;以及在这一过程中可能会遇到的挑战。 部分全量采集方法 1. 撞店…