首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在projection INKitAssembly projection类中使用扩展表?

如何在projection INKitAssembly projection类中使用扩展表?
EN

Stack Overflow用户
提问于 2020-05-07 02:20:28
回答 1查看 217关注 0票数 0

下面是扩展数据存取控制器和图形代码,INRegisterKitAssemblyExt是一个数据存取控制器,我为它创建了一个数据库表。我想将usrSiteID值保存在INRegisterKitAssemblyExt(单独的)数据库表中。请检查如何使用INKitRegister DAC初始化扩展DAC并保存该值,以及如何在UI中使用usrSiteId?

代码语言:javascript
运行
复制
[PXTable(typeof(INKitRegister.refNbr), typeof(INKitRegister.KitRevisionId))] 
public class INRegisterKitAssemblyExt: PXCacheExtension<INKitRegister> { 

      #region RefNbr

        public abstract class refNbr:PX.Data.BQL.BqlString.Field<refNbr> {
        }
        protected String _RefNbr;
        [PXDBDefault(typeof(INKitRegister.refNbr))]
        [PXDBString()]
        [PXParent(typeof(Select<INKitRegister, Where<INKitRegister.refNbr, Equal<Current<refNbr>>,And<INKitRegister.kitRevisionID, Equal<Current<kitRevisionID>>>>>))]
        public virtual String RefNbr {
            get {
                return this._RefNbr;
            }
            set {
                this._RefNbr = value;
            }
        }

        #endregion


        #region KitRevisionID

        public abstract class kitRevisionID:PX.Data.BQL.BqlString.Field<kitRevisionID> {
        }
        protected String _KitRevisionID;
        [PXDBDefault(typeof(INKitRegister.kitRevisionID))]
        [PXDBString()]

        public virtual String KitRevisionID {
            get {
                return this._KitRevisionID;
            }
            set {
                this._KitRevisionID = value;
            }
        }

        #endregion

   // My Fields as well as refNbr and KitRevison is also here 
        public virtual int? UsrQCSiteID {
            get; set;
        }
        public abstract class usrQCSiteID:PX.Data.BQL.BqlInt.Field<usrQCSiteID> {
        }

} 

    // Extension Graph

    public class KitAssemblyEntryExt:PXGraphExtension<KitAssemblyEntry> {

    }
EN

回答 1

Stack Overflow用户

发布于 2020-05-07 04:42:49

代码示例中的INRegisterKitAssemblyExt不是DAC。DAC继承自IBqlTable基类。

代码示例中的INRegisterKitAssemblyExt是一个DAC扩展。DAC扩展继承自PXCacheExtension基类。永远不要为DAC扩展创建数据库表。

DAC扩展中的自定义字段将自动保存到基本DAC表中。这里的主要问题是INKitRegister没有绑定到数据库表。它是一个投影DAC,并且INKitRegister数据库表不存在。

INKitRegister DAC投影指向INRegister DAC:

代码语言:javascript
运行
复制
[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

您应该在INRegister DAC而不是INKitRegister上创建扩展,因为INRegister绑定到同名的实际数据库表:

代码语言:javascript
运行
复制
public class INRegisterKitAssemblyExt: PXCacheExtension<INRegister>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61642436

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档