我需要生成一个用于输入销售文档(例如发票)的用户界面。我正在尝试使用“开发人员表达”的组件,特别是 QuantumGrid 组件(TcxGrid)。我在 devexpress 支持中心看过主从组件和搜索的演示,但没有一个对我有帮助,因为它们都使用 2 个网格来处理主从关系,并一次编辑多个记录。

我只需要一次编辑一条记录(文档),并在标题中使用一对对象数据件组件(例如 TDBEdit)和一个网格来处理细节。

像这样的东西

alt text

在哪里可以找到以这种方式使用这些组件的基本示例?

有帮助吗?

解决方案

量子格里德中的主/子属性主要设计为在网格中嵌套多个项目。如果您在数据组件中设置了关系,则可以简单地将控件连接到正确的数据源,并且一切都可以工作。

因此,如果您有两个数据集客户和发票。发票主数据源是客户数据源。然后,在您的编辑控件上,您指向客户数据源,然后将网格指向发票数据源。

如果您考虑主/详细信息的关系,实际上只会过滤详细数据集中的记录以匹配主数据集中的当前记录。单个编辑控件将始终在其连接到的数据集中显示“当前”记录。网格将在其连接到的数据集中显示所有可见记录。

我倾向于不像您在此处显示的那样使用编辑表格中的主/详细关系。我假设在其他屏幕上有某种方法可以选择要编辑的发票。我通常创建所需数据集的副本,仅此编辑所需的记录。如果我正在编辑现有发票,我会复制当前记录。如果是新的发票,我可以从一个空记录集开始。这是更多的工作 - 我有一些通用库功能,可以复制数据集结构,然后将一个或多个记录复制到该数据集中。根据您的设置,您还可以要求您的数据库以获取您感兴趣的记录。显然,在所有情况下都不应该这样做。这种方法的另一个问题是,您需要一种方法来更新此数据可能拥有的任何其他数据集 - 即您的主搜索屏幕。

但是,一旦我进入编辑屏幕,我就会发现它会使Eaiser变得越来越多。现在,我不需要担心顶级的主细节关系。如果发票具有内部主/详细关系关系,则可以处理这些关系,但是您知道数据集只有此发票的数据 - 并非数据库中的所有内容。

如果您的表格限制了数据集中的数据,则可以直接将所有内容连接起来,并且应该按照您的预期工作。您只会在客户数据集中有一个记录,并且发票只会有此发票的记录。

其他提示

我认为您需要照顾客户DataSource组件中的总详细信息。然后,网格将遵循此关系。

您为什么不通过 support@devexpress.com 询问这个问题呢?

我订阅 vcl 的原因当然除了组件的质量之外,还因为他们确实有很好的支持网站和员工?

在那里,您可以直接向编写这些内容的人询问,他们很可能很乐意为您提供示例程序(至少多年来我收到了很多示例)。

前提与任何其他主尾关系相同,而不论组件如何。您将需要在数据集级别上设置主数据,以完成所需的工作。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top