【问题标题】:How to create button to addition every lines in DBGrid Delphi 7如何在 DBGrid Delphi 7 中创建添加每一行的按钮
【发布时间】:2016-03-03 18:23:46
【问题描述】:

如何在 delphi 7 上制作按钮以执行与 dbgrid delphi 中的所有数据的添加。 例如 我在 dbgrid 中显示了 3 个列的数据库表,

[CODE_NUMBER][ITEMS NAME][STOCK][NEW_STOCK]
 001          Rackets       1         5
 002          Sports Shoes  2         5
 003          Golf Hat      3         5 
 ... etc

点击后如何创建按钮,然后dbgrid开始添加

[STOCK] = [STOCK]+[NEW_STOCK]

在第一行计数后,移动到第二行做同样的加法 依此类推,直到 dbgrid 中的记录结束并删除 [NEW_STOCK] 列中的数据。 我试过了

if dbgrid1.fieldbyname('Code').value <> 0 then
begin
dbgrid1.fieldbyname('Stock').value := dbgrid1.fieldbyname('Stock').value + dbgrid1.fieldbyname('NEW_STOCK').value;
dbgrid1.next;

但只影响第一行,dbgrid 中的下一行没有任何反应

【问题讨论】:

  • 我不是 100% 清楚您要达到的目标,但我认为您可能需要的是 calculated field。计算字段在数据集中定义,允许您在 Delphi 代码中定义计算。查看帮助中的OnCalcFields
  • 感谢您的关注,大卫,
  • @Hugh Jones,感谢您的关注,我的问题已经解决了,

标签: delphi delphi-7


【解决方案1】:

要更改 dbgrid 中的数据,您应该使用它对应的数据集,即:

with dbgrid1.DataSource.DataSet do begin
  Edit;
  Fields.fieldbyname('Stock').value := Fields.fieldbyname('Stock').value + Fields.fieldbyname('NEW_STOCK').value;
  Post;
  Next;
end;

【讨论】:

    【解决方案2】:

    在数据库中执行此操作更有效

    发送到数据库的更新语句非常简单:

    update yourtable set Stock = Stock + newStockValue where Code <> 0
    

    然后刷新您的查询或表格组件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-07-11
      • 1970-01-01
      • 1970-01-01
      • 2021-01-27
      • 1970-01-01
      • 2012-05-04
      • 2021-01-16
      • 1970-01-01
      相关资源
      最近更新 更多