サーチ…


前書き

このトピックでは、[タスク、イベント、およびアクティビティ]のカスタムエンティティで[関連エンティティの説明]フィールドを拡張する方法を学習します。

関連するエンティティの説明フィールドにテスト作業オーダーを追加する

Acumatica ERPアプリケーションでテスト作業指示を管理するカスタム作業指示画面を既に作成したとします。

ここに画像の説明を入力

TestWorkOrder DACで既に宣言されているNoteIDフィールドがあり、 Test Work Orders画面で管理されています。

[Serializable]
public class TestWorkOrder : IBqlTable
{
    ...

    #region NoteID
    public abstract class noteID : IBqlField { }
    [PXNote]
    public virtual Guid? NoteID { get; set; }
    #endregion


    ...
}

ActivityIndicatorプロパティは、最上位のPXFormコンテナに対してTrueに設定されています

<px:PXFormView ID="form" runat="server" ActivityIndicator="true" DataSourceID="ds" Style="z-index: 100" DataMember="ITWO" Width="100%" >

ただし、テスト作業指示に対して新しいタスク、イベント、またはアクティビティが作成されると、 関連エンティティ記述コントロールは常に空です。

ここに画像の説明を入力

関連するエンティティ説明セレクタにテスト作業オーダエンティティを追加するには、次の手順を実行する必要があります。

  1. TestWorkOrder.NoteIDPXNoteAttributeフィールドで、 ShowInReferenceSelectorプロパティをTrueに設定し、BQL式を定義してエンティティルックアップに表示されるデータレコードを選択します。

    [PXNote(
        ShowInReferenceSelector = true,
        Selector = typeof(Search<TestWorkOrder.orderNbr>))]
    public virtual Guid? NoteID { get; set; }
    
  1. TestWorkOrder DACをPXCacheNameAttributePXPrimaryGraphAttributeます:

    [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(この場合Test Work Order )のユーザーフレンドリーな名前を定義します。この名前は、 Typeドロップダウンで使用できます。 PXPrimaryGraph属性は、 テスト作業オーダーを編集するためにユーザーがリダイレクトされる入力ページを決定します。これは、指定された例の作業オーダーテスト画面です。

  2. いくつかのTestWorkOrderフィールドをPXFieldDescriptionAttributeます。これらのフィールド値は、 関連エンティティ記述フィールド内の参照されたテスト作業指示を表す単一のテキストラベルに連結されます。

    ...
    [PXFieldDescription]
    public virtual string OrderNbr { get; set; }
    
    ...
    [PXFieldDescription]
    public virtual String Status { get; set; }
    
    ...
    [PXFieldDescription]
    public virtual string POOrderNbr { get; set; }
    
  3. 次のいずれかの方法を選択して、 エンティティ検索に表示される列のリストを定義します。

    a。 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; }
    

    b。 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。 可視性PXUIVisibility.SelectorVisible設定されたTestWorkOrderすべてのフィールドを表示する:

    ...
    [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つのステップを完了した後、 作業オーダーのテストは 、タスク、イベント、およびアクティビティの関連エンティティの説明フィールドで完全にサポートされている必要があります

ここに画像の説明を入力



Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow