谁来帮帮我?我走投无路了?(0分)

  • 主题发起人 主题发起人 hhhhhhhh
  • 开始时间 开始时间
H

hhhhhhhh

Unregistered / Unconfirmed
GUEST, unregistred user!
我在用QUICK REPORT 制作报表后在编译期没任何错误,在运行时第一次运行
预览打印在任何一个FORM中都没有任何问题,但只要退出该FORM,在其它的FORM
中使用过另外的报表打印后,再进入该FORM,查询后dbgrid中显示的内容没有任何问题,
可就是预览打印只打出空框,字段值不知跑到哪去了?没有任何提示出错信息。
 
注意你的数据库连接和初始化(数据库在多个表单运用中千万要注意)
还有
<p><font color="#FF0000" size="1">你太抠门了,一分都不给,</font></p>
<p><font color="#FF0000" size="1">还走投无路………………</font></p>
<p><font size="5" color="#FF0000">小气鬼,喝凉水…………</font></p>

 
对不起!HQIANG,我想改一下积分,可就是没法改。
下次有机会我会给你加双倍分的。
请你不要再骂我了!

还有,数据库的连接和初始化是在前面已经做好了,应该没什么问题,因为查询的结果
是正确的,有记录存在并在DBGIRD中显示。我在QREPOT的UNIT中是这样定义显示字段的:

......
QRDBtext1.DataField:=Form_dacheck.DBGrid1.Columns[0].FieldName;
......
可就是会出现上面的问题,我真的不知道该怎么办了?





 
>>QRDBtext1.DataField:=Form_dacheck.DBGrid1.Columns[0].FieldName;

将QRDBtext1.datafield指象一个dataset可能好一些 /
 
>>烂泥
我已将其指向dataset了,跟dbgrid的DATASOURCE的dataset是同样设置,
但无论如何都没有用,只要一退出FORM2,第二次再调用的时候就显示是空字段。
大概结构是这样的:
FORM1是主表单,form2是查询表单,form3是报表表单。首次调用form3绝对没问题,
退出form2后,再次进入时,form2的表单的查询没问题,form3的打印预览是空的。
 
并且,若检测异常,则会出现抽象错误,在应用部分进行单元相互引用的。语句如下:
with Tfrom_rep1(self) do
try
rep1_form.rep1.preview;
finally
free;
end;
我哪儿用错了?为什么在另外一个报表中使用是很正常的呢?
 
其实我的意思是你有没有在其他表单进行过数据遍历过没有
一般像你这情况,原因都是数据库的纪录指针在尾部所至,即eof()=false;
你可一在打印命令前加上 数据库名.first(就是对纪录指针进行归位,指向首部) 进行尝试.
不行的话,可以把源程序发到我的信箱里,我们切磋一下!

哼哼,下回记得给分哦!:)
 
你在关闭哪个FROM时要先把它释放了,
不然,……
我早时就是因这见到这种错误的。
 
>>hqiang
我是用query查询的结果做为打印资料的,因为查询、打印的报表太多,
所以才想出这个办法只用一个报表实现一组打印的,
我并没有在其他表单中进行过数据遍历,其实只要退出查询FORM2,然后什么都不做
再进入FORM2时,查询正常,就打印是空的,打印表单调用应该没问题,因为放在
标题中的QRDBLabel的内容正确!就是没字段内容!
问题会出在哪儿?为什么不能使用异常检测呢?一检测内存就出错!






 
QUERY是一样的啊!
还有,你的QUERY是几个窗体公用的吗?
是的话,记得将QUERY重新更新执行。
还不行的话,尝试以下:
1。用SHOWMODALL显示桌面
2。或用程云的说的方法,将FORM2设置为手工打开,那样显示FORM2会重置变量环境,或许可以解决

呵呵,没看到你的程序,不太好说!:)
 
>>hqiang
是的,我query是两个form公用的。
可我在另外一个form中使用同样的方法时是可以的,就有一个不行,我刚学delphi,
却在改一个别人写的程序,真有点弄不清楚!另外,我是用showmodal显示桌面的。
我的form2是用手工打开的呀,form2应该不会出问题。
刚才我又看了一下,发现在项目文件的begin 和 end 之间多出了一行
Application.CreateForm(TRep1_xk, Rep1_xk);
是不是它在捣乱呢?怎样才能建立新表单而不在bpr文件的实现部分出现这种叫
什么什么的情况呢?





 
选择project中的option中的form页
将自己手工建立的窗口移入availble form中
显示桌面用:form2:=tform2.create(self);
form2.showmodall;
记得在form2close中加入form2.free;
不过我觉的还是你调用query中出的问题。
 
真是谢谢各位的帮助了,问题解决了,真的是因为在项目文件中的错误,在项目文件中
同时运行了好几个例程,而且相互之间还有调用,当然会出错了!
我刚学DELPHI,请大家多多教我,我有什么体验的,也会拿出来跟大家分享!
hqiang:下次一定给你双倍!同时也多谢谢大家了!~
 

Similar threads

回复
0
查看
1K
不得闲
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
867
DelphiTeacher的专栏
D
后退
顶部