如何在 cxGrid 中使用 ADT 字段的子字段?

How to use subfields from ADT fields in cxGrid?

我正在尝试使用在 TcxGrid 的 TFDQuery 中添加的一些 ADT 子字段。当我使用 ADT 字段中的子字段添加列时,该列不显示字段值并且该字段为“只读”。 如何在cxgrid中正确使用该字段类型?

如何重现:

  1. 在数据库中创建一个 table(我使用的是 Postgres):

    create table test (id integer, name text);

  2. 在 Delphi 中,创建一个带有 SQL 文本的 TFDQuery:

    select test from test

  3. 在字段编辑器中添加 ADT 字段(测试)。因此,test.id 和 test.name 也将创建为单独的字段。

  4. 然后在表单中添加一个 TcxGrid 并创建一个 Tableview 添加第 3 步的 FDQuery 列(您不能通过 gridview 编辑器上的 "Retrieve Fields" 选项自动执行此操作).

  5. 问题:列不显示字段值,但 ADT 列(测试)像记录值

Ps:使用TDBGrid可以显示和编辑各个列,但我需要使用TcxGrid

如果要将 ADT 字段的子字段显示为单独的列,则 TFDQuery.ObjectView 属性 必须设置为 false (Displaying_ADT)。通过这种方式,您可以自动或手动添加 ADT 字段中存在的子字段,此外,还可以在 TcxGrid.

中单独编辑它们