fpspreadsheet: Show regression formula in chart with number format specified in file.

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@9059 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
wp_xxyyzz
2023-11-29 12:33:37 +00:00
parent 8be0fe4703
commit 7394833a30
2 changed files with 9 additions and 7 deletions

View File

@ -1,6 +1,6 @@
program regressionchart_write_demo;
{.$DEFINE DARK_MODE}
{$mode objfpc}{$H+}
uses
SysUtils,
@ -16,7 +16,7 @@ var
begin
book := TsWorkbook.Create;
try
// worksheet
// Worksheet
sheet := book.AddWorksheet('regression_test');
// Enter data
@ -28,10 +28,10 @@ begin
sheet.WriteNumber(5, 0, 2.5); sheet.WriteNumber(5, 1, 2.45);
sheet.WriteNumber(6, 0, 3.1); sheet.WriteNumber(6, 1, 3.3);
sheet.WriteNumber(7, 0, 5.2); sheet.WriteNumber(7, 1, 4.9);
sheet.WriteNumber(8, 0, 6.8); sheet.WriteNumber(8, 1, 7.1); // sheet.WriteChartColor(8, 2, $FF8080);
sheet.WriteNumber(8, 0, 6.8); sheet.WriteNumber(8, 1, 7.1);
// Create chart: left/top in cell D4, 120 mm x 100 mm
ch := book.AddChart(sheet, 2, 3, 120, 100);
// Create chart: left/top in cell D4, 150 mm x 100 mm
ch := book.AddChart(sheet, 2, 3, 150, 100);
// Chart properties
ch.Border.Style := clsNoLine;
@ -54,7 +54,7 @@ begin
ser.Regression.Line.Color := scRed;
ser.Regression.Line.Style := clsDash;
ser.Regression.ForceYIntercept := true; // not used by logarithmic, power
ser.Regression.YInterceptValue := 1.0;
ser.Regression.YInterceptValue := 1.0; // dto.
ser.Regression.PolynomialDegree := 2;
ser.Regression.DisplayEquation := true;
ser.Regression.DisplayRSquare := true;

View File

@ -244,6 +244,8 @@ begin
APen.Style := psDashDotDot
end;
{ Converts an fps format string (e.g. '0.000') to a format string usable in
the Format() command (e.g. '%.3f') }
function Convert_NumFormatStr_to_FormatStr(ANumFormat: String): String;
var
isPercent: Boolean = false;
@ -1899,7 +1901,7 @@ begin
s := s + ser.EquationText.
X(AWorkbookSeries.Regression.Equation.XName).
Y(AWorkbookSeries.Regression.Equation.YName).
NumFormat('%.3f'). // to do: convert from AWorkbookSeries.Regression.Equation.NumberFormat
NumFormat(Convert_NumFormatStr_to_FormatStr(AWorkbookSeries.Regression.Equation.NumberFormat)).
DecimalSeparator('.').
TextFormat(tfHtml).
Get;