fastreport出现前一次的数据(200分)

  • 主题发起人 主题发起人 TourWind
  • 开始时间 开始时间
T

TourWind

Unregistered / Unconfirmed
GUEST, unregistred user!
fastreport在设计期和运行期连的数据有问题
我的报表是通过直接传数据集过来的,用TFrdbDataSet控件指定该数据集,设计报表时,总是出现上一次所连的数据集对应的表,在运行期,第一次预览数据正确,第二次不正确(主数据有可能是前一次的数据).
是不是因为FastReport是演示版本或者是别的技术原因.
 
先確認你的原始數據集是正確的
 
用TFrdbDataSet得到的数据是正确的,传过来的数据是绝对正确地
 
把代码贴出来看看
 
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
DB, DBTables, FR_DSet, FR_DBSet, FR_Class, StdCtrls, ADODB;
type
TForm1 = class(TForm)
frReport1: TfrReport;
frDBDataSet1: TfrDBDataSet;
DataSource1: TDataSource;
Button1: TButton;
ADOConnection1: TADOConnection;
ADODataSet1: TADODataSet;
ADODataSet2: TADODataSet;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
begin
if ADODataSet1.Active then
ADODataSet1.Close;
ADODataSet1.CommandText:='select * from employee where fname=''helen'' ';
ADODataSet1.Open;
DataSource1.dataset:=ADODataSet1;
frReport1.LoadFromFile('mytest.frf');
frReport1.PrepareReport;
frReport1.ShowReport;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
if ADODataSet2.Active then
ADODataSet2.Close;
ADODataSet2.CommandText:='select * from employee where fname=''pedro'' ';
ADODataSet2.Open;
DataSource1.dataset:=ADODataSet2;
frReport1.LoadFromFile('mytest.frf');
frReport1.PrepareReport;
frReport1.ShowReport;
end;

end.
 
frReport1.PrepareReport;
[red]frReport1.ShowReport;[/red]改为frReport1.ShowPREPAREDReport
不注册可打印一页,不影响使用。
 
你或者试一下,不把报表存在'mytest.frf'文件中. . 不用外部文件来存放. 做完表后直接退出,不存盘. 然后直接运行. 去除: frReport1.LoadFromFile('mytest.frf');
这句.
试一下.
 
FrdbDataSet你仔细查查它的属性设置看对不对.
它的datasource或dataset正确吗?
opendatasource和closedatasource你是怎么设置的?
 
问题的关键不在次
 
后退
顶部