问题标签 [dbgrid]

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 投票
4 回答
20242 浏览

delphi - Delphi - 恢复 DBGrid 中的实际行

D6 教授

以前我们使用 DBISAM 和 DBISAMTable。它处理 RecNo,并且可以很好地进行修改(删除、编辑等)。

现在我们用不处理 RecNo 的 ElevateDB 替换,而且很多时候我们使用查询,而不是表。

查询必须重新打开才能看到修改。

但是如果我们重新打开查询,我们需要重新定位到最后一条记录。仅定位是不够的,因为 Grid 将其显示在另一行中。这是非常令人不安的事情,因为修改记录移动到另一行之后,你很难跟踪它,用户讨厌这个。

我们找到了这段代码:

原始示例是使用 moveby。这对查询很好,因为我们看不到查询在后台重新打开,视觉控件没有改变行位置。

但是当我们有 EDBTable 或 Live/Sensitive Query 时,使用 MoveBy 很危险,因为如果有人删除或追加新行,我们可能会重新定位到错误的记录中。

然后我尝试使用书签(见备注)。但是这种技术不起作用,因为它是在另一个 Row 位置显示记录......

所以问题是:如何在 DBGrid 中强制行位置和记录?

或者在底层 DataSet 刷新后,什么样的 DBGrid 可以重新定位到记录/行?

我搜索用户友好的解决方案,我理解它们,因为我尝试使用这种跨 DBGrid 的跳转,并且使用起来非常糟糕,因为更新后尝试查找原始记录时我的眼睛都出来了...... :-(

感谢您的每一个帮助,链接,信息:dd

0 投票
2 回答
4259 浏览

delphi - Delphi - 选择在另一行时更新 dbGrid 中的字段

我有一个带有 X 行的 dbGrid。我想用计时器更新第二行中的字段值(例如,显示倒计时)。没问题,但我希望能够更改选定的行并继续更新第二行。当网格中的选择发生变化时,连接数据集的当前记录也会发生变化,这是一个问题,因为计时器中的代码指向所选记录。

怎么可能解决?谢谢!

0 投票
1 回答
6256 浏览

database - 如何在 OnMouseMove 事件期间确定 DbGrid 单元格的值

我有 OnMouseMove 事件,在此期间我想找到某个单元格的值(不一定是鼠标下的那个)。基本上问题是:如何使用其 x 和 y 坐标访问单元格数据而不选择它、更改焦点等?

0 投票
2 回答
14984 浏览

delphi - Delphi DBGrid 格式显示值

我需要将 a 中的值格式化为DBGrid以某种格式 ex 显示'#,##0.00'。知道怎么做吗?

问候,彼得

0 投票
1 回答
4061 浏览

delphi - Delphi - 使用 DBGrid 从搜索中选择行

我已经使用查询搜索了数据库。

搜索结果显示在 DBGrid 组件中,供用户选择他/她希望继续处理的行。

DBGrid 始终将记录指针设置为结果集中的第一条记录,因此默认情况下始终“选中”一行。我需要将此行为更改为在首次显示数据时不选择任何行,以便我可以确定用户是否实际进行了选择。

是否可以判断是否没有进行选择,即用户没有选择任何行?

非常欢迎任何帮助!

0 投票
3 回答
5819 浏览

delphi - 在 Delphi 中使用 ClientDataSet,你能在 DBGrid 中同时显示数据和增量记录吗?

我正在使用标准数据感知组件和 dbExpress 在 Delphi 6 + MySQL 数据库中制作应用程序。该应用程序允许用户查看网格中的记录并在客户端编辑数据(插入和/或删除记录)。然后,这些数据编辑仅在单击提交按钮时才写入数据库。所有这些工作正常,并具有以下设置:

控件: 1. DBGrid1 链接到 DataSource1 以直观地显示数据。2. DataSource1 链接到 ClientDataSet1 以提供数据供 DBGrid 显示。3. ClientDataSet1 与DataSetProvider1 链接,提供客户端数据进行编辑。4. DataSetProvider1 链接 SQLDataSet1,它从单个 DB 表中选择记录。5. SQLDataSet1 链接到 SQLConnection 以提供与 MySQL 数据库的连接。

操作: 1. 用户插入记录:我使用 ClientDataSet1.InsertRecord;2.用户删除一条记录:我使用ClientDataSet.Delete;3、用户提交数据:我使用ClientDataSet1.ApplyUpdates(-1);

这一切在处理数据和发布数据方面都非常有效(包括在 DataSetProvider1BeforeUpdateRecord 上的一个小技巧来删除记录)。

现在我的问题: 当用户第一次加载表单时,DBGrid1 显示所有原始记录,删除所有已删除记录。但是当用户在 ClientDataSet1 中插入一条新记录时,DBGrid1 中会显示一条空白记录。实际数据不会丢失或设置为 NULLS,因为当您使用 ClientDataSet1.ApplyUpdates 时,此记录已正确写入 DB。

我知道 TClientDataSet 有一个用于原始数据的数据属性和一个用于编辑数据的 Delta 属性。这两个带有数据的属性可以一次显示在一个 DBGrid 中并且仍然允许用户编辑数据吗?

我查看了 30 多种资源和演示应用程序,都避免了这个问题。这可以做到吗?

0 投票
1 回答
1281 浏览

database - Delphi 5.0 Interbase/FireBird 连接问题

我在可视化 DBGrid 上的数据时遇到了一些问题。

我正在使用 Delphi 5.0,我有一个大小为 50MB 的 Interbase 6.0 DB

有些表有大约 32000 个元素,它们是巨大的。

我正在使用 Interbase 的东西,例如:

  • IB交易
  • 数据源1
  • 数据库
  • 数据库导航器

创建连接。

我确实稳定了连接,但没有显示数据。

存在与错误组件配置相关的任何问题。我认为问题与我的数据库大小以及 Delphi 如何处理数据有关。

例如:如果在 TIBDatabase 上我将 AllowStreamedConnected 设置为 true,则显示数据。

  • 为了使数据库数据可视化,我必须设置任何其他特定信息吗?

  • Delphi 或 Interbase/Firebird 中是否有一些东西我可以更改以使数据可见?

  • 也许是 Interbase/Firebird 连接器上的东西???

0 投票
1 回答
865 浏览

vb6 - DBGrid 的哪个 NumberFormat 字符串?

我维护一个使用 DBGrid 的 VB6 应用程序。我想以 18.0 变为 18,但 18.33 变为 18.3 的方式格式化列,我该怎么做?参考会更有帮助!

0 投票
2 回答
4389 浏览

delphi - Dbgrid calculation

I have a DBGrid and I´m trying to do a billing sheet but sometimes it doesn't do the calculations. How can I avoid that??

0 投票
1 回答
9651 浏览

delphi - 如何使用书签和 DisableControls

有没有可能做

假设获得 TDBGrig 的总数。