gpt4 book ai didi

delphi - 如何在代码中创建TfrxChartView?

转载 作者:行者123 更新时间:2023-12-03 15:50:12 26 4
gpt4 key购买 nike

我正在使用快速报告 4.13.1。我需要在我的摘要带上显示多个图表,并且我尝试在带的 OnBeforePrint 事件处理程序中动态创建它们。问题是,虽然图表创建正确,但该系列没有显示我添加到其中的数据。这是我的 OnBeforePrint 事件:

var
dsSections,
dsTests,
dsHistory: TfrxDataSet;

Chart: TfrxChartView;
ChartCount: Integer;
begin
dsSections := Report.GetDataSet('frdTestSections');
dsTests := Report.GetDataSet('frdResults');
dsHistory := Report.GetDataSet('frdTestHistory');

ChartCount := 0;
dsSections.First;
while not dsSections.Eof do
begin
dsTests.First;
while not dsTests.Eof do
begin
if dsHistory.RecordCount > 0 then
begin
Chart := TfrxChartView.Create(rsHistory);
Chart.Left := (ChartCount mod 2) * 8 + 1;
Chart.Top := (ChartCount div 2) * 5 + 0.5;

Chart.Width := 8;
Chart.Height := 5;
Chart.Chart.Title.Text.Text := dsTests.Value('Name');
Chart.Chart.View3D := False;

Chart.AddSeries(csLine);
dsHistory.First;
while not dsHistory.Eof do
begin
ShowMessage(dsTests.Value('Name') + #13#10 + IntToStr(dsHistory.RecNo + 1) + ' ' +dsHistory.Value('Result')); // this is for debugging only
Chart.Series[0].Add(dsHistory.Value('Result'), IntToStr(dsHistory.RecNo + 1), clBlue);
dsHistory.Next;
end;

Inc(ChartCount);
end;
dsTests.Next;
end;
dsSections.Next;
end;
end;

我错过了什么?我应该设置要忽略的 TfrxChartView 属性吗?

最佳答案

您的代码在创建Series[0]后缺少一些设置:

  • Datatype属性,以确定其数据是否来自dtDBDatadtBandDatadtFixedData
    • 如果是dtDBData,那么您应该设置其DataSet属性
    • 如果是 dtBandData,那么您应该设置其 DataBand 属性
  • XSourceYSource 属性
  • 最后是它的 Active 属性

关于delphi - 如何在代码中创建TfrxChartView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19005052/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com