是這樣的,有三個視圖,分按條件查詢生成后呈現在報表中...
在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;
uj5u.com熱心網友回復:
截圖看看唄
uj5u.com熱心網友回復:
兩個query2,沒query3
;fastreport我用了這么多年就沒手動更新過資料集,設定好dataset與query關聯,設計報表時把資料加載進來,query關閉打開一下資料就過來了;where 1<>2條件是加得好看的?;這三個表之間沒有關聯么?有關聯的話就用一個query連接進來就可以,沒有關聯就建三個報表吧。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/44313.html
標籤:VCL組件開發及應用
上一篇:qt實作 函式繪制
