【发布时间】:2018-04-25 16:04:44
【问题描述】:
我想知道附加 DAC 属性的最佳方法。请注意,我需要 DAC 属性而不是 DAC 字段属性的附加方法。 具体来说,我需要将 [PXEMailSource] 附加到一些现有的 DAC 例如:PX.Objects.IN.INRegister 最好的方法是什么......? 对此的任何帮助将不胜感激
【问题讨论】:
标签: acumatica
我想知道附加 DAC 属性的最佳方法。请注意,我需要 DAC 属性而不是 DAC 字段属性的附加方法。 具体来说,我需要将 [PXEMailSource] 附加到一些现有的 DAC 例如:PX.Objects.IN.INRegister 最好的方法是什么......? 对此的任何帮助将不胜感激
【问题讨论】:
标签: acumatica
您可以使用PXSubstituteAttribute更改DAC的属性
Acumatica 框架开发指南注释(第 95 页)
PXSubstitute 属性
指示派生的 DAC 应在特定图表或所有图表中替换其基础 DAC。• 公共类型 GraphType
获取或设置派生 DAC 替换基本 DAC 的特定图形。
• public Type ParentType
获取或设置继承中所有类型的基本 DAC 类型 层次结构被派生的 DAC 取代。默认情况下,该属性 具有空值,这意味着所有基本 DAC 都被替换为 派生DAC备注
该属性放置在 DAC 的定义上,即 来自另一个 DAC。该属性主要用于使 计算定义中基本 DAC 的声明性引用 并且从子对象到父对象的链接被解释为 派生 DAC 的引用。
以下是如何在INRegister DAC 上使用Attribute 的示例。
[PXPrimaryGraph(new Type[]
{
typeof(INReceiptEntry),
typeof(INIssueEntry),
typeof(INTransferEntry),
typeof(INAdjustmentEntry),
typeof(KitAssemblyEntry),
typeof(KitAssemblyEntry)
}, new Type[]
{
typeof(Where<INRegister.docType, Equal<INDocType.receipt>>),
typeof(Where<INRegister.docType, Equal<INDocType.issue>>),
typeof(Where<INRegister.docType, Equal<INDocType.transfer>>),
typeof(Where<INRegister.docType, Equal<INDocType.adjustment>>),
typeof(Select<INKitRegister, Where<INKitRegister.docType, Equal<INDocType.production>, And<INKitRegister.refNbr, Equal<Current<INRegister.refNbr>>>>>),
typeof(Select<INKitRegister, Where<INKitRegister.docType, Equal<INDocType.disassembly>, And<INKitRegister.refNbr, Equal<Current<INRegister.refNbr>>>>>)
})]
[INRegisterCacheName("Receipt")]
[Serializable]
[PXSubstitute(GraphType = typeof(REQUIREDGRAPH_WHERE_SHOULD_BE_SUBSTITED))]
[PXEMailSource]
public class INRegisterExt: INRegister
{
//...
}
【讨论】: