堆叠图表未按日期堆叠到单个栏中

时间:2017-07-29 07:47:50

标签: teechart

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

日期,区域,销售

2017-06-01 00:00:00.000食堂435.29

2017-06-01 00:00:00.000 Gym 26

2017-06-01 00:00:00.000 Nails 75

2017-06-01 00:00:00.000未分类482.5

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

系列的数量会有所不同

我有以下逻辑来创建系列,但我不知道如何添加每个值,例如我需要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.AddSeries(objSeries);
    objList.AddObject(objSeries.Title, objSeries)
  end
  else
    objSeries := objList.Objects[nIndex];

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

  tblSalesBreakdownByDate.Next;
end;

当渲染时,而不是堆叠的1 bar,我得到3条

enter image description here

如何在日期堆叠的1个酒吧中获得此信息?

Axis有什么特别之处吗?

干杯

1 个答案:

答案 0 :(得分:0)

这给了我一个单独的堆叠列:

uses Series;

procedure TForm1.FormCreate(Sender: TObject);
begin
  with Chart1.AddSeries(TBarSeries) as TBarSeries do
  begin
    MultiBar:=mbStacked;
    Marks.Hide;
    Title:='Canteen';
    Add(435, '2017-06-01');
  end;
  with Chart1.AddSeries(TBarSeries) as TBarSeries do
  begin
    MultiBar:=mbStacked;
    Marks.Hide;
    Title:='Gym';
    Add(25, '2017-06-01');
  end;
  with Chart1.AddSeries(TBarSeries) as TBarSeries do
  begin
    MultiBar:=mbStacked;
    Marks.Hide;
    Title:='Nails';
    Add(95, '2017-06-01');
  end;
  with Chart1.AddSeries(TBarSeries) as TBarSeries do
  begin
    MultiBar:=mbStacked;
    Marks.Hide;
    Title:='Uncategorized';
    Add(455, '2017-06-01');
  end;
end;