问题标签 [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 投票
1 回答
1002 浏览

database - ADOQuery 和 DBNavigator

好的。我有简单的数据库、DBGrid 和 DBNavigator。我将此代码用于我的 adoquery 并在我的 DBGrid 中查看

select Count(*)As 1 , 2 3 from Table1 Group by 1, 2

问题是,如果我有两个或更多来自 1 的相同文章,并且我尝试从 DBnavigator 中删除它,它会发送给我

键列信息不足或不正确。更新影响的行数过多。我想删除两行或更多行。不仅仅是一个。如何解决?

0 投票
6 回答
6986 浏览

delphi - 在显示之前修改 DBGrid 单元格内容

我想在加载数据库时修改 dbgrid 控件中特定单元格的内容。例如,假设我不希望任何数据库字段在 dbgrid 中显示,如果它等于"forbidden"。有什么办法可以做到吗?

0 投票
2 回答
1797 浏览

delphi - 使用 Delphi OnDrawColumnCell 如何在应用条件格式之前确保记录值存在

我正在使用带有通过 ADO 绑定到 Access mdb 数据库中的表的 dbgrid 的 Delphi 2010。

此表是根据单选框中的点击进行过滤的。

以下代码根据表中的数据对行进行颜色编码,但失败并显示错误对话框

如果过滤器返回一个空数据集。我以为如果没有返回记录但它似乎不起作用,我已经允许不调用颜色设置;见下面的代码

任何和所有的帮助都非常感激。注意我也尝试过条件,例如

但这似乎也不起作用。

0 投票
3 回答
2205 浏览

delphi - 选择 dbgrid 中的一行时如何填充组合框?

在 Delphi 2007 中,我有一个 DBGrid。I need to fill a ComboBox when a row in the DBGrid is selected. ComboBox 中的数据取决于所选行,并且对于每个所选行可能不同。

DBGrid 包含产品订单。选择订单后,我需要一个 ComboBox 来填写订单中产品的批号。此批号在订单执行时保存在订单记录中。

我找不到可以用来执行此操作的 onSelect 或 onChange 事件。

那么我该怎么做呢?

0 投票
2 回答
1809 浏览

delphi - 如何禁用 DBGrid 中的 CheckBox 列

如何禁用或只读 DBGrid 中的复选框列。我正在使用 wwDbGrid 和 EditControl 选项。

0 投票
1 回答
1598 浏览

delphi - Delphi DBGrid 中可编辑的详细记录

我有一个数据库(保存在 Access .MDB 文件中),记录员工以及他们缺勤的情况,例如假期、疾病、培训课程、开始和结束日期以及失去的生产时间。

然后,我将一个 dbgrid 绑定到一个“主”ADO 查询,该查询查找所有满足日期范围、部门、名称搜索字符串的选定标准的所有员工,总结了生产时间损失的小时数。

我有另一个 dbgrid 绑定到包含缺勤记录的“详细”ADO 表。

所需的效果是详细 dbgrid 应该只包含缺勤表中与主记录中选择的行匹配的那些记录(“主”员工和“详细”缺勤表都包含一个公共 EmployeeID 字段)。

虽然我可以使用动态创建的 ADO 查询来实现这一点,每次用户移动到不同的主员工记录时都会更改查询,但我希望使用详细 DBGrid 作为删除、更新和添加其他缺勤记录的主要方法,完成网格内查找;因此用户可以选择记录类型,而无需记住该类型的代码。

我还希望此详细网格中的更改能够反映在主 dbgrid 的摘要中。

我已经使用作为 MasterDetail 链接到 Staff Query 的详细信息 ADOTable 实现了这一点,但需要将过滤设置为 True,并在代码中控制 onfilterevent;但是随着数据库大小的增加,这变得越来越慢。

我可以做些什么来提高这种性能,还是我会被迫将详细 dbgrid 设置为纯只读的,并且所有缺席记录都通过另一个表单或面板输入?

0 投票
2 回答
926 浏览

delphi - 以另一种形式在主窗体中使用有关 DBGrid 的命令

我正在制作一个用于汽车零件店的简单程序。这是它的外观:链接

问题是左边的小窗口。在主窗口中双击 DBGrid 中的任何行时,应将其打开,并且应在 DBEdit 字段中显示所有选定项目的特征。如果单击“保存”按钮,则应将 DBEdit 字段中的更改保存到数据库中,否则应忽略更改。

通过使用以下代码双击 DBGrid 中的字段,我成功打开了另一个表单:

现在唯一的问题是如何让程序检测 DBGrid 中的哪一行被选中,然后在较小窗口的 DBEdit 字段中显示其内容。

谁能告诉我如何做到这一点,好吗?

谢谢!

0 投票
2 回答
7397 浏览

delphi - 如何使用 TDBGrid 中的复选框来选择多条记录?

如何在标准 TDBGrid 中使用复选框来选择多条记录?或者,您对 DBGrid 的免费/开源姐妹有什么建议吗?它允许任何人轻松做到这一点?

谢谢你。

0 投票
1 回答
824 浏览

delphi - Delphi 2007 无法使用源代码修改 beforescroll 事件中的数据,错误:数据集未处于编辑或插入模式

一点历史:我有一个包含文本描述的 DBlistbox,我只将它的代码存储在一个 mysql 表中,该表显示在一个 dbgrid 中。用户可以选择多个选项,我喜欢处理这些选项并将其作为逗号分隔值存储在其中一列中(该列在 dbgrid 中不可见)。

现在,当用户使用事件 Afterscroll 和 Formcreate 在 dbgrid 中滚动时,我可以填充列表框。但是,当我尝试处理列表并更新 dbrgid 后面的 myquery 时,我收到一条错误消息“数据集不在编辑或插入模式下” - 我在 beforescroll 中执行此操作

请帮忙!!我试图在更改之前将数据集设置为编辑模式,然后一旦发布数据,dbgrid 似乎有有趣的字符

0 投票
1 回答
1538 浏览

delphi - 如何从 Delphi DBGrid OnTitleClick 事件中删除黑线?

我有一个 Delphi DBGrid,它在第一次加载时看起来很正常。我设置了一个OnTitleClick事件,该事件在单击标题时按列对 DBGrid 进行排序。一旦单击标题,列标题就像一个按钮被按下并出现一条难看的黑线。(见下图2)

一旦单击事件完成,网格又看起来正常了。

单击列标题时如何防止出现这条黑线?

在此处输入图像描述

编辑:QC提交给Embarcadero

虽然关闭调整列大小的功能确实会使黑线行为消失,但它确实带走了一个非常好的功能。我认为这种行为需要修复。我已向 Embarcadero 提交了以下QC 98255。请为这个条目投票。

更新:2017-07-30

我找到了绘制这条水平黑线的位置。
Vcl.Grids >过程TCustomGrid.DrawMove;

Canvas.Pen.Width 设置为 5。我将其更改为 Canvas.Pen.Width := 1;
它看起来好多了。现在,当我单击“Contact_Last”标题单元格时,黑色指示线只有一个像素宽,而且干扰性要小得多。

在此处输入图像描述