2017-02-21 5 views
0

私のビジネスロジックは、指定されたクラスの在庫品目に対して、常にキット仕様のデフォルト構成品目数が1である単一の構成品を持つように特化されています。完成品のキットアセンブリから構成要素を反映

私たちは、私が上の構成部品から部品名と1つ以上のフィールドの両方を反映しているよ0 Kit Spec screenshot

のデフォルトコンポーネントの数量で、キット仕様の代替生の部品をリストします関連する在庫品目のレコードが正常終了しました。

PXFormulaと検索の組み合わせでこれを行うことはできますか?私はこの種のルックアップを成功させようと試みました。私は生の部品フィールドに0を得ています。 (また、InventoryIDではなく、コンポーネントのInventoryCDを表示するのが大好きだ。)

**  #region UsrRawPart 
    [PXDBInt()] 
    [PXUIField(DisplayName = "Raw Part", Enabled = false)] 
    [PXFormula(typeof(Search<INKitSpecStkDet.compInventoryID, Where<INKitSpecStkDet.dfltCompQty, Equal<decimal1>, And<INKitSpecStkDet.kitInventoryID, Equal<Current<InventoryItem.inventoryID>>, And<INKitSpecStkDet.revisionID, Equal<int1>>>>>))]   
    public virtual Int32? UsrRawPart { get; set; } 
    public abstract class usrRawPart : IBqlField { } 
    #endregion** 

私はバックの代わりに仕上がっ良いアイテムまでのコンポーネント項目を集約する数式項目を作成する必要がありますか?

他にもアプローチがありますか?

答えて

0

に設定INVENTORY次元とSubstituteKeyのInventoryAttributeまたはいくつかの他のPXDimensionSelectorAttributeでフィールドを飾る必要があり、A数式フィールドは、このようにクロスオブジェクトになるようには設計されていません。私はKit SpecのPersistメソッドをオーバーライドし、完成した製品在庫アイテムを更新するためにビジネスロジックコントローラを呼び出します。

0

PXFormulaAttributeは、バインドされていないフィールドにアタッチされている場合は、RowSelectingハンドラにのみ登録されています。バインドされたフィールドの場合、Search演算子で使用すると、PXFormulaは何も行いません。

フレームワークでいつあなたのSearchステートメントを実行すると思いますか?レコードがPXCacheに挿入されている場合は、PXDefaultAttributeが表示されます。

部品のInventoryCDではなくInventoryIDを表示するには、あなたはルスランとオフラインの議論パーInventoryItem.inventoryCD

+0

ありがとうございました!最初の挿入時に実行されることを希望します。また、数量が1のキット仕様のコンポーネントアイテムが変更された場合は、それを実行します。 –

+0

キットのスペックに1個の変更が含まれていれば何を意味するのか分かりません...詳しく説明したカップルのスクリーンショットを提供すると非常に役に立ちます。 – RuslanDev

+0

私は、標準コンポーネント(デフォルトのqty 1)と代替コンポーネント(デフォルトのqty 0)の両方を含むKit Specのスクリーンショット(オリジナルの質問の説明)をアップロードしました。私は完成品在庫品目に標準部品を動的に表示することを検討しています。 –

関連する問題