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.hqwc.cn/news/458596.html

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

相关文章

总结:图像生成网络

1、最新的几款图像生成网络 eCNN 文献&#xff1a;Bahrami A, Karimian A, Fatemizadeh E, et al. A new deep convolutional neural network design with efficient learning capability: Application to CT image synthesis from MRI[J]. Medical physics, 2020, 47(10): 515…

【力扣】盛最多水的容器,双指针法

盛最多水的容器原题地址 方法一&#xff1a;双指针 如果使用暴力枚举&#xff0c;时间复杂度为&#xff0c;效率太低&#xff0c;会超时。 考虑使用双指针&#xff0c;利用单调性求解。用left和right作为数组height的下标&#xff0c;分别初始化为0和size-1。考虑在区间[lef…

tkinter绘制组件(41)——菜单按钮

tkinter绘制组件&#xff08;41&#xff09;——菜单按钮 引言布局函数结构按钮部分菜单显示完整代码函数 效果测试代码最终效果 github项目pip下载结语 引言 TinUI5的新控件&#xff0c;菜单按钮&#xff0c;menubutton。 这是一个与TinUI菜单&#xff08;menubar&#xff0…

Springboot项目报文加密(AES、RSA、Filter动态加密)

Springboot项目报文加密(AES、RSA、Filter动态加密) 一、痛点1.1、初版报文加密二、前期准备2.1、AES加密2.2、RSA加密2.3、国密算法概述2.4、国密SM22.5、国密SM32.6、国密SM42.7、JAVA中的拦截器、过滤器2.8、请求过滤器2.9、响应过滤器2.10、登录验证码2.11、BCrypt非对称…

基于Java (spring-boot)的学生成绩管理系统

一、项目介绍 (1) 课程信息的管理&#xff0c;包括课程信息的条件查询、录入、修改和删除。 (2) 课程表的管理&#xff0c;包括排课、录入课程表、修改课程表。 (3) 用户信息管理。包括对系统管理员、教师和学生的信息进行维护管理&#xff0c;可以新增、修改、删除和条件分…

电动汽车雷达技术概述 —— FMCW干扰问题

一、电动汽车上有多少种传感器&#xff1f; 智能电动汽车&#xff08;包括自动驾驶汽车&#xff09;集成了大量的传感器来实现高级驾驶辅助系统&#xff08;ADAS&#xff09;、自动驾驶功能以及车辆状态监测等功能。以下是一份相对全面的智能电动汽车中可能使用到的传感器列表…

AUTOSAR CP--chapter4从一个VCU需求开始Autosar的工程创建

从一个VCU需求开始Autosar的工程创建 1、VCU需求2、Autosar工作任务之间的关系&#xff1a;2.1、工程阶段配置阶段集成阶段调试阶段 1、VCU需求 通过建立整车控制器的工程&#xff0c;搭建Autosar工程的框架&#xff0c;开发的软件是搭载于微控制上运行的。 首先&#xff0c;看…

ArcGIS的UTM与高斯-克吕格投影分带要点总结

UTM&#xff08;通用横轴墨卡托投影、等角横轴割椭圆柱投影&#xff09;投影分带投影要点&#xff1a; 1&#xff09;UTM投影采用6度分带 2&#xff09;可根据公式计算&#xff0c;带数&#xff08;经度整数位/6&#xff09;的整数部分31 3&#xff09;北半球地区&#xff0…

家政小程序系统开发:从构思到实现

随着科技的快速发展&#xff0c;移动互联网已经深入到我们生活的方方面面。特别是在家政服务领域&#xff0c;传统的服务方式已经不能满足现代人的需求。因此&#xff0c;开发一款家政小程序系统显得尤为重要。本文将介绍家政小程序系统的开发过程&#xff0c;包括需求分析、设…

数据结构——D/二叉树

&#x1f308;个人主页&#xff1a;慢了半拍 &#x1f525; 创作专栏&#xff1a;《史上最强算法分析》 | 《无味生》 |《史上最强C语言讲解》 | 《史上最强C练习解析》 &#x1f3c6;我的格言&#xff1a;一切只是时间问题。 ​ 1.树概念及结构 1.1树的概念 树是一种非线性的…

最新话费充值系统源码,附带系统安装教程

搭建教程 亲测环境&#xff1a;PHP7.0MySQL5.6 PHP扩展安装&#xff1a;sg11 数据库配置文件路径&#xff1a;/config/database.php 伪静态设置为thinkphp 后台地址&#xff1a;/admin 账号密码&#xff1a;admin/123456

力扣面试题 05.06. 整数转换(位运算)

Problem: 面试题 05.06. 整数转换 文章目录 题目描述思路及解法复杂度Code 题目描述 思路及解法 1.通过将两个数进行异或操作求出两个数中不同的位(不同的位异或后为二进制1); 2.统计异或后不同的位的个数(即异或后二进制为1的个数) 复杂度 时间复杂度: O ( 1 ) O(1) O(1) 空间…