將測試工作訂單新增到相關實體描述欄位
假設你已經建立了自定義測試工作訂單螢幕來管理 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 個步驟後, “任務,事件和活動”上的“ 相關實體描述” 欄位應完全支援“ 測試工作訂單” ****