fpspreadsheet: Support volume stock charts in ods reader and chart link

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@9077 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
wp_xxyyzz
2023-12-12 14:52:42 +00:00
parent dc777e99cf
commit 23a0cfed5f
2 changed files with 9 additions and 3 deletions

View File

@ -976,7 +976,6 @@ begin
FStockSeries.RangeLine.Color := scBlack; FStockSeries.RangeLine.Color := scBlack;
FStockSeries.CandleStickDownFill.Style := cfsSolid; FStockSeries.CandleStickDownFill.Style := cfsSolid;
FStockSeries.CandleStickDownFill.Color := scBlack; FStockSeries.CandleStickDownFill.Color := scBlack;
break;
end; end;
end; end;
end; end;
@ -1308,7 +1307,7 @@ var
n: Integer; n: Integer;
begin begin
s := GetAttrValue(ANode, 'chart:class'); s := GetAttrValue(ANode, 'chart:class');
if (FChartType = ctStock) then if (FChartType = ctStock) and (s = '') then
series := FStockSeries series := FStockSeries
else else
case s of case s of
@ -1346,6 +1345,9 @@ begin
else else
ReadChartCellRange(ANode, 'chart:values-cell-range-address', series.YRange); ReadChartCellRange(ANode, 'chart:values-cell-range-address', series.YRange);
if series.XRange.IsEmpty then
series.XRange.Assign(series.Chart.XAxis.CategoryRange);
s := GetAttrValue(ANode, 'chart:attached-axis'); s := GetAttrValue(ANode, 'chart:attached-axis');
if s = 'primary-y' then if s = 'primary-y' then
series.YAxis := alPrimary series.YAxis := alPrimary

View File

@ -1084,7 +1084,10 @@ begin
case ASeries.ChartType of case ASeries.ChartType of
ctBar: ctBar:
begin
Result := TBarSeries.Create(FChart); Result := TBarSeries.Create(FChart);
src.IntegerX := true;
end;
ctLine, ctScatter: ctLine, ctScatter:
Result := TLineSeries.Create(FChart); Result := TLineSeries.Create(FChart);
ctArea: ctArea:
@ -1673,6 +1676,7 @@ procedure TsWorkbookChartLink.UpdateBarSeries(AWorkbookSeries: TsBarSeries;
begin begin
UpdateChartBrush(AWorkbookSeries.Chart, AWorkbookSeries.Fill, AChartSeries.BarBrush); UpdateChartBrush(AWorkbookSeries.Chart, AWorkbookSeries.Fill, AChartSeries.BarBrush);
UpdateChartPen(AWorkbookSeries.Chart, AWorkbookSeries.Line, AChartSeries.BarPen); UpdateChartPen(AWorkbookSeries.Chart, AWorkbookSeries.Line, AChartSeries.BarPen);
AChartSeries.BarWidthStyle := bwPercentMin;
AChartSeries.Stacked := AWorkbookSeries.Chart.StackMode <> csmSideBySide; AChartSeries.Stacked := AWorkbookSeries.Chart.StackMode <> csmSideBySide;
if AChartSeries.Source is TCalculatedChartSource then if AChartSeries.Source is TCalculatedChartSource then
TCalculatedChartSource(AChartSeries.Source).Percentage := (AWorkbookSeries.Chart.StackMode = csmStackedPercentage); TCalculatedChartSource(AChartSeries.Source).Percentage := (AWorkbookSeries.Chart.StackMode = csmStackedPercentage);