[我正在使用套件装配图,它使用了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";
}
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>