【发布时间】:2018-04-26 22:02:27
【问题描述】:
我想在 DB 表 RQRequest 中添加一个包含自定义 db 字段 UsrSubID 的虚拟数据字段。
我正在尝试将虚拟字段添加到 EPApproval 屏幕上数据网格的列中。下面是我使用 PXDBScalar 获取 UsrSubID 值的代码。
两个DAC之间的关系是RQRequest.noteID = EPApproval.refNoteID
我得到错误:
错误:类型名称“usrSubID”在类型中不存在 文件中的“PX.Objects.RQ.RQRequest”:代码#EPOwned(22)
下面是我的代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using PX.Data;
using PX.Objects.CM;
using PX.TM;
using PX.Objects.CR;
using PX.Objects;
using PX.Objects.EP;
namespace PX.Objects.EP{
public class EPApprovalExt: PXCacheExtension<PX.Objects.EP.EPApproval>{
#region UsrCustomField
[PXString]
[PXUIField(DisplayName="Sub Account")]
[PXDBScalar(typeof(Search<RQ.RQRequest.usrSubID,Where<RQ.RQRequest.noteID,Equal<Current<EP.EPApproval.refNoteID>>>>))]
public virtual string UsrCustomField{get;set;}
public abstract class usrCustomField : IBqlField{}
#endregion
}
}
【问题讨论】:
-
自定义字段 UsrSubID 不是基本 DAC RQRequest 的一部分。您是否将 UsrSubID 添加到 RQRequest 的缓存扩展中?如果不是,则为 RQRequest 创建一个 DAC 扩展。之后,当您引用自定义字段时,您应该引用扩展而不是基本 DAC。使用标准命名约定,类似于 RQRequestExt.usrSubID 而不是 RQRequest.usrSubID
-
谢谢,我已设法将 UsrSubID 数据字段添加到 RQRequestExt DAC。但是我看不到任何数据。我尝试使用标准 RQ.RQRequest 数据字段,但我仍然无法看到数据网格中的值。也许我的方法是错误的,你可以举个例子。 Atlas 项目正确构建。
-
如果您可以直接访问在数据库上运行 SQL 查询,我建议您先手动检查数据库中的值。您可以运行类似 update rqrequest set UsrCustomField='test' 的查询,以确保有可用的数据。
-
如果数据确实存在,那么很可能是失败的关键关系: Where
>>> -
我在您的 BQL 中看到了问题。数据库中是否存在 UsrSubID?如果不是,您必须使用其他方式来获取或返回数据。
标签: acumatica