起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 359|回复: 12

【搞定】主表填充从表的汇总值的问题**

[复制链接]
发表于 2007-12-18 11:57:24 | 显示全部楼层 |阅读模式
主表填充从表的汇总值的问题.
我想在主表里填充从表的汇总值,比如将从表中所有商品的金额的总计填充到主表的总金额里面,我该怎么设置?
我设置过在主表的总金额上用自动填充的查找值填充,但是填充不上.

110.gif

64.45 KB, 下载次数: 230

回复

使用道具 举报

发表于 2007-12-18 13:41:38 | 显示全部楼层
只靠设置不成的,必须写代码。在从数据集Post之后,修改主数据集的相应字段的值。
回复 支持 反对

使用道具 举报

发表于 2007-12-18 13:45:52 | 显示全部楼层
这个不能用自动填充来实现,没有合适的填充时机。
如果要填写的这个是主表的一个物理字段,并且表现的文档如果是grid那么就只能写代码来填充了,如果是网格,那么可以先在从上添加一个统计字段来实现。
http://bbs.justep.com/forum.php?mod=viewthread&tid=1946
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-12-18 14:18:10 | 显示全部楼层

请问在从数据集提交后还是在主数据集提交前呢?

请问在从数据集提交后还是在主数据集提交前呢?
主从数据集保存的顺序是怎么样的?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-12-18 14:42:14 | 显示全部楼层

我写了如下代码但是出错.麻烦您看一下

我写了如下代码但是出错.麻烦您看一下:
procedure TwinInputEContract.DataSetBroker2AfterPost(DataSet: TDataSet);
var
sqt:business.data.TQuery;
begin
  sqt:=business.data.TQuery.Create(nil);
  try
  with sqt do
  begin
    sqt.ConnectionString:='Biz:GSTJSTATDATABASE.DATABASE';
    sqt.close;
    sqt.commandtext:='select sum(HTMXB.YBJE) as a,sum(HTMXB.USD) as b,sum(HTMXB.ZRMB) as c ,HTMXB.ContractID from HTMXB where HTMXB.ContractID = ' + DataSetBroker1.DataSet.FieldByName('ContractID').asstring + 'group by HTMXB.ContractID';
    sqt.open;
    dataSetBroker1.DataSet.FieldByName('YBJE').AsString:=sqt.FieldByName('a').AsString;
    DataSetBroker1.DataSet.FieldByName('USD').AsString:=sqt.FieldByName('b').AsString;
    DataSetBroker1.DataSet.FieldByName('ZRMB').AsString:=sqt.FieldByName('c').AsString;
  end;
  finally
    sqt.free;
  end;
     end;

1.gif

66.98 KB, 下载次数: 213

回复 支持 反对

使用道具 举报

发表于 2007-12-18 14:47:37 | 显示全部楼层
在从数据集AfterPost之后就可以
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-12-19 11:51:48 | 显示全部楼层

在AfterPost之后也不行啊?

在AfterPost之后也不行啊?  因为我在AfterPost之后写的代码,但是没有任何数据填充,为了找到原因,我用DATAGRID在AfterPost把数据显示出来发现没有刚才新增加的记录.当点击导航条的刷新按钮后那条新增加的按钮才显示在datagrid中。
请问我该怎么代码?
先问一下怎么能在AFTERPOST后代码实现导航条中的刷新呢?
回复 支持 反对

使用道具 举报

发表于 2007-12-19 13:13:17 | 显示全部楼层
5楼的错误是因为你的
ConnectionString格式有误,参考下面的修改
lQuery.ConnectionString :='DATABASEURL=Biz:\HGOPERATION\HGOPERATIONDB.DATABASE';
回复 支持 反对

使用道具 举报

发表于 2007-12-19 13:13:58 | 显示全部楼层
楼主,你用的是Query,取的是后台的数据,那么需要将从数据保存后,才能获取到。
请问,你是想在何时把从表中所有商品的金额的总计填到主表上呢?
是从数据集其中一个商品金额修改时填充?还是从记录滚动时?还是提交后台数据库后呢?还是其他?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-12-19 13:38:26 | 显示全部楼层

我要填充的时间是在

我要填充的总金额的时间是在每次对从数据集进行操作之后,在主数据集中记录下本次交易的总和(也就是对应从数据集中每笔金额之和).操作包括.录入,修改等.
我不仅用过TQUERY 还试过用过数据集但是都好象不行,因为找不见最新的记录,历史记录是可以填充金额总和的.但是最新的记录填充不上,应该是里面时间先后的问题,所以请教一下怎么写代码好.
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-3 10:18 , Processed in 0.046093 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表