delphi - 使用Developer Express中的QuantumGrid(TcxGrid)的文档用户界面

标签 delphi devexpress tcxgrid

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

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

像这样的东西

alt text


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

最佳答案

QuantumGrid中的Master / Child属性主要用于在网格中嵌套多个项目。如果您在数据组件中设置关系,则只需将控件连接到正确的DataSource,一切便会正常进行。

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

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

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

但是,一旦进入编辑屏幕,我就会发现它使事情变得更加轻松。现在,我不必担心顶层的主从关系。如果发票具有内部“主/明细”关系,则可以处理这些关系,但您知道数据集仅具有该一张发票的数据-而不是数据库中的所有内容。

对于表单,如果您限制数据集中的数据,则可以直接将所有内容连接起来,它应该可以按预期工作。您在“客户数据集”中只有一个记录,而发票仅包含该发票的记录。

关于delphi - 使用Developer Express中的QuantumGrid(TcxGrid)的文档用户界面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1928321/

相关文章:

delphi - Free Pascal 相当于 Delphi 的 TStopWatch 的是什么?

delphi - 如何将一个Delphi项目正确划分成BPL?

delphi - 进程终止回调

file - TSearchRec Delphi 向后

javascript - 如何在 gridview 分页上的 DataItemTemplate 内容中执行 javascript

delphi - 如何在 DevExpress QuantumGrid (VCL) 的 onCustomDrawCell 事件中获取列索引

delphi - TcxGrid 中的值更改后如何触发事件处理程序?

时间:2019-05-17 标签:c#devexpresspichart系列点颜色变化

delphi - 如何根据表值对 cxgrid 进行着色?

delphi - 调用 cxGrid Navigator 按钮的 Onclick 事件