2017-04-19 84 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,即使我必须将其存储在单独的表中。我也可以创建预串联值并将其存储在物理表中,然后使用不同的选择器。他们会被迫选择预定义的组合,但我不认为这是一个问题。 –