请哪为大侠帮忙看看下面代码为何只出来一条曲线,谢谢!暂时没分了!procedure TForm2.BitBtn1Click(Sender: TObject);
var
ADOQuery: Array of TADOQuery;
frxDBDataSet: Array of TfrxDBDataset;
SeriesRec: Array of TFastLineSeries;
sSQL: string;
rs,rs1,i,j: integer;
begin
TfrxChartView(frxReport1.FindObject('Chart1')).ClearSeries;
TfrxChartView(frxReport1.FindObject('Chart1')).SeriesData.Clear;
SetLength(SeriesRec,2);
SetLength(frxDBDataSet,2);
SetLength(ADOQuery,2);
SeriesRec[0]:=TFastLineSeries.Create(TfrxChartView(frxReport1.FindObject('Chart1')));
TfrxChartView(frxReport1.FindObject('Chart1')).Chart.View3D:=False;
TfrxChartView(frxReport1.FindObject('Chart1')).Chart.AddSeries(SeriesRec[0]);
sSQL:='SELECT Z002,Z003 FROM ZYC WHERE Z001='''+'A'+''' ORDER BY Z002';
ADOQuery[0]:=TADOQuery.Create(nil);
ADOQuery[0].Connection:=ADOConnection1;
ADOQuery[0].Close;
ADOQuery[0].SQL.Clear;
ADOQuery[0].SQL.Add(sSQL);
ADOQuery[0].Open;
frxDBDataSet[0]:=TfrxDBDataSet.Create(nil);
frxDBDataset[0].Name := ADOQuery[0].Name;
frxDBDataSet[0].DataSet:=ADOQuery[0];
Frxreport1.DataSets.Add(frxDBDataSet[0]);
DataSource1.DataSet:=ADOQuery[0];
with TfrxChartView(frxReport1.FindObject('Chart1')).SeriesData.Add do
begin
DataType := dtDBData;
XSource := frxDBDataset[0].Name+'.'+AnsiQuotedStr('Z002','"');
YSource := frxDBDataset[0].Name+'.'+ AnsiQuotedStr('Z003','"');
DataSet := frxReport1.GetDataset(frxDBDataset[0].Name);
end; SeriesRec[1]:=TFastLineSeries.Create(TfrxChartView(frxReport1.FindObject('Chart1')));
TfrxChartView(frxReport1.FindObject('Chart1')).Chart.View3D:=False;
TfrxChartView(frxReport1.FindObject('Chart1')).Chart.AddSeries(SeriesRec[1]);
sSQL:='SELECT Z002,Z003 FROM ZYC WHERE Z001='''+'B'+''' ORDER BY Z002';
ADOQuery[1]:=TADOQuery.Create(nil);
ADOQuery[1].Connection:=ADOConnection1;
ADOQuery[1].Close;
ADOQuery[1].SQL.Clear;
ADOQuery[1].SQL.Add(sSQL);
ADOQuery[1].Open;
frxDBDataSet[1]:=TfrxDBDataSet.Create(nil);
frxDBDataset[1].Name := ADOQuery[1].Name;
frxDBDataSet[1].DataSet:=ADOQuery[1];
Frxreport1.DataSets.Add(frxDBDataSet[1]);
DataSource2.DataSet:=ADOQuery[1];
with TfrxChartView(frxReport1.FindObject('Chart1')).SeriesData.Add do
begin
DataType := dtDBData;
XSource := frxDBDataset[1].Name+'.'+AnsiQuotedStr('Z002','"');
YSource := frxDBDataset[1].Name+'.'+ AnsiQuotedStr('Z003','"');
DataSet := frxReport1.GetDataset(frxDBDataset[1].Name);
end;
TfrxChartView(frxReport1.FindObject('Chart1')).Chart.Repaint;
frxReport1.ShowReport(True);
end;
var
ADOQuery: Array of TADOQuery;
frxDBDataSet: Array of TfrxDBDataset;
SeriesRec: Array of TFastLineSeries;
sSQL: string;
rs,rs1,i,j: integer;
begin
TfrxChartView(frxReport1.FindObject('Chart1')).ClearSeries;
TfrxChartView(frxReport1.FindObject('Chart1')).SeriesData.Clear;
SetLength(SeriesRec,2);
SetLength(frxDBDataSet,2);
SetLength(ADOQuery,2);
SeriesRec[0]:=TFastLineSeries.Create(TfrxChartView(frxReport1.FindObject('Chart1')));
TfrxChartView(frxReport1.FindObject('Chart1')).Chart.View3D:=False;
TfrxChartView(frxReport1.FindObject('Chart1')).Chart.AddSeries(SeriesRec[0]);
sSQL:='SELECT Z002,Z003 FROM ZYC WHERE Z001='''+'A'+''' ORDER BY Z002';
ADOQuery[0]:=TADOQuery.Create(nil);
ADOQuery[0].Connection:=ADOConnection1;
ADOQuery[0].Close;
ADOQuery[0].SQL.Clear;
ADOQuery[0].SQL.Add(sSQL);
ADOQuery[0].Open;
frxDBDataSet[0]:=TfrxDBDataSet.Create(nil);
frxDBDataset[0].Name := ADOQuery[0].Name;
frxDBDataSet[0].DataSet:=ADOQuery[0];
Frxreport1.DataSets.Add(frxDBDataSet[0]);
DataSource1.DataSet:=ADOQuery[0];
with TfrxChartView(frxReport1.FindObject('Chart1')).SeriesData.Add do
begin
DataType := dtDBData;
XSource := frxDBDataset[0].Name+'.'+AnsiQuotedStr('Z002','"');
YSource := frxDBDataset[0].Name+'.'+ AnsiQuotedStr('Z003','"');
DataSet := frxReport1.GetDataset(frxDBDataset[0].Name);
end; SeriesRec[1]:=TFastLineSeries.Create(TfrxChartView(frxReport1.FindObject('Chart1')));
TfrxChartView(frxReport1.FindObject('Chart1')).Chart.View3D:=False;
TfrxChartView(frxReport1.FindObject('Chart1')).Chart.AddSeries(SeriesRec[1]);
sSQL:='SELECT Z002,Z003 FROM ZYC WHERE Z001='''+'B'+''' ORDER BY Z002';
ADOQuery[1]:=TADOQuery.Create(nil);
ADOQuery[1].Connection:=ADOConnection1;
ADOQuery[1].Close;
ADOQuery[1].SQL.Clear;
ADOQuery[1].SQL.Add(sSQL);
ADOQuery[1].Open;
frxDBDataSet[1]:=TfrxDBDataSet.Create(nil);
frxDBDataset[1].Name := ADOQuery[1].Name;
frxDBDataSet[1].DataSet:=ADOQuery[1];
Frxreport1.DataSets.Add(frxDBDataSet[1]);
DataSource2.DataSet:=ADOQuery[1];
with TfrxChartView(frxReport1.FindObject('Chart1')).SeriesData.Add do
begin
DataType := dtDBData;
XSource := frxDBDataset[1].Name+'.'+AnsiQuotedStr('Z002','"');
YSource := frxDBDataset[1].Name+'.'+ AnsiQuotedStr('Z003','"');
DataSet := frxReport1.GetDataset(frxDBDataset[1].Name);
end;
TfrxChartView(frxReport1.FindObject('Chart1')).Chart.Repaint;
frxReport1.ShowReport(True);
end;
procedure TMainForm.Button1Click(Sender: TObject);
var
// ADOQuery: Array of TADOQuery;
frxDBDataSet: Array of TfrxDBDataset;
SeriesRec: Array of TFastLineSeries;
// sSQL: string;
rs,rs1,i,j: integer;
begin
frxReport1.LoadFromFile('printfr.fr3');
TfrxChartView(frxReport1.FindObject('Chart1')).ClearSeries;
TfrxChartView(frxReport1.FindObject('Chart1')).SeriesData.Clear;
SetLength(SeriesRec,2);
SetLength(frxDBDataSet,2);
frxReport1.DataSets.Clear;// SetLength(ADOQuery,2);
SeriesRec[0]:=TFastLineSeries.Create(TfrxChartView(frxReport1.FindObject('Chart1')));
TfrxChartView(frxReport1.FindObject('Chart1')).Chart.View3D:=False;
TfrxChartView(frxReport1.FindObject('Chart1')).Chart.AddSeries(SeriesRec[0]);
// sSQL:='SELECT Z002,Z003 FROM ZYC WHERE Z001='''+'A'+''' ORDER BY Z002';
{ ADOQuery[0]:=TADOQuery.Create(nil);
ADOQuery[0].Connection:=ADOConnection1;
ADOQuery[0].Close;
ADOQuery[0].SQL.Clear;
ADOQuery[0].SQL.Add(sSQL);
ADOQuery[0].Open;
}
frxDBDataSet[0]:=TfrxDBDataSet.Create(nil);
frxDBDataset[0].Name := 'frxDBDataset1'; //ADOQuery[0].Name;
frxDBDataSet[0].DataSet:= GQ.FADOQ; //ADOQuery[0];
Frxreport1.DataSets.Add(frxDBDataSet[0]); with TfrxChartView(frxReport1.FindObject('Chart1')).SeriesData.Add do
begin
DataType := dtDBData;
XSource := frxDBDataset[0].Name+'.'+AnsiQuotedStr('d','"');
YSource := frxDBDataset[0].Name+'.'+ AnsiQuotedStr('v','"');
DataSet := frxReport1.GetDataset(frxDBDataset[0].Name);
end; SeriesRec[1]:=TFastLineSeries.Create(TfrxChartView(frxReport1.FindObject('Chart1')));
TfrxChartView(frxReport1.FindObject('Chart1')).Chart.View3D:=False;
TfrxChartView(frxReport1.FindObject('Chart1')).Chart.AddSeries(SeriesRec[1]);
// sSQL:='SELECT Z002,Z003 FROM ZYC WHERE Z001='''+'B'+''' ORDER BY Z002';
{ ADOQuery[1]:=TADOQuery.Create(nil);
ADOQuery[1].Connection:=ADOConnection1;
ADOQuery[1].Close;
ADOQuery[1].SQL.Clear;
ADOQuery[1].SQL.Add(sSQL);
ADOQuery[1].Open; } frxDBDataSet[1]:=TfrxDBDataSet.Create(nil);
frxDBDataset[1].Name := 'frxDBDataset2'; //ADOQuery[1].Name;
frxDBDataSet[1].DataSet:=LQ.FADOQ;//ADOQuery[1];
Frxreport1.DataSets.Add(frxDBDataSet[1]); with TfrxChartView(frxReport1.FindObject('Chart1')).SeriesData.Add do
begin
DataType := dtDBData;
XSource := frxDBDataset[1].Name+'.'+AnsiQuotedStr('d','"');
YSource := frxDBDataset[1].Name+'.'+ AnsiQuotedStr('v','"');
DataSet := frxReport1.GetDataset(frxDBDataset[1].Name);
end; TfrxChartView(frxReport1.FindObject('Chart1')).Chart.Repaint;
frxReport1.ShowReport(True);
end;
先生,谁说不是动态建的?? 上面的代码就是你的代码啊!!! 只是替换了ADOQUERY而已,是一样的!!!
即 frxDBDataset[0].Name := ADOQuery[0].Name; 你可以换成:
frxDBDataset[i].Name := 'frxDBDataset'+inttostr(i);