我有一个数据集,它返回如下所示的数据
日期,区域,销售
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;
当我运行它时,虽然它没有崩溃但我没有看到我添加的任何系列?
任何人都可以看到有什么问题吗?
有一种简单的方法吗?
理想情况下,我宁愿使用数据库图表,但我不知道如果数据不是静态的,该如何做?
干杯
保
答案 0 :(得分:3)
而不是:
chrtBreakdownByDate.SeriesList.Add(objSeries);
调用AddSeries方法:
chrtBreakdownByDate.AddSeries(objSeries);
或没有任何添加方法调用将ParentChart设置为系列:
objSeries.ParentChart := chrtBreakdownByDate;
SeriesList集合不会收听集合更改,因此系列未添加到图表中。有关如何在运行时添加系列的示例,您可以在TChart参考页上找到。