L
Langrenxilin
Unregistered / Unconfirmed
GUEST, unregistred user!
我需要在Fastreport中显示一个曲线图,包含2个TLineSeries,数据从一个Dataset中取得。我在设计时把TfrChartView放在一个主项数据里,在创建时加入如下代码:
//首先将Series加入frReport:
Series1 := TLineSeries.Create(nil);
Series2 := TLineSeries.Create(nil);
TFrChartView(frReport.FindObject('Chart1')).Chart.AddSeries(Series1);
TFrChartView(frReport.FindObject('Chart1')).Chart.AddSeries(Series2);
//绑定数据:
with DataSetdo
begin
First;
while not eofdo
begin
Series1.Add(Fields[0].Value, Fields[1].Value, clRed);
Series1.Add(Fields[0].Value, Fields[2].Value, clBlue);
//其中Fields[0],Fields[1],Fields[2]分别为三个字段,X轴显示Fields[0],Y轴显示Fields[1]和Fields[2]
Next;
end;
end;
... //其他代码
上面的代码基本上可以完成我需要的功能,可是有一个问题,我必须在主项数据中设置Band数据源连接到一个TfrDBDataSet,否则数据不显示。但数据显示以后,表中有多少条记录在预览时就显示多少个相同的Chart,每个Chart包含两个Series,这是什么原因?而且我感觉我的绑定数据有问题,不应该一条一条记录添加,请高手指点。
//首先将Series加入frReport:
Series1 := TLineSeries.Create(nil);
Series2 := TLineSeries.Create(nil);
TFrChartView(frReport.FindObject('Chart1')).Chart.AddSeries(Series1);
TFrChartView(frReport.FindObject('Chart1')).Chart.AddSeries(Series2);
//绑定数据:
with DataSetdo
begin
First;
while not eofdo
begin
Series1.Add(Fields[0].Value, Fields[1].Value, clRed);
Series1.Add(Fields[0].Value, Fields[2].Value, clBlue);
//其中Fields[0],Fields[1],Fields[2]分别为三个字段,X轴显示Fields[0],Y轴显示Fields[1]和Fields[2]
Next;
end;
end;
... //其他代码
上面的代码基本上可以完成我需要的功能,可是有一个问题,我必须在主项数据中设置Band数据源连接到一个TfrDBDataSet,否则数据不显示。但数据显示以后,表中有多少条记录在预览时就显示多少个相同的Chart,每个Chart包含两个Series,这是什么原因?而且我感觉我的绑定数据有问题,不应该一条一条记录添加,请高手指点。