2017-04-19 120 views
0

我們有一套BLC/DAC的對於具有給定關係級聯SQL領域

表1多個表的定製 - T1ID(INT-自動增量),T1CD(炭替代鍵)

表2 - T2ID(INT-自動增量),T2CD(炭替補多鍵),T1ID(參照T1ID)

其中在表2中的記錄是對選定的每個給定T1ID唯一的。

最初的設計規範是供用戶首先選擇Table1值,然後在數據輸入屏幕中選擇Table2值(分別爲UsrTable1Value,UsrTable2Value)。

用戶最近詢問是否可以將這些字段合併到一個與Dimension選擇器相似的字段中,以便有一個字段導致存儲爲「T2ID」的「Table1-Table2」。

我的第一個想法是簡單地爲T1CD-T2CD創建一個具有級聯屬性的子類DA,並且將替代鍵的基礎關閉,但是當完成時(160萬條記錄),性能是一個問題。延遲位於框架邊,因爲它在生成連續替代鍵時處理整個記錄集。

基礎上,我認爲也許不是簡單地產生這樣的PXDimension配置,但是我找不到任何引用,使尺寸2依賴尺寸1.

的價值,我知道我隨時可以創建查看這樣做,但我更願意在可能的情況下將其保留在框架內。

,基本上使我想到了兩個問題

1)視圖外,有沒有辦法使升降是在SQL完成,而不是與計算特性來連接在BQL領域?

2)有沒有人有或知道自定義尺寸的樣本,其中第2級的值取決於第1級的值?

任何建議,將不勝感激。

+0

我還沒有嘗試過,但你有沒有看過PXDBCalced執行SQL表達式?示例:[PXDBCalced(typeof(Substring ),typeof(string))]這可能會幫助您解決問題#1 – Brendan

+0

我不認爲有連接類型要與這個。我將不得不深入PXData以查看是否有..感謝您的建議 –

+0

您也可以通過查看Substring <>或其他類似的調用來查看創建自己的連接類型。 – Brendan

回答

0

開箱即用的尺寸選擇器只能用於分段鍵,並且無法處理來自多個表格的值。理論上,可以在自定義的DimentionSelectorAttribute中的不同表中填充段彈出窗口。但是,這還需要將每個T1ID/T2ID對存儲在一個單獨的表中,其他一些列聲明爲關鍵字(Sub表中存儲用於存儲子帳戶的相同概念:SubID是關鍵字,SubCD存儲由多個段組成的值)。

我個人認爲,這種努力是不值得的。更進一步,我會與客戶一起檢查他們期望的導航按鈕(首先,上一個,下一個,最後一個)如何使用他們的分段輸入控件?如果遵循標準的Acumatica UI設計,爲每個關鍵字段創建單獨的輸入,則不需要額外的努力來正確處理數據輸入和導航。

+0

我同意這一點。幸運的是,這不需要導航。這將用於支持其他詳細信息行(如銷售訂單行)的信息,但所涉及的額外努力無論是否證明需求恕我直言。如果我得到時間,我可能會查看DimensionSelectorAttribute,即使我必須將其存儲在單獨的表中。我也可以創建預串聯值並將其存儲在物理表中,然後使用不同的選擇器。他們會被迫選擇預定義的組合,但我不認爲這是一個問題。 –