ABAP POH和POV事件中 获得屏幕字段的值

在Screen显示之前,系统会自动将程序变量值放到屏幕字段中;在PAI事件中,系统会自动将屏幕字段的值更新到相应的程序变量。

在Screen Logic中我们还有POH和POV事件,所以有时需要调用函数DYNP_VALUES_READ来读取屏幕字段值。

比如屏幕上有两个字段,NAME1 和 NAME2。当字段NAME2触发搜索帮助的时候,必须参照用户在NAME1中的录入值。由于PAI尚未被执行,屏幕字段NAME1的字符串值尚未更新到程序变量NAME1。

此时我们可以调用DYNP_VALUES_READ来实现。

DATA: dynpfields TYPE TABLE OF dynpread WITH HEADER LINE.

CLEAR: dynpfields, dynpfields[].
 dynpfields-fieldname = ‘NAME1‘. "填入需要读值的字段名
APPEND dynpfields.

CALL FUNCTION ‘DYNP_VALUES_READ‘
   EXPORTING
     dyname             = sy-repid
     dynumb             = sy-dynnr
     translate_to_upper = ‘X‘
   TABLES
     dynpfields         = dynpfields
   EXCEPTIONS
     OTHERS             = 9.
IF sy-subrc = 0.
   READ TABLE dynpfields WITH KEY fieldname = ‘NAME1‘.
   name1 = dynpfields-fieldvalue. "备注
ENDIF. 
时间: 2024-10-21 05:47:40

ABAP POH和POV事件中 获得屏幕字段的值的相关文章

SQL 将一条记录中多个字段的值拼接为一个字段 && 将多行数据合并成一行,并且拼接CONVERT() 、for xml path的使用

接着上篇文章的订单表(商品编号,价格设置时间id(类似于创建时间,创建时间约早,则act_id越小) ,价格的时间段,商品价格) 一.将一条记录中多个字段的值拼接为一个字段 现要求将两个时间段合并为一个字段,应该如何做呢? 先来看下理想的结果: 查询出的时间段合并到一起了: 代码如下,将查询的字段用+'你想要的符号' + 拼接即可 select item,act_id,loc_id,convert(varchar(100),start_date,20)+ '-' +convert(varchar

GridView控件RowDataBound事件中获取列字段值的几种途径 !!!

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { e.Row.Attributes.Add("onclick", "javascript:alert('当前ID为:" +DataBinder.Eval(e.Row.DataItem,"CID"

GridView控件RowDataBound事件中获取列字段值的几种途径

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { e.Row.Attributes.Add("onclick", "javascript:alert('当前ID为:" +DataBinder.Eval(e.Row.DataItem,"CID"

ADO.NET实体数据模型中关于数据库字段默认值的处理

无论是Visual Studio 2010或者2013内置的ADO.NET实体数据模型都有一个小问题:数据库中有些字段已设置了默认值,但ADO.NET实体数据模型工具并不会自动进行设置. 这时需要手工进行设置. 假设我们的SQL Server数据库中RegisterDate字段已设置了默认值getdate().用ADO.NET实体数据模型产生了edmx文件后,打开edmx文件,鼠标右击RegisterDate,选择属性菜单,在属性面板中修改StroreGeneratedPattern属性的值为C

GridView控件RowDataBound事件中获取列字段途径

今天不知道怎么回事怎么也找不到gridview列中的控件,关键是其为编辑时隐藏域中的控件,取值就很成问题了,网上搜了很到,找到这个比较经典的东东了,可能大家都知道,但很少对比整理到一起,有多种方法可以找到控件,但是当控件很难找到时,又指定了其dataitem,可以直接用下4的方法快速取值.呵呵,个人觉得这些整理了的资料最有价值 要获取当前行的某个数据列,在实践中总结有如下几种方法:1. Cells[x].Txt.     从列单元格的文本值获取.这种方法简单高率,最为常用,但是功能单纯.此法存在

Django2.0中的on_delete字段取值含义

在Django的2.0版本中,外键字段 ForeignKey 和一对一字段 OneToOneField 都必须设置 on_delete 属性,否则会有以下报错: TypeError: __init__() missing 1 required positional argument: 'on_delete' 对于on_delete字段的取值含义如下: on_delete=None, # 删除关联表中的数据时,当前表与其关联的field的行为 on_delete=models.CASCADE, #

go语言 从结构体中获取某个字段的值(反射+泛型)

Go 语言提供了 user.Name 语法,来从 user 结构体中获取 Name 的值. 那么如果我们想将 Name 变成变量该如何做呢? 原型:getStructField(input interface{}, key string) (value interface{}, err error) 功能:从 input 结构体中,取出 key 字段 对应的值 代码实现: package utils import ( "errors" "fmt" "ref

sql 中判断一个字段的值是空还是有值

--len(string exepress)select yunlen,* from dbo.ctm where LEN(yunlen)=0

[SoapUI]怎样从应答报文中获取某个字段的值,然后用其改写某个变量

import com.eviware.soapui.support.GroovyUtils def groovyUtils = new GroovyUtils( context ) def holder = groovyUtils.getXmlHolder( "NormalUserLoginHealthTest#Response" ) def ProductID = holder.getNodeValue("//authen[1]/impsn[1]/pid[1]/text()