起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 253|回复: 11

【结帖】数据自动填充问题**

[复制链接]
发表于 2007-12-6 11:01:33 | 显示全部楼层 |阅读模式
procedure TGCYFKCT.DSBYFGCWCQKCalcFields(DataSet: TDataSet);
var
lQuery : TQuery;
begin
  lQuery := TQuery.Create(Nil);
  try
    lStr1 := DSBYFGCWCQK.DataSet.FieldByName('HTH').AsString;
    lStr2 := DSBYFGCWCQK.DataSet.FieldByName('DEBH').AsString;
    lQuery.ConnectionString := 'DATABASEURL=Biz:SXLFRDGCSXLFRDGC.Database';
    lQuery.CommandText := ' select Sum(SL2) as ZKGZBQLJWC from YFGCWCQKBB where HTH = '''+lStr1+''' and DEBH = '''+lStr2+''' ';
    lQuery.Open;
    DSBYFGCWCQK.DataSet.FieldByName('ZKGZBQLJWCGCL').AsInteger:= lQuery.FieldByName('ZKGZBQLJWC').AsInteger;
  finally
    lQuery.Free;
  end;
end;
看看有什么问题吗? 怎么不能实现自动将 10和10 加起来添到自开工至本期累计完成工程量

未命名.jpg

187.35 KB, 下载次数: 152

回复

使用道具 举报

 楼主| 发表于 2007-12-6 11:02:45 | 显示全部楼层
急,帮忙看看啊,顶下
回复 支持 反对

使用道具 举报

发表于 2007-12-6 11:20:22 | 显示全部楼层
用计算字段的oncalcfield事件,不要用dataset的
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-12-6 15:15:16 | 显示全部楼层
那样的话,该怎么写代码啊用来返回所得到的值
回复 支持 反对

使用道具 举报

发表于 2007-12-6 15:33:57 | 显示全部楼层
把你计算的结果对参数value赋值即可。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-12-6 15:55:09 | 显示全部楼层
哦,那该怎么设过滤条件啊? 我没设过滤条件,运行出现了这样的错误
select sum(SL2)  AS ZKGZLJWCGCL from YFGCWCQKBB where HTH = ' ' and DEBH = ' '  IS not a valid BCD value , 该怎么弄啊 ,求救
回复 支持 反对

使用道具 举报

发表于 2007-12-6 16:39:19 | 显示全部楼层
那你检查一下你的计算字段的类型与你要给他付的值的类型是否一致呢?过滤条件怎么设置,这个要根据你的需求来定了,
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-12-6 16:46:29 | 显示全部楼层
现在过滤这些都没有问题了,但是,这个字段的值应该是计算出来了,因为别的和这个字段关联的字段值显示出来了并且是对的,但是这个字段的值为什么不在表上显示呢?代码如下:
procedure TYFFKXX.FIELD_YFKCSJJ_ZKGYLLJWCGCLCalcField(Field: TBizField; var Value: Variant);
var
lQuery : TQuery;
begin
  lQuery := TQuery.Create(Nil);
  try
     lStr1 := Field.DataSet.FieldByName('HTH').AsString;
     lStr2 := Field.DataSet.FieldByName('DEBH').AsString;
    lQuery.ConnectionString := 'DATABASEURL=Biz:\SXLFRDGC\SXLFRDGC.Database';
    lQuery.CommandText := ' select Sum(SL2) as ZKGYLLJWCGCL from YFGCWCQKBB where HTH = '''+lStr1+''' and  DEBH = '''+lStr2+''' ';
     lQuery.Open;
    Value :=  lQuery.FieldByName('ZKGYLLJWCGCL').AsInteger;

  finally
    lQuery.Free;
  end;
end;
回复 支持 反对

使用道具 举报

发表于 2007-12-6 17:19:46 | 显示全部楼层
代码跟踪Value有值了么?表格文档上如果用的是这个计算字段就应该显示出来了.
回复 支持 反对

使用道具 举报

发表于 2007-12-6 17:20:42 | 显示全部楼层
x3为了完成计算字段等特性,把数据集的这个事件可能给屏蔽了。
推荐楼主用计算字段了。
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-4 20:11 , Processed in 0.045662 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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