使用 Developer Express 中的 QuantumGrid (TcxGrid) 记录用户界面
-
20-09-2019 - |
解决方案
量子格里德中的主/子属性主要设计为在网格中嵌套多个项目。如果您在数据组件中设置了关系,则可以简单地将控件连接到正确的数据源,并且一切都可以工作。
因此,如果您有两个数据集客户和发票。发票主数据源是客户数据源。然后,在您的编辑控件上,您指向客户数据源,然后将网格指向发票数据源。
如果您考虑主/详细信息的关系,实际上只会过滤详细数据集中的记录以匹配主数据集中的当前记录。单个编辑控件将始终在其连接到的数据集中显示“当前”记录。网格将在其连接到的数据集中显示所有可见记录。
我倾向于不像您在此处显示的那样使用编辑表格中的主/详细关系。我假设在其他屏幕上有某种方法可以选择要编辑的发票。我通常创建所需数据集的副本,仅此编辑所需的记录。如果我正在编辑现有发票,我会复制当前记录。如果是新的发票,我可以从一个空记录集开始。这是更多的工作 - 我有一些通用库功能,可以复制数据集结构,然后将一个或多个记录复制到该数据集中。根据您的设置,您还可以要求您的数据库以获取您感兴趣的记录。显然,在所有情况下都不应该这样做。这种方法的另一个问题是,您需要一种方法来更新此数据可能拥有的任何其他数据集 - 即您的主搜索屏幕。
但是,一旦我进入编辑屏幕,我就会发现它会使Eaiser变得越来越多。现在,我不需要担心顶级的主细节关系。如果发票具有内部主/详细关系关系,则可以处理这些关系,但是您知道数据集只有此发票的数据 - 并非数据库中的所有内容。
如果您的表格限制了数据集中的数据,则可以直接将所有内容连接起来,并且应该按照您的预期工作。您只会在客户数据集中有一个记录,并且发票只会有此发票的记录。
其他提示
我认为您需要照顾客户DataSource组件中的总详细信息。然后,网格将遵循此关系。
您为什么不通过 support@devexpress.com 询问这个问题呢?
我订阅 vcl 的原因当然除了组件的质量之外,还因为他们确实有很好的支持网站和员工?
在那里,您可以直接向编写这些内容的人询问,他们很可能很乐意为您提供示例程序(至少多年来我收到了很多示例)。
前提与任何其他主尾关系相同,而不论组件如何。您将需要在数据集级别上设置主数据,以完成所需的工作。