问题标签 [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.
delphi - Delphi - 恢复 DBGrid 中的实际行
D6 教授
以前我们使用 DBISAM 和 DBISAMTable。它处理 RecNo,并且可以很好地进行修改(删除、编辑等)。
现在我们用不处理 RecNo 的 ElevateDB 替换,而且很多时候我们使用查询,而不是表。
查询必须重新打开才能看到修改。
但是如果我们重新打开查询,我们需要重新定位到最后一条记录。仅定位是不够的,因为 Grid 将其显示在另一行中。这是非常令人不安的事情,因为修改记录移动到另一行之后,你很难跟踪它,用户讨厌这个。
我们找到了这段代码:
原始示例是使用 moveby。这对查询很好,因为我们看不到查询在后台重新打开,视觉控件没有改变行位置。
但是当我们有 EDBTable 或 Live/Sensitive Query 时,使用 MoveBy 很危险,因为如果有人删除或追加新行,我们可能会重新定位到错误的记录中。
然后我尝试使用书签(见备注)。但是这种技术不起作用,因为它是在另一个 Row 位置显示记录......
所以问题是:如何在 DBGrid 中强制行位置和记录?
或者在底层 DataSet 刷新后,什么样的 DBGrid 可以重新定位到记录/行?
我搜索用户友好的解决方案,我理解它们,因为我尝试使用这种跨 DBGrid 的跳转,并且使用起来非常糟糕,因为更新后尝试查找原始记录时我的眼睛都出来了...... :-(
感谢您的每一个帮助,链接,信息:dd
delphi - Delphi - 选择在另一行时更新 dbGrid 中的字段
我有一个带有 X 行的 dbGrid。我想用计时器更新第二行中的字段值(例如,显示倒计时)。没问题,但我希望能够更改选定的行并继续更新第二行。当网格中的选择发生变化时,连接数据集的当前记录也会发生变化,这是一个问题,因为计时器中的代码指向所选记录。
怎么可能解决?谢谢!
database - 如何在 OnMouseMove 事件期间确定 DbGrid 单元格的值
我有 OnMouseMove 事件,在此期间我想找到某个单元格的值(不一定是鼠标下的那个)。基本上问题是:如何使用其 x 和 y 坐标访问单元格数据而不选择它、更改焦点等?
delphi - Delphi DBGrid 格式显示值
我需要将 a 中的值格式化为DBGrid
以某种格式 ex 显示'#,##0.00'
。知道怎么做吗?
问候,彼得
delphi - Delphi - 使用 DBGrid 从搜索中选择行
我已经使用查询搜索了数据库。
搜索结果显示在 DBGrid 组件中,供用户选择他/她希望继续处理的行。
DBGrid 始终将记录指针设置为结果集中的第一条记录,因此默认情况下始终“选中”一行。我需要将此行为更改为在首次显示数据时不选择任何行,以便我可以确定用户是否实际进行了选择。
是否可以判断是否没有进行选择,即用户没有选择任何行?
非常欢迎任何帮助!
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 多种资源和演示应用程序,都避免了这个问题。这可以做到吗?
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 连接器上的东西???
vb6 - DBGrid 的哪个 NumberFormat 字符串?
我维护一个使用 DBGrid 的 VB6 应用程序。我想以 18.0 变为 18,但 18.33 变为 18.3 的方式格式化列,我该怎么做?参考会更有帮助!
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??
delphi - 如何使用书签和 DisableControls
有没有可能做
假设获得 TDBGrig 的总数。