130分求报表显示!(100分)

  • 主题发起人 主题发起人 wangljs
  • 开始时间 开始时间
W

wangljs

Unregistered / Unconfirmed
GUEST, unregistred user!
这个问题我问过,没有好的答案!这次在加100分求答案!
问题是:
我的报表为什么没有数据!必须运行两次才行!
with table5do
//就是LS5
with query2do
begin
close;
sql.clear;
sql.text :='delete from ls5';//先删除这个库,已防库里有东西
query2.ExecSQL;
end;
table5.append;
//在向库里写数据
table5.fieldvalues['rq']:=datetostr(datetimepicker2.date);
table5.Post;
end;
end;
form5.QuickRep1.Preview;
/////////////////////////////////////////////////////////////
下面是网友给我回复:
1、table是有缓存的,所以你有两个解决办法,一:先将QuickRep1的数据源断开,重新联结。二:不使用缓存!方法1是可以在你点按钮的时候就实现的
2、应当是缓存的问题。在打开报表前,数据还没有保存到数据库中。可以增加两行代码:
Table5.ApplyUpdates;Table5.CommitUpdates;

可是我试了,添加了Table5.ApplyUpdates;Table5.CommitUpdates;
程序报错!not in cached update mode
另一种也试了,我的报表没有数据源,是又添加了N个TABLE,从TABLE中读取数据的!我试了table5.Close;
table5.Open;
可是还不行
关于断开数据源或清除内存大家在给些提示吧!
 
真没看懂你的意思
 
with table5do
begin
Active := False;
//这是我加的
with query2do
begin
close;
sql.clear;
sql.text :='delete from ls5';//先删除这个库,已防库里有东西
query2.ExecSQL;
end;
Active := True;
//这是我加的
append;
//在向库里写数据
fieldvalues['rq']:=datetostr(datetimepicker2.date);
Post;
end;
end;
form5.QuickRep1.Preview;
在query2.ExecSQL 前, 保持Table5.Active -> False;
 
可能是我说的有点多。主要意思是:
一:数据源的断开,重新联结是怎样实现的。
二:不使用缓存!Table5.ApplyUpdates;Table5.CommitUpdates;这句话我一运行就报错。应该怎么办?
 
谁知道你具体是怎样做的呢???
你把有关的东东,做一个工程.加我的QQ:16970995
发过来看看.
 
请看着:
1、数据源断开是什么实现的
2、缓存清除是怎么用的
 
你关掉它,就断开了.
 
谁告诉我啊
 
我现在有添加了一个按纽!一个是计算数据,并保存到临时表里。另一个是报表按纽,显示报表的!但是,我现在按完计算后的关掉程序,再次打开才能显示报表???怎样刷新啊
 
不好意思。我自己把分取走。另开新帖讨论这个问题
 
接受答案了.
 
后退
顶部