问个FastReport的数据源问题?(50分)

  • 主题发起人 主题发起人 Jaspers
  • 开始时间 开始时间
J

Jaspers

Unregistered / Unconfirmed
GUEST, unregistred user!
我初次制作报表,问各位一个问题:
报表文件做好之后,是不是不能改数据源?
例如一个my.frf的数据源是myADOQuery, 我想在让用户选某个时间段的记录:
让用户选择两个DateTimePicker的值,然后传给myADOQuery,但是打印预览时会有问题。
是不是my.frf做好了它的数据源就不能改了
如何解决呢?或者说它的demo有没有这样的例子?
 
设计期连上myADOQuery,myADOQuery里加入报表里需要的字段,根据用户输入的参数用myADOQuery查询出来,再浏览或打印完全没问题
 
我认为是没有的,你在打印预览时出现了什么问题呢??
 
在frReport1旁边放一个frDBDataSet
frDBDataset.DataSet := myAdoQuery
frReport.Dataset := frDBDataSet
 
在下也是这样想啊!!!!
我把myAdoQuery连在一个DBGRID上,这样可以确保我真的改了myADOQuery。
但是当我打印预览时,它就一直在Process Pages: XXXXX(很大的数目,例如几K),
我按取消,程序出现EInvalidOp异常:Invalid Floating Point Operation.
代码停留在fr_class.pas的这个过程。
procedure TfrEMFPages.Draw(Index: Integer;
Canvas: TCanvas;
DrawRect: TRect);
箭头指向这行: sx := (DrawRect.Right - DrawRect.Left) / PrnInfo.PgW;
环境:D7, Fr2.51
 
大侠们帮忙啊!!
Self.frReport1.LoadFromFile('1.frf');
ShowMessage(SElf.frReport1.FileName);
ShowMessage(Self.frReport1.Pages[0].Name)
if Self.frReport1.PrepareReport then
SElf.frReport1.ShowReport;
我发现Self.frReport1.Pages[0].Name居然是空的。
而且程序总是停留在Self.frReport1.PrepareReport中,不把报表显示出来。
请问Self.frReport1.PrepareReport执行不能成功如何解决啊???
大侠教我啊!!!!!!!!
 
首先你在dbgrid中查询出来出错没有?freport先不显示,如果dbgrid查询无问题,那么freport就不会出问题。
 
你要查的数据有多大呀??怎么会不能成功呢??你的报表里主项数据的BAND也要设置数据源的,你设了没有??
 
dbgrid已经显示出来了。但report就是死活不肯出来!!
数据量?几乎没有,就几条。我的数据源都设好了。
我真的想看看demo里面有没有这样的例子, 可是我看不出。
 
你把你的DEMO发到APP18@163.COM来,我看看
 
app2001:
多谢啦!
我的demo就是fastreport的demo, 装了fastreport就有了。
 
答案是肯定的,
只要你在设置TfrMemoView之类的 Memo属性时必用 TXXXQuery或TXXXTable 之类的数据源就可以自动适应啦,即只用 FieldName,注意用 TfrDataSet就是啦,
呵呵~~~~~~~~~~~~~~~~~~~~~~~~~
 
出现“一直在Process Pages: XXXXX(很大的数目,例如几K),
我按取消,程序出现EInvalidOp异常:Invalid Floating Point Operation.
代码停留在fr_class.pas的这个过程。”问题是因为你的报表上的 memo 位置问题,调整调整确保全在band内。
 
那就更不可能有问题了,你是不是做了一些修改??最好再找一个没有修改过的两个比较一下
 
后退
顶部