将测试工作订单添加到相关实体描述字段
假设你已经创建了自定义测试工作订单屏幕来管理 Acumatica ERP 应用程序中的测试工作订单:
在测试工作订单屏幕上管理的 TestWorkOrder
DAC 中已经声明了 NoteID
字段 :
[Serializable]
public class TestWorkOrder : IBqlTable
{
...
#region NoteID
public abstract class noteID : IBqlField { }
[PXNote]
public virtual Guid? NoteID { get; set; }
#endregion
...
}
对于顶级 PXForm
容器,ActivityIndicator
属性设置为 True :
<px:PXFormView ID="form" runat="server" ActivityIndicator="true" DataSourceID="ds" Style="z-index: 100" DataMember="ITWO" Width="100%" >
但是,为测试工作订单创建新任务,事件或活动时,“ 相关实体描述” 控件始终为空:
要将“ 测试工作订单” 实体添加到“ 相关实体描述” 选择器,你应该完成以下步骤:
-
对于 TestWorkOrder.NoteID 字段上的
PXNoteAttribute
,将ShowInReferenceSelector
属性设置为 True 并定义 BQL 表达式以选择实体查找中显示的数据记录 :[PXNote( ShowInReferenceSelector = true, Selector = typeof(Search<TestWorkOrder.orderNbr>))] public virtual Guid? NoteID { get; set; }
-
用
PXCacheNameAttribute
和PXPrimaryGraphAttribute
装饰TestWorkOrder
DAC:[PXLocalizable] public static class Messages { public const string Opportunity = "Test Work Order"; } [Serializable] [PXCacheName(Messages.Opportunity)] [PXPrimaryGraph(typeof(TestWorkOrderEntry))] public class TestWorkOrder : IBqlTable { ... }
PXCacheName
属性定义TestWorkOrder
DAC 的用户友好名称( 本例中为测试工作订单 ),可在类型下拉列表中找到。PXPrimaryGraph
属性确定用户被重定向以编辑测试工作订单的输入页面,这是给定示例中的测试工作订单屏幕。 -
用
PXFieldDescriptionAttribute
装饰一些TestWorkOrder
田地。这些字段值将连接到单个文本标签中,表示“ 相关实体描述” 字段中引用的测试工作顺序 :... [PXFieldDescription] public virtual string OrderNbr { get; set; } ... [PXFieldDescription] public virtual String Status { get; set; } ... [PXFieldDescription] public virtual string POOrderNbr { get; set; }
-
通过选择以下方法之一定义实体查找中显示的列列表 :
一个。使用
PXNoteAttribute.FieldList
属性(获得最高优先级):public abstract class noteID : IBqlField { } [PXNote( ShowInReferenceSelector = true, Selector = typeof(Search<TestWorkOrder.orderNbr>), FieldList = new Type[] { typeof(TestWorkOrder.orderNbr), typeof(TestWorkOrder.orderDate), typeof(TestWorkOrder.status), typeof(TestWorkOrder.poOrderNbr) })] public virtual Guid? NoteID { get; set; }
湾借用为 OrderNbr 查找定义的列的列表 :
public abstract class orderNbr : IBqlField { } [PXDBString(15, IsKey = true, IsUnicode = true, InputMask = ">CCCCCCCCCCCCCCC")] [PXDefault()] [PXUIField(DisplayName = "ITWO Nbr.", Visibility = PXUIVisibility.SelectorVisible)] [PXSelector(typeof(Search<TestWorkOrder.orderNbr>), typeof(TestWorkOrder.orderNbr), typeof(TestWorkOrder.orderDate), typeof(TestWorkOrder.status), typeof(TestWorkOrder.poOrderNbr))] [PXFieldDescription] public virtual string OrderNbr { get; set; }
C。显示所有
TestWorkOrder
字段,可见性设置为PXUIVisibility.SelectorVisible
:... [PXUIField(DisplayName = "ITWO Nbr.", Visibility = PXUIVisibility.SelectorVisible)] public virtual string OrderNbr { get; set; } ... [PXUIField(DisplayName = "Order Date", Visibility = PXUIVisibility.SelectorVisible)] public virtual DateTime? OrderDate { get; set; } ... [PXUIField(DisplayName = "Status", Visibility = PXUIVisibility.SelectorVisible)] public virtual String Status { get; set; } ... [PXUIField(DisplayName = "Purchase Order", Visibility = PXUIVisibility.SelectorVisible)] public virtual string POOrderNbr { get; set; }
完成上述 4 个步骤后, “任务,事件和活动”上的“ 相关实体描述” 字段应完全支持“ 测试工作订单” ****