I have a dataset which returns data like below
Date, Area, Sales
2017-06-01 00:00:00.000 Canteen 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 Uncategorized 482.5
I am trying to create a stacked bar chart using this data
The number of series will be different
I have the logic below to create the series, but I am not sure how to add each value, e.g. I need the X Axis to be by date and have 2 bars. Each bar is then stacked with 3 series, as per the above data.
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;
When this is rendered, instead of 1 bar which is stacked, I get 3 bars
How do I get this in 1 bar stacked for the date?
Is there something special I need to with the Axis?
Cheers
Paul
This gives me one single stacked column:
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;