是这样的,有三个视图,分按条件查询生成后呈现在报表中...在From上放了三个查询,分别是Adoquery1,Adoquery2,Adoquery3
然后再放了三个报表数据集,分别是frxDBDataset1,frxDBDataset2,frxDBDataset3
三个查询分别对应自己的数据集,如Adoquery1对应frxDBDataset1....然后又放了一个DataSource1,其Dataset设置为Adoquery1在报表上放了三个MasterData,分别对应三个数据集,如MasterData1对应frxDBDataset1....我只想要三个视图按FORM里的查询条件显示在报表中的三个数据区,
可为什么我的报表感觉第二个,三个数据集显示不正常,如果有几个报表还会报错?//采购金额
if (pub.RID = 11) then
begin
with ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.Add('select * from PurCost1View where 1<>2 ');
if Trim(ReportNo.Text) <> '' then
SQL.Add(' and ReportNo=''' + Trim(ReportNo.Text) + ''' ');
Open;
if RecordCount > 0 then
begin
{更新FR的数据源}
frxDBDataset1.FieldAliases.Clear;
frxDBDataset1.FieldAliases.BeginUpdate;
end;
end;
with ADOQuery2 do
begin
Close;
SQL.Clear;
SQL.Add('select * from PurCost2View where 1<>2 ');
if Trim(ReportNo.Text) <> '' then
SQL.Add(' and ReportNo=''' + Trim(ReportNo.Text) + ''' ');
Open;
if RecordCount > 0 then
begin
{更新FR的数据源}
frxDBDataset2.FieldAliases.Clear;
frxDBDataset2.FieldAliases.BeginUpdate;
end;
end;
with ADOQuery2 do
begin
Close;
SQL.Clear;
SQL.Add('select * from PurCost3View where 1<>2 ');
if Trim(ReportNo.Text) <> '' then
SQL.Add(' and ReportNo=''' + Trim(ReportNo.Text) + ''' ');
Open;
if RecordCount > 0 then
begin
{更新FR的数据源}
frxDBDataset3.FieldAliases.Clear;
frxDBDataset3.FieldAliases.BeginUpdate;
end;
end; end; if (pub.RID = 10) then
fileStr :=ExePath+'Report\PurQty.fr3'
else
fileStr :=ExePath+'Report\PurCost.fr3'; if FileExists(fileStr) then
begin
try
frxReport1.LoadFromFile(fileStr);
frxReport1.Report.PrepareReport;
frxReport1.Report.ShowPreparedReport;
except end;
end;
然后再放了三个报表数据集,分别是frxDBDataset1,frxDBDataset2,frxDBDataset3
三个查询分别对应自己的数据集,如Adoquery1对应frxDBDataset1....然后又放了一个DataSource1,其Dataset设置为Adoquery1在报表上放了三个MasterData,分别对应三个数据集,如MasterData1对应frxDBDataset1....我只想要三个视图按FORM里的查询条件显示在报表中的三个数据区,
可为什么我的报表感觉第二个,三个数据集显示不正常,如果有几个报表还会报错?//采购金额
if (pub.RID = 11) then
begin
with ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.Add('select * from PurCost1View where 1<>2 ');
if Trim(ReportNo.Text) <> '' then
SQL.Add(' and ReportNo=''' + Trim(ReportNo.Text) + ''' ');
Open;
if RecordCount > 0 then
begin
{更新FR的数据源}
frxDBDataset1.FieldAliases.Clear;
frxDBDataset1.FieldAliases.BeginUpdate;
end;
end;
with ADOQuery2 do
begin
Close;
SQL.Clear;
SQL.Add('select * from PurCost2View where 1<>2 ');
if Trim(ReportNo.Text) <> '' then
SQL.Add(' and ReportNo=''' + Trim(ReportNo.Text) + ''' ');
Open;
if RecordCount > 0 then
begin
{更新FR的数据源}
frxDBDataset2.FieldAliases.Clear;
frxDBDataset2.FieldAliases.BeginUpdate;
end;
end;
with ADOQuery2 do
begin
Close;
SQL.Clear;
SQL.Add('select * from PurCost3View where 1<>2 ');
if Trim(ReportNo.Text) <> '' then
SQL.Add(' and ReportNo=''' + Trim(ReportNo.Text) + ''' ');
Open;
if RecordCount > 0 then
begin
{更新FR的数据源}
frxDBDataset3.FieldAliases.Clear;
frxDBDataset3.FieldAliases.BeginUpdate;
end;
end; end; if (pub.RID = 10) then
fileStr :=ExePath+'Report\PurQty.fr3'
else
fileStr :=ExePath+'Report\PurCost.fr3'; if FileExists(fileStr) then
begin
try
frxReport1.LoadFromFile(fileStr);
frxReport1.Report.PrepareReport;
frxReport1.Report.ShowPreparedReport;
except end;
end;
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货