数据视图不使用投影DAC刷新

问题描述 投票:0回答:1

[我正在使用套件装配图,它使用了INKITRegister投影类,我创建了另一个DAC INKITRegisterExt(一个单独的数据库表),它使用INKITRegister作为父类,但是当我单击导航按钮时,扩展类数据未按选择显示INKitRegister。

例如,如果选择了“ A”套件,那么扩展表将显示“ A”相关数据,但是当我单击导航时,它将显示“ A”数据,而不是其他选定的INKitRegister数据。但是,当选择a时,它将覆盖扩展字段,但是一旦显示“ A”数据,便始终显示数据“ A”数据而不是其他导航套件组装数据,我在做什么错?

我在下面使用扩展图查询扩展表

    public PXSelect<INRegisterKitAssemblyExt,
                      Where<INRegisterKitAssemblyExt.refNbr,
                       Equal<Current<INKitRegister.refNbr>>, And<INRegisterKitAssemblyExt.kitRevisionID, Equal<Current<INKitRegister.kitRevisionID>>>>> RegisterAssemblyExtDtl;

protected virtual void INKitRegister_KitInventoryID_FieldUpdated(PXCache sender, PXFieldUpdatedEventArgs e) {
    if(RegisterAssemblyExtDtl.Current == null) {
                RegisterAssemblyExtDtl.Insert();
            }
 RegisterAssemblyExtDtl.Current.Text = "Value of A";
}
acumatica acumatica-kb
1个回答
0
投票
PXSelect数据视图的主DAC不应在扩展类上:

PXSelect<INRegisterKitAssemblyExt, ...

您应该改用扩展的基本DAC:

PXSelect<INKitRegister, ..

INKitRegister是INRegister DAC上的投影DAC:

[PXPrimaryGraph(typeof(KitAssemblyEntry))] [PXCacheName(Messages.INKit)] [PXProjection(typeof(Select2<INRegister, InnerJoin<INTran, On<INRegister.FK.KitTran>>>), Persistent=true)] [Serializable] public partial class INKitRegister : IBqlTable, ILSPrimary

您正在尝试将数据库绑定字段添加到INKitRegister投影中,但是不存在INKitRegister数据库表:

public class INRegisterKitAssemblyExt: PXCacheExtension<INKitRegister>

您应在投影使用的实际数据库表INRegister上使用DAC扩展,以保留字段:

public class INRegisterKitAssemblyExt: PXCacheExtension<INRegister>

© www.soinside.com 2019 - 2024. All rights reserved.