2017-04-19 3 views
0

我々は一定の関係セレクタに連結SQLフィールドおよび/またはカスタムPXDimension

表1と複数のテーブルを有しているカスタマイズBLC/DACのセットを持っている - T1ID(INT-自動インクリメント)、T1CD(チャー代替キー)

表2 - 表2のレコードが選択された各所与T1IDに一意であるT2ID(INT-自動インクリメント)、T2CD(チャーsubsituteキー)、T1ID(T1ID参照)

最初の設計仕様は、ユーザーが最初にTable1値を選択し、次にデータ入力画面でTable2値(UsrTable1Value、UsrTable2Value)を選択することでした。

最近、ユーザは、これらを1つのフィールドsimularから次元セレクタに結合することができるかどうかを尋ねたので、「Table1-Table2」がT2IDとして格納されます。

私の最初の考えは、T1CD-T2CDの連結プロパティを持つサブクラス化dacを作成して代用キーを基にしていましたが、それが完了するとパフォーマンスが問題になります(160万レコード)。連結された代用キーを生成するとき、レコードセット全体を処理するように見えるので、遅延はフレームワーク側にあります。私は私が常に作成することができます知っている私は、しかし、私は次元2を作るためにすべての参照を見つけることができないだけで、このためPXDimension構成を生成する代わりに、おそらく考えていることに基づいて

ディメンション1.

の値に依存していますこれを行うビューが、私は可能であればフレームワーク内に保持することを好むだろう。基本的には視野の外に二つの質問

1)に私をもたらします

、リフティングが計算プロパティを使用してSQLに行われていないので、BQL内のフィールドを連結する方法はありますか?

2)レベル2の値がレベル1の値に依存するカスタム次元のサンプルを持っているか知っていますか?

何か提案がありがとうございます。

+0

私はそれを試していませんが、SQL式を実行するためにPXDBCalcedを調べましたか?例:[PXDBCalced(typeof(Substring )、typeof(string))]これは質問#1であなたを助けるかもしれません – Brendan

+0

私は使用する連結タイプがないと思いますこの。私はPXDataに掘り下げて、そこにあるかどうかを調べる必要があります..提案をありがとう –

+0

サブストリング<>または他の同様の呼び出しを見て、独自の連結タイプを作成することもできます。 – Brendan

答えて

0

ディメンションセレクタは、セグメンテーションキーのみで動作するように設計されており、複数のテーブルの値を処理することはできません。理論的には、カスタムDimentionSelectorAttribute内の異なるテーブルからセグメントポップアップを設定することは可能です。しかし、これはさらに、各T1ID/T2IDのペアをキーとして宣言された別のテーブルに保存する必要があります(サブアカウントを格納するためにSubテーブルで使用されているのと同じコンセプト:SubIDはキーであり、SubCDは複数のセグメント)。

私の個人的な意見では、その努力は価値がありません。一歩進んで、セグメント化された入力コントロールでナビゲーションボタン(最初、前、次、最後)がどのように機能するかを顧客に確認します。キーフィールドごとに別々の入力を作成して標準のAcumatica UIデザインに従えば、データ入力とナビゲーションの両方を適切に処理するための追加の労力は必要ありません。

+0

私もそれに同意します。幸いにも、これのためにナビゲーションは必要ありません。これは、他の詳細行(受注明細など)で情報をサポートするためのものですが、IMHOの必要性を正当化しないにかかわらず、余分な労力が必要です。私が時間を得るならば、別のテーブルに格納しなければならないとしてもDimensionSelectorAttributeを見るかもしれません。私はまた、事前に連結された値を作成し、それを物理テーブルに格納してから、別のセレクタを使用することもできます。彼らはあらかじめ定義された組み合わせを選ぶことを余儀なくされるだろうが、私はそれが問題であるとは思わない。 –

関連する問題