通过People Code调用CI作数据存储的时候,有这样一种情况值得注意:
1、问题现象描述:
用People Code对RECORD REC_NAME的FIELD FLD_NAME进行赋值,保存CI报错 或者发现根本对FLD_NAME赋不上值。
2、查找问题描述:
在CI的结构里查找REC_NAME下的FLD_NAME,发现该字段,在页面是通过
WORK RECORD DERIVED_NAME的FLD_NAME进行赋值的。
在CI的右侧结构下体现为:
REC_NAME(RECORD) | RECORD | FIELD
FLD_NAME(FIELD) | DERIVED_NAME | FLD_NAME
3、问题解决办法:
(a) CI的左侧的结构里会同时包含RECORD REC_NAME 和WORK RECORD
DERIVED_NAME,当我们基于COMPONENT定义CI时,右侧只会出现WORK
RECORD DERIVED_NAME的FLD_NAME,而不会出现RECORD REC_NAME的
FLD_NAME。所以, 我们在People Code中需要对RECORD REC_NAME的
FLD_NAME赋值前,需要在CI中,将左侧结构中的RECORD REC_NAME
下的FLD_NAME DRAG-DROP到右侧,因右侧已存在RECORD REC_NAME的
FLD_NAME,为了区别,当DROP后,AD会自动用 FLD_NAME_0来与RECORD
REC_NAME的FLD_NAME相区别(如果还要DRAG-DROP相同的字段,AD会自动用
FLD_NAME_1来区别,以此类推,此是后话,和主题没太大关系,只为延伸)。
(b) 完成上面后,需要对RECORD REC_NAME的FIELD FLD_NAME赋值的话,我们
&oREC_NAME.FLD_NAME_0赋值,即可达到我们想要结果。
分享到:
相关推荐
ASSIGN l_ci_ekkodb TO <x_ci_ekkodb> CASTING. <x_ci_ekkodb> = <x_im_container>. lf_done = cl_mmpur_constants=>yes. ELSEIF im_name = 'CI_EKKODBX'. l_ci_ekkodbx = im_container. lf_done = cl_mmpur_...
在C语言中实现抽象数据类型(ADT)的一种常见方法是使用结构体和函数封装数据操作。可以定义一个结构体来保存私有数据,并通过一系列函数来操作这些数据。此外,还可以利用`typedef`和`enum`来提高代码的可读性和可...
**1.35 如果我不使用表达式的值, 我应该用`++i`或`i++`来自增一个变量吗?** 在这种情况下,使用`++i`更好,因为它更高效。`i++`需要创建一个临时副本以保存原始值,然后再递增。 **1.36 为什么如下的代码`int a =...
•当使用final修饰基本数据类型时,不能对其重新赋值,不能被改变。 •但对引用类型的变量而言,它仅仅保存的是一个引用,final只能保证他的地址不变,但不能保证对象,所以引用 类型完全可以改变他的对象。 ...
而XML(eXtensible Markup Language)是一种用于标记数据的语言,广泛应用于数据交换、配置文件和数据存储等领域。当Java反射与XML结合时,我们可以实现动态加载XML配置文件,解析其中的数据,并根据这些数据动态地...
此外,Objective-C是一种弱类型语言,这意味着类型检查是在运行时进行的,而不是在编译时。内存管理是通过引用计数来实现的,这对于防止内存泄漏至关重要。 引用计数的关键操作包括`alloc`、`copy`、`retain`、`...
**3.10 如果我不使用表达式的值,我应该用`++i`或`i++`来自增一个变量吗?** 在这种情况下,使用`++i`或`i++`都是可以的。但如果只是想增加变量的值而不使用这个值,通常推荐使用`++i`,因为它更简洁且易于阅读。 *...
从给定的文件信息来看,“TC2.0”似乎是一款编译器或集成开发环境(IDE),它列出了多种常见的编译错误,下面将对其中的一些错误进行详细的解释和分析。 ### ambiguous operators need parentheses 当编译器无法...
在电子设计领域,FPGA(Field-Programmable Gate Array)是一种可编程逻辑器件,它允许用户根据需求自定义硬件电路。Verilog是硬件描述语言(HDL)的一种,用于编写FPGA的设计代码,而C和C++则常用于与FPGA进行软件...