起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 137|回复: 6

【结】打印时记录无限制增长**

[复制链接]
发表于 2008-12-23 17:34:03 | 显示全部楼层 |阅读模式
我用datagrid绑定数据集后,在数据集的 AfterScroll方法中写了一段代码,想在datagrid选中的当前记录变化后触发这个方法,但现在除了各问题,就是打印预览最后一条记录无限制增长。
回复

使用道具 举报

发表于 2008-12-23 18:07:44 | 显示全部楼层
1、屏蔽AfterScroll 这端代码就正常了吗?
2、把你的AfterScroll 代码贴出来看看,
3、数据集上是否还有其他的事件代码呢?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-12-24 08:57:15 | 显示全部楼层
屏蔽后这个功能就没法实现了????用哪个方法可以实现 当前记录变化 时触发方法。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-12-24 08:59:02 | 显示全部楼层
strtype:=DataSetBrokerSLDJSJJ.DataSet.FieldByName('BH').AsString;
           strtemp:=DataSetBrokerSLDJSJJ.DataSet.FieldByName('CLJG').AsString;

           DataSetBrokerSLDJSJJ.DataSet.Edit;
           DataSetBrokerSLDJSJJ.DataSet.FieldByName('CLJGTJ').AsString:='';
           DataSetBrokerSLDJSJJ.DataSet.Post;

           DataSetBroker1.DataSet.Close;
           with TSQLDataSet(DataSetBroker1.DataSet) do
           begin
             SQL.Text :='select * from HFJLB where BH='''+strtype+'''';
           end;
           DataSetBroker1.DataSet.Open;


           DataSetBrokerSLDJSJJ.DataSet.Edit;
           i:=1;
           DataSetBrokerSLDJSJJ.DataSet.FieldByName('CLJGTJ').AsString:=sysutils.IntToStr(i)+'、'+strtemp;
           i:=i+1;
           while not DataSetBroker1.DataSet.Eof
           do begin
           DataSetBrokerSLDJSJJ.DataSet.Edit;
           if DataSetBroker1.DataSet.FieldByName('JYMS').AsString<>'' then
           begin
           DataSetBrokerSLDJSJJ.DataSet.FieldByName('CLJGTJ').AsString:=DataSetBrokerSLDJSJJ.DataSet.FieldByName('CLJGTJ').AsString+#10#13+sysutils.IntToStr(i)+'、'+DataSetBroker1.DataSet.FieldByName('JYMS').AsString;
           i:=i+1;
           end;
           DataSetBroker1.DataSet.Next;
           end;

           DataSetBrokerSLDJSJJ.DataSet.Open;
           DataSetBrokerSLDJSJJ.DataSet.Post;
           DataSetBrokerSLDJSJJ.DataSet.ApplyUpdates;


这个数据集就这一个方法
回复 支持 反对

使用道具 举报

发表于 2008-12-24 10:08:52 | 显示全部楼层
我问一下
1、你当前打印的是哪个数据集,是 DataSetBrokerSLDJSJJ 还是 DataSetBroker1
2、“用哪个方法可以实现 当前记录变化 时触发方法”是怎么个变化,是记录滚动吗?还是数据集某个字段值发生变化?是哪个数据呢 DataSetBrokerSLDJSJJ 还是 DataSetBroker1 ?

对你的代码没有读的太懂
DataSetBrokerSLDJSJJ.DataSet.FieldByName('CLJGTJ').AsString 这个值赋值完,在循环里面没有看到post,在循环外面才post的,另外,数据集DataSetBrokerSLDJSJJ本来就open,倒数第三行又post,能否说这端代码在实现啥原始需求?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-12-24 10:14:30 | 显示全部楼层
现在已经解决,开头做个判断就可以,if  not DataSetBrokerSLDJSJJ.DataSet.Eof  then,我打印的是DataSetBrokerSLDJSJJ ,因为要反复给DataSetBrokerSLDJSJJ.DataSet.FieldByName('CLJGTJ').AsString 赋值,所以在循环后保存。

还有最近这一年时间贵公司回帖速度不如以前。
回复 支持 反对

使用道具 举报

发表于 2008-12-24 10:23:47 | 显示全部楼层
好,结贴
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-28 09:52 , Processed in 0.036073 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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