问题标签 [data-aware]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
7828 浏览

delphi - Delphi7 TMS TDBAdvGrid 单击列标题时对数据进行排序

我是德尔福的新手,我需要一个建议。

我正在使用 TMS TDBAdvGrid,当用户单击列的标题时,我需要对数据进行排序。我设置了网格的排序设置并为 onclicksort 事件编写代码,但它不起作用。

网格的排序设置:

onclicksort 事件:

网格不直接链接到数据库。数据被加载到内存中(TClientDataSet),我只需要在内存中对数据进行排序,而不需要对数据库进行其他查询。

谢谢

0 投票
2 回答
2168 浏览

delphi - Delphi(VCL)泛型和数据绑定?

有谁知道 Delphi XE(我在这里说的是 VCL)是否有任何适用于数据感知控件的 Generic Collection 类?换句话说,是否有任何通用类,例如可以分配给 TDataSource.DataSet 的 TObjectList<> 或类似的东西?

谢谢。

0 投票
1 回答
200 浏览

.net - .NET 需要一个真正的数据感知和数据驱动的网格,它使用 GUID 作为行句柄

我正在寻找一个针对.NET 的数据感知网格,该网格已针对底层数据集的重复更改进行了优化。我将举一个例子来说明我在这种情况下优化的意思,因为几乎所有网格都允许您更改数据源。但是回到 OCX 时代,改变数据源给数据感知网格带来了问题。

此数据感知数据驱动网格不得使用整数行句柄。它必须使用 GUID 行句柄。这是这个网格最重要的要求。

底层数据集的每一行都被分配了一个 GUID rowHandle,而不是一个整数,并且无论数据行如何排序或分组,数据行的 GUID rowHandle 都保持不变,并且可以通过其 rowHandle 立即检索数据行。

当当前获得焦点的行的 GUID 与最近获得焦点的行的 GUID 不同时,将触发网格的FocusedRowChanged事件。 [编辑:在使用整数行句柄的网格中,通常情况下,当数据源更改时,FocusedRowChanged 事件不会触发,因为focused-row-position 没有更改;例如,焦点在数据源更改前的第一行,焦点在数据源更改后的第一行;即使基础行数据完全不同,整数行句柄也是相同的。]

我希望网格的行为是真正的数据感知和数据驱动;例如

现在,如果我清除上面网格的基础数据集并用另一个数据集替换它的数据源,该数据源也有 customername 和 city 列,并在该列中包含值 Acme Widgets 和 Foo Industrial,网格将按 customername 对新数据集进行分组和城市列,并展开这些公司(如果 PreserveGroupingsWhenDataSetChanges 标志设置为 True)。

0 投票
1 回答
1631 浏览

delphi - 如何在表格获得新记录时自动更新图表?

假设我有一个带有颜色字段(红色/白色/蓝色)的表,并且每次我的应用程序通过 TCP/IP 接收事件并将新行插入数据库时​​,我希望数据感知饼图组件自动更新显示这些颜色的比例。我怎样才能做到这一点?

我见过数据感知组件的示例,但它们只是显示表中每一行的值(我还没有走得太远)。事实上,我什至不确定在数据库中添加另一行是否会向 DB 感知网格添加另一行(推送,而不是拉取)。

0 投票
5 回答
4488 浏览

delphi - 如何获取内存对象的数据集?

有谁知道与泛型和 RTTI 一起使用的 TDataset 后代,以便我可以编写这样的代码,并在 GUI 中使用数据感知组件?:

应该是可能的。fielddefs 可以通过 RTTI 创建,因为数据的确切类型是已知的。值也可以自动来回编组,因此您可以查看和编辑类或记录中的数据。

我讨厌编写大量无用的编组代码,而所需的信息已经可以通过 RTTI 获得。

或者也许有人曾经写过某种 TEnumerable <-> TDataset 适配器?

是否存在类似的东西,或者我应该开始写一个吗?

...

我能找到的最接近的东西是 Marco Cantu 的一个(优秀的!)示例,来自 Mastering Delphi 7,但代码本身并没有使用新的语言特性,如泛型、新的 RTTI 系统或属性,而且它没有不能与 Unicode delphi 一起使用。自 D7 以来,TDataset 也发生了变化。

0 投票
1 回答
1350 浏览

delphi - 是否有可用的数据感知选项卡控件?

数据感知控件可以链接到数据集,以显示当前行的字段中包含的数据,或者在某些情况下,显示多行中一列或多列的数据。TTabControl 让您可以以易于理解的方式将相同的控件集应用于不同的数据值集。

在我看来,他们会相处得很好。TTabControl 将是一个很好的数据感知控件(将其链接到数据集中的标识列,它可能是比 TDBNavigator 更直观的导航器),但 VCL 中没有。

有没有人创建了一个数据感知选项卡控件?我发现的唯一一个是DBTABCONTROL98Jean-Luc Mattei,它可以追溯到 1998 年(Delphi 3 时代),即使在对其进行修改以使其能够在 XE 下编译之后,它实际上也不起作用。还有其他按预期工作的吗?(即,在从数据集中添加/删除新记录时添加/删除选项卡,并在用户更改选项卡时切换数据集的活动行,反之亦然。)

是的,我知道如果数据集中有很多行,这可能会有点笨拙。我正在寻找一些东西来为行数为个位数或非常低的两位数的用例构建 UI。

0 投票
2 回答
187 浏览

database - 使非窗口组件数据感知

我有一个带有日期属性的非窗口组件。我想通过对日期字段的读取和写入功能使此组件数据感知。(换句话说,如果我在运行时更改日期,我想将新的日期属性值写入数据集。)我已经搜索了示例,但我找不到任何示例。找到了几个只读示例,例如 TDbLabel,但没有一个允许将更改写入数据集。如果有人能给我举个例子,我将不胜感激。

0 投票
0 回答
250 浏览

delphi - TDBText 在 Delphi 中没有更新,其他数据感知控件工作

我已经接管了 Delphi XE4 中的一个项目,并在项目中添加了一些数据感知控件。TDBGrid 似乎工作正常,但没有一个 TDBText 控件显示任何内容——这让我很困惑。我可以在表单上抛出一个 TDBEdit 并将其连接起来,它工作得很好。

谁能想到会阻止 TDBText 控件工作的东西?

0 投票
0 回答
328 浏览

delphi - Delphi 数据感知组合编辑控件能够输入任意文本?

我想让用户在数据感知编辑控件(组合框、编辑)中输入联系人姓名,并将自动建议项绑定到 sql 表。我想要实现的是:绑定到数据源的 Contact_Name 字段的组合,绑定到同一数据源的 Contact_Tel 的编辑,绑定到同一数据源的 Contact_Email 的编辑

组合下拉列表应绑定到 sql 数据源并显示人名、电话号码和电子邮件。用户可以选择现有选项之一或键入任意名称(新联系人)。当联系人组合框的文本发生更改时,如果文本与现有选项之一匹配,则使用所选选项的电话号码和电子邮件填充另外两个编辑控件,或者 - 如果文本不在列表中,则另一个两个编辑控件被清除。

我目前拥有的设置是绑定到数据集字段的 dbLookupComboBoxEh + 带有键和列表字段的列表源 + 样式 = csDropDownEh。

问题是当用户键入列表源中包含的值时它工作正常,但是一旦我键入不在列表中的内容,控件就会被清除并且不再记住该值。

是否有将数据绑定下拉菜单与建议值和输入任意文本的能力相结合的控件?

0 投票
3 回答
1969 浏览

delphi - 点击后如何让 TDBCheckBox 立即更新其 DataField?

我有一个带有多个控件的表单,其中第一个TDBCheckBox是绑定到DataField := 'enabled'.

单击复选框时,我希望启用/禁用所有剩余的控件。

这仅在焦点离开复选框或滚动数据集时有效(我在此表单上也有导航器)。

有没有办法让复选框立即更新其数据字段?

还是有更好的选择来实现我所描述的?