ABAP 获取屏幕字段值,field-symbols,assign..TO.. 相关知识实例

ABAP  获取屏幕字段值,field-symbols,assign..TO.. 相关知识实例

以QA32质量放行程序为例子:

由于这个两个值都在结构RQEVA中,为了方便这里获取整个结构值,最后利用指针指向这个程序的这个结构即可获取当前值,具体写法如下:

program zqme_check_at_qa11.
form check_ud using new_insplot type qals ud_data type qave.data: lv_aufnr type qals-aufnr.data: lt_status type table of jstat.data: ls_status type jstat.data: lv_objnr type jsto-objnr.data: lt_mseg type table of mseg.data: lt_mch1   type table of mch1,ls_mch1   type mch1,lv_value  type c,lv_valuef type c.
"获取屏幕字段值     data lc_string(25) value '(SAPMQEVA)RQEVA-ZUS_NEU_N'.data lc_string_f(25) value '(SAPMQEVA)RQEVA-US_NEU_F'.data lc_string_d(25) value '(SAPMQEVA)RQEVA-MHD_01'.data lc_string_e(25) value '(SAPMQEVA)RQEVA-VCODE'.data lc_string_g(25) value '(SAPMQEVA)QALS-MATNR'. "程序+表+字段data: lv_auth type rqeva-zus_neu_n.data: lt_qmel type table of qmel.data: ls_qmel type qmel.data: lv_charg type qals-charg.data: lt_tj02t type table of tj02t,ls_tj02t type tj02t."获取屏幕字段值,类1. FIELD-SYMBOLS:FIELD-SYMBOLS 是一个关键字,用于声明一个指针变量,允许在运行时指向内存中的"某个数据对象。通过 FIELD-SYMBOLS,可以在不提前指定具体变量名的情况下,将一个"变量看作指针,并在运行时动态绑定到数据对象。field-symbols: <fs> type any.field-symbols: <fs_f> type any.field-symbols: <fs_date> type any.field-symbols: <fs_vcode> type any.field-symbols: <fs_matnr> type any.  
"通过变量名动态访问变量2. ASSIGN:
ASSIGN 是一个指令语句,用于将一个数据对象的引用分配给 FIELD-SYMBOLS 变量。在运行时,使用 ASSIGN 将数据对象分配给 FIELD-SYMBOLS 变量后,就可以通过 FIELD-SYMBOLS 变量直接访问和操作数据对象。示例:assign (lc_string) to <fs> .assign (lc_string_f) to <fs_f> .assign (lc_string_d) to <fs_date>.assign (lc_string_e) to <fs_vcode>.assign (lc_string_g) to <fs_matnr>.   clear:lv_auth,lv_value,lv_valuef.if <fs> is assigned."restrictedlv_value = <fs>.endif.if <fs_f> is assigned."unrestrictedlv_valuef = <fs_f>.endif.data ls_mara type mara.
data ls_zmmt002 type zmmt002.clear ls_mara.clear  ls_zmmt002.check new_insplot-charg is not initial.if <fs_f> is assigned and <fs_f> = 'X'. "非限制状态if ud_data-vcode = 'X'."vcode = 'X' 表示限制放行message e009(zqm01).endif.endif.if <fs> is assigned and <fs> = 'X'."限制状态if ud_data-vcode = 'A'."表示非限制放行message e001(zqm01).endif.endif.clear ls_mara.select single * from mara into ls_mara where matnr = new_insplot-matnr.if ls_mara-mtart = 'ZXXX'and ud_data-vcode is initial ."message e002(zqm01).endif.check ud_data-vcode = 'A'.cl_salv_bs_runtime_info=>set( exporting display  = abap_falsemetadata = abap_falsedata     = abap_true ).field-symbols:<fs_table> type any table,<fs_any>   type any. "LIKE LINE OF  IT_TABdata:gr_data type ref to data.clear gr_data.unassign <fs_table>.submit zqmr_003                                         "LX02with pa_charg eq new_insplot-chargand return.try.cl_salv_bs_runtime_info=>get_data_ref( importing r_data = gr_data ).assign gr_data->* to <fs_table>.catch cx_salv_bs_sc_runtime_info.endtry.cl_salv_bs_runtime_info=>clear_all( ).data: lt_data type table of zqms_batchtrace,ls_data type zqms_batchtrace.refresh: lt_data.if <fs_table> is assigned.unassign <fs_any>.loop at <fs_table> assigning <fs_any>.clear ls_data.ls_data = <fs_any>.if ( ls_data-zustd = '批量限制' 
or ls_data-zustd = 'Batch limit' )and ls_data-charg ne new_insplot-charg.message e010(zqm01) with ls_data-charg .exit.endif.if ls_data-qmnum ne '' and ls_data-zflag = 'X'and ls_data-charg ne ''.message e005(zqm01) with ls_data-qmnum .exit.endif.endloop.unassign <fs_any>.endif.check ud_data-vcode = 'A'.call function 'ZQM_ECC_UPDATE_BATCH' " IN UPDATE TASKexportingis_insplot = new_insplot.endform.form update_batch using new_insplot type qals .check new_insplot-charg is not initial.set update task local .call function 'ZQM_ECC_UPDATE_BATCH' in update taskexportingis_insplot = new_insplot.endform.

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

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

相关文章

orin nx 安装paddlespeech记录

nx配置&#xff1a; 模块 版本说明 CPU 8核 内存 16G Cuda版本 11.4 Opencv版本 4.5.4 Tensorrt版本 5.1 Cudnn版本 8.6.0.166 Deepstream版本 6.2 Python版本 3.8 算力 100T 安装paddlepaddle&#xff1a; 去飞桨官网下载jetpack版本的&#xff1a;下…

服务器运存使用率多少正常?

服务器运存使用率多少正常&#xff0c;这是一个相对主观的问题&#xff0c;因为服务器的正常运行不仅取决于运存使用率&#xff0c;还与服务器的工作负载、应用程序的特性和需求、服务器的配置和用途等多种因素有关。然而&#xff0c;一般来说&#xff0c;大多数服务器在运存使…

ideal打包,如何访问项目根目录的libs中的jar包

参考&#xff1a;idea maven 导入lib中jar 并打包_maven引入lib中的jar包-CSDN博客 解决办法&#xff0c;只需要在pom文件中加入 <includeSystemScope>true</includeSystemScope> <build><!-- <includeSystemScope>true</includeSystemScope&g…

占位程序接收到错误数据

有时候wsl2会出现如下的错误&#xff1a; 占位程序接收到错误数据。 Error code: Wsl/Service/0x800706f7解决方法是用管理员的cmd界面执行如下方法&#xff1a; netsh winsock reset

ArcGIS学习(六)地理数据库

ArcGIS学习(六)地理数据库 上个任务我们讲了一个非常重要的知识点一一坐标系。这个任务我们带来另外一个很重要的知识点一一地理数据库。 地理数据库的内容相比于坐标系简单很多! 首先,先让我们来学习下地理数据库的理论。 ArcGIS 中的地理数据库(Geodatabase)是一个用…

视频上传-分片上传那点事

在上一篇文章中&#xff0c;我们讲解了从视频上传到保存在服务端的整个过程&#xff0c;在这个过程中&#xff0c;我们又细分了前端上传视频的几种方式&#xff0c;前端处理视频的几种方式&#xff0c;在前后端通信过程中需要注意的哪些点等等。有不清楚的小伙伴可以看看 上篇文…

JVM 性能调优 - 四种引用(4)

为什么会有四种引用 我们先回顾下在 Java 虚拟机内存体系(1) 中提到了的垃圾回收算法 1、引用计数法 原理:给对象添加一个引用计数器,每当有一个地方引用它,计数器的值就加一。每当有一个引用失效,计数器的值就减一。当计数器值为零时,这个对象被认为没有其他对象引用,…

制作离线版element ui文档

链接&#xff1a;https://pan.baidu.com/s/1k5bsCK9WUlZobhFBLItw1g?pwdgeyk 提取码&#xff1a;geyk --来自百度网盘超级会员V4的分享 https://github.com/ElemeFE/element 克隆官方代码 使用nvm切换node版本&#xff0c;推荐使用14.0.0 http://doc.xutongbao.top/doc/#/zh…

Verilog刷题笔记20

题目&#xff1a; Case statements in Verilog are nearly equivalent to a sequence of if-elseif-else that compares one expression to a list of others. Its syntax and functionality differs from the switch statement in C. 解题&#xff1a; module top_module ( …

Python HTTP隧道在远程通信中的应用:穿越网络的“魔法门”

在这个数字化时代&#xff0c;远程通信就像是我们日常生活中的“魔法门”&#xff0c;让我们可以随时随地与远方的朋友、同事或服务器进行交流。而在这扇“魔法门”的背后&#xff0c;Python HTTP隧道技术发挥着举足轻重的作用。 想象一下&#xff0c;你坐在家里的沙发上&…

【JAVA WEB】Web标签

目录 注释标签 标题标签 h1-h6 段落标签 换行标签 格式化标签 加粗&#xff1a;strong 标签和 b 标签 倾斜&#xff1a;em 标签和 i 标签 删除线&#xff1a; del 标签 和 s 标签 下划线&#xff1a;ins 标签 和 u 标签 图片标签&#xff1a;img 单标签 src属性&#…

vector类的模拟实现

实现基本的vector框架 参考的是STL的一些源码&#xff0c;实现的vector也是看起来像是一个简略版的&#xff0c;但是看完能对vector这个类一些接口函数更好的认识。 我们写写成员变量&#xff0c;先来看看STL的成元变量是那些 namespace tjl {template<class T>class …

Guitar Pro正版多少钱 Guitar Pro购买后永久使用吗

相信很多玩吉他的小伙伴都听说过Guitar Pro这款软件&#xff0c;Guitar Pro是一款传奇的吉他谱软件&#xff0c;可以用来打谱&#xff0c;看谱&#xff0c;midi音序制作等等&#xff0c;同时做为一款吉他学习辅助软件有着强大的优势&#xff0c;那大家知道Guitar Pro正版多少钱…

C++进阶(十二)lambda可变参数包装器

&#x1f4d8;北尘_&#xff1a;个人主页 &#x1f30e;个人专栏:《Linux操作系统》《经典算法试题 》《C》 《数据结构与算法》 ☀️走在路上&#xff0c;不忘来时的初心 文章目录 一、新的类功能1、默认成员函数2、类成员变量初始化3、 强制生成默认函数的关键字default:4、…

【数据结构】链表OJ面试题2《分割小于x并排序链表、回文结构、相交链表》+解析

1.前言 前五题在这http://t.csdnimg.cn/UeggB 休息一天&#xff0c;今天继续刷题&#xff01; 2.OJ题目训练 1. 编写代码&#xff0c;以给定值x为基准将链表分割成两部分&#xff0c;所有小于x的结点排在大于或等于x的结点之前 。链表分割_牛客题霸_牛客网 思路 既然涉及…

什么是网络渗透,应当如何防护?

什么是网络渗透 网络渗透是攻击者常用的一种攻击手段&#xff0c;也是一种综合的高级攻击技术&#xff0c;同时网络渗透也是安全工作者所研究的一个课题&#xff0c;在他们口中通常被称为"渗透测试(Penetration Test)"。无论是网络渗透(Network Penetration)还是渗透…

C++初阶之类与对象(上)详细解析

个人主页&#xff1a;点我进入主页 专栏分类&#xff1a;C语言初阶 C语言进阶 数据结构初阶 Linux C初阶 欢迎大家点赞&#xff0c;评论&#xff0c;收藏。 一起努力&#xff0c;一起奔赴大厂 目录 一.前言 二.类的定义和使用 2.1类的引入 2.2类的定义和访问限定…

Java学习-常用API(一)

Object类 Object类及其常用方法&#xff1a; 代码示例&#xff1a; Objects Objects类的引入&#xff0c;定义及其常见的方法&#xff1a; 示例 包装类 什么是包装类&#xff1f; 自动装箱和自动拆箱&#xff1a; 常用方法&#xff1a; 注意&#xff1a;字符串的 数值&#xf…

1Panel面板如何安装并结合内网穿透实现远程访问本地管理界面

文章目录 前言1. Linux 安装1Panel2. 安装cpolar内网穿透3. 配置1Panel公网访问地址4. 公网远程访问1Panel管理界面5. 固定1Panel公网地址 前言 1Panel 是一个现代化、开源的 Linux 服务器运维管理面板。高效管理,通过 Web 端轻松管理 Linux 服务器&#xff0c;包括主机监控、…

2024 Google Chrome 浏览器回退安装旧版本

2024 Google Chrome 浏览器回退安装旧版本 查看当前谷歌版本备份浏览器数据卸载浏览器双击重新安装旧版本浏览器 查看当前谷歌版本 详细参考&#xff1a;参考 笔记&#xff1a;最近谷歌浏览器更新后&#xff0c;用着总感觉别扭&#xff1a;不习惯 备份浏览器数据 &#xff…