起步软件技术论坛-X3

 找回密码
 立即注册
搜索
楼主: zwjcooldd

【搞定】含有累计数据的报表!**

[复制链接]
 楼主| 发表于 2007-10-10 14:15:10 | 显示全部楼层
我是保存后再根据保存的数据,过滤数据。好了我试试吧!谢谢!
回复 支持 反对

使用道具 举报

发表于 2007-10-10 14:29:03 | 显示全部楼层
不管怎样,一是过滤数据,一个修改字段的值,搞清这两个概念就好做了,别忘记把结果反馈上来
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-10-11 10:36:07 | 显示全部楼层

我的累计老不对

procedure TNHJJJZBXX.filterDataSetYFYDQKLJ(tbdw:string;tjn,tjy:integer);
// var whereStr:string;

  begin

      DataSetYFYDQKLJ.SQLFilter:=' tbdw='''+tbdw+''' and tjn='+SysUtils.IntToStr(tjn)+'  and tjy<='+SysUtils.IntToStr(tjy);
        DataSetYFYDQKLJ.SQLFiltered:=true;
end;

SQL.jpg

77.24 KB, 下载次数: 203

回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-10-11 10:41:15 | 显示全部楼层
我要过滤到月份。 通常你们怎么过滤?我有个日期时间字段
但是要过滤到月份而不是到日。所以如果sql中写语句得用数据库支持的函数 取日期的年和月吧。比如 Year(数据库中日期字段) and  Month(日期字段)<=参数月。所以我在插入数据的时候,建立了整形的年,月两个字段。在代码中sql就写成了

   tbdw:=DataSet.FieldByName('TBBM').asString;
     tjn:=DateUtils.YearOf(DataSet.FieldByName('TJSJ').AsDateTime);
     tjy:=DateUtils.MonthOf(DataSet.FieldByName('TJSJ').AsDateTime);

DataSetYFYDQKLJ.SQLFilter:=' tbdw='''+tbdw+''' and tjn='+SysUtils.IntToStr(tjn)+'  and tjy<='+SysUtils.IntToStr(tjy);  形式
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-10-11 10:41:58 | 显示全部楼层
可是现在累计数据老是不对
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-10-11 10:53:17 | 显示全部楼层

看看BRP

BRP

d.rar

742.42 KB, 下载次数: 91

回复 支持 反对

使用道具 举报

发表于 2007-10-11 11:10:15 | 显示全部楼层
你跟踪过吗?传进去的SQL语句,直接在数据库上执行的结构对吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-10-11 11:16:26 | 显示全部楼层
sql语句是全选,SQLFilter来过滤。 SQLFilter我看过是对的。等等我再看看
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-10-11 11:27:30 | 显示全部楼层
我现在发现累计时机不对。我在AfterPost后累计,当前新记录没有累计进去
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-10-11 11:29:16 | 显示全部楼层
afterPost afterApplyUpdates afterCommit 区别是什么?
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-1 09:02 , Processed in 0.046626 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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