起步软件技术论坛-X3

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

【结】如何用DataChart来显示自定义数据集查询的结果**

[复制链接]
发表于 2008-4-15 14:12:09 | 显示全部楼层
我看到你发到我们邮箱的“业务模型人力资源管理系统\决策中心员工信息统计\新进员工统计功能”这个功能中的代码有问题,
     while DataSetBZSJJ.Eof = false do
     begin
     s := sysutils.FormatDateTime('YYYY',DataSetBZSJJ.FieldByName['RZRQ'].AsDateTime) +'年' + sysutils.FormatDateTime('mm',DataSetBZSJJ.FieldByName['RZRQ'].AsDateTime) +'月';

     if DataSource2.DataSet.Locate('rq',s,[]) = true then
     begin
          DataSource2.DataSet.Edit;
          DataSource2.DataSet.FieldByName['rs'].AsInteger := DataSource2.DataSet.FieldByName['rs'].AsInteger +1;
     end
     else
     begin
          DataSource2.DataSet.Edit;
          //DataSource2.DataSet.Append;
          DataSource2.DataSet.FieldByName['RQ'].AsString := s;
     end;
     DataSetBZSJJ.Next;
     end;

不管是否能找到,都是直接修改,应该找不到append,
我修改后
     while DataSetBZSJJ.Eof = false do
     begin
     s := sysutils.FormatDateTime('YYYY',DataSetBZSJJ.FieldByName['RZRQ'].AsDateTime) +'年' + sysutils.FormatDateTime('mm',DataSetBZSJJ.FieldByName['RZRQ'].AsDateTime) +'月';

     if DataSource2.DataSet.Locate('rq',s,[]) = true then
     begin
          DataSource2.DataSet.Edit;
          DataSource2.DataSet.FieldByName['rs'].AsInteger := DataSource2.DataSet.FieldByName['rs'].AsInteger +1;
     end
     else
     begin
         //DataSource2.DataSet.Edit;
           DataSource2.DataSet.Append;
          DataSource2.DataSet.FieldByName['RQ'].AsString := s;
     end;
     DataSetBZSJJ.Next;
     end;

运行的效果图见附件

1.gif

15.26 KB, 下载次数: 81

回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-4-15 14:29:57 | 显示全部楼层
修改了。
可是当把开始时间选2007-10-15,结束时间选2008-4-15的时候,就会看到DataChart还是只显示两条记录,正确应该是3条。
回复 支持 反对

使用道具 举报

发表于 2008-4-15 14:34:30 | 显示全部楼层
我远程连接上去看看吧,不应该这样的,QQ:630681071,你主动加我,然后呼我,
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-4-15 14:35:11 | 显示全部楼层
补充说明下,每次运行功能窗体第一次总是能正确的显示结果,DataChart和DataGrid都一致。可是继续查询,修改时间范围以后,显示的结果就不一致了。特别是跨年查询,比如2007年末到2008年年初。
回复 支持 反对

使用道具 举报

发表于 2008-4-15 14:36:24 | 显示全部楼层
哦,稍等,我再测试一下。
回复 支持 反对

使用道具 举报

发表于 2008-4-15 14:50:58 | 显示全部楼层
需要清空一下DataChart的数据源,参考代码如下:
   DataChart1.Series[0].DataSource := nil;
    DataChart1.Series[0].DataSource := DataSource2;
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-4-15 14:53:51 | 显示全部楼层
太感谢了,辛苦了,谢谢。
哈哈,结吧。
回复 支持 反对

使用道具 举报

发表于 2008-4-15 14:58:48 | 显示全部楼层
ok,不客气
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-10 04:31 , Processed in 0.039077 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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