我们有一套用于自定义的BLC / DAC,它具有多个具有给定关系的表
表1 - T1ID(int-autoincrement),T1CD(char-substitute键)
表2 - T2ID(int-autoincrement),T2CD(char-subsitute key),T1ID(对T1ID的引用)
表2中的记录对于每个给定的T1ID都是唯一的。
初始设计规范是让用户首先选择Table1值,然后在数据输入屏幕中选择Table2值(分别为UsrTable1Value,UsrTable2Value)。
用户最近询问是否可以将这些字段组合成一个字段与Dimension选择器相似,以便有一个字段产生" Table1-Table2"存储为T2ID。
我的第一个想法是简单地为T1CD-T2CD创建一个带有连接属性的子类dac,并将替换键置于关闭状态,但是当完成时(160万条记录),性能是个问题。延迟是在framwork方面,因为它在生成连接替换密钥时会处理整个记录集。
基于此,我认为可能只是简单地为此生成PXDimension配置,但是我无法找到任何引用以使Dimension 2依赖于Dimension 1的值。
我知道我总是可以创建一个可以实现此目的的视图,但如果可能的话,我更愿意将其保留在框架内。
这基本上让我有两个问题
1)在视图之外,是否可以在BQL中连接字段,以便在SQL上完成提升而不是使用计算属性?
2)是否有人拥有或知道自定义维度的样本,其中级别2中的值取决于级别1中的值?
任何建议都将不胜感激。
答案 0 :(得分:0)
开箱即用,尺寸选择器设计为仅与分段键一起使用,并且无法处理来自多个表的值。理论上,可以在自定义DimentionSelectorAttribute中的不同表中填充段弹出窗口。但是,这还需要将每个T1ID / T2ID对存储在一个单独的表中,其他列声明为一个键(Sub表中用于存储子帐户的相同概念:SubID是一个键,SubCD存储由多个段组成的值) )。
我个人认为,这种努力是不值得的。更进一步,我会向客户询问他们希望导航按钮(第一个,上一个,下一个,最后一个)如何使用它们的分段输入控件?如果遵循标准的Acumatica UI设计,并为每个关键字段创建单独的输入,则无需额外的工作来正确处理数据输入和导航。