系列在运行时创建时未显示在TeeChart中?

时间:2017-07-28 21:06:58

标签: delphi teechart

我有一个数据集,它返回如下所示的数据

日期,区域,销售

01/01/2017,食堂,1000
2017/01/01,健身房,3000
01/01/2017,沙龙,2000年 02/01/2017,食堂,5000
2017/01/02,健身房,6000
02/01/2017,沙龙,7000

我正在尝试使用此数据创建堆积条形图

系列的数量会有所不同

我有以下逻辑来创建系列,但我不知道如何添加每个值,例如我需要X轴来按日期并且有2个小节。然后根据上述数据将每个条形堆叠成3个系列。

while not tblSalesBreakdownByDate.Eof do
begin
  nIndex := objList.IndexOf(tblSalesBreakdownByDateCategory.AsString);
  if nIndex = -1  then
  begin
    objSeries := TBarSeries.Create(Self);
    objSeries.MultiBar := TMultiBar.mbStacked;
    objSeries.Title := tblSalesBreakdownByDateCategory.AsString;

    chrtBreakdownByDate.SeriesList.Add(objSeries);
    objList.AddObject(objSeries.Title, objSeries)
  end
  else
    objSeries := objList.Objects[nIndex];

  objSeries.Add(tblSalesBreakdownByDateTotalSales.AsFloat, tblSalesBreakdownByDateTransactionDate.AsString);

  tblSalesBreakdownByDate.Next;
end;

当我运行它时,虽然它没有崩溃但我没有看到我添加的任何系列?

任何人都可以看到有什么问题吗?

有一种简单的方法吗?

理想情况下,我宁愿使用数据库图表,但我不知道如果数据不是静态的,该如何做?

干杯

1 个答案:

答案 0 :(得分:3)

而不是:

chrtBreakdownByDate.SeriesList.Add(objSeries);

调用AddSeries方法:

chrtBreakdownByDate.AddSeries(objSeries);

或没有任何添加方法调用将ParentChart设置为系列:

objSeries.ParentChart := chrtBreakdownByDate;

SeriesList集合不会收听集合更改,因此系列未添加到图表中。有关如何在运行时添加系列的示例,您可以在TChart参考页上找到。