You've already forked lazarus-ccr
fpspreadsheet: Clear error log before starting reader/writer
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@3450 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
@ -804,6 +804,7 @@ type
|
|||||||
|
|
||||||
{ Internal methods }
|
{ Internal methods }
|
||||||
procedure GetLastRowColIndex(out ALastRow, ALastCol: Cardinal);
|
procedure GetLastRowColIndex(out ALastRow, ALastCol: Cardinal);
|
||||||
|
procedure PrepareBeforeReading;
|
||||||
procedure PrepareBeforeSaving;
|
procedure PrepareBeforeSaving;
|
||||||
procedure RemoveWorksheetsCallback(data, arg: pointer);
|
procedure RemoveWorksheetsCallback(data, arg: pointer);
|
||||||
procedure UpdateCaches;
|
procedure UpdateCaches;
|
||||||
@ -4683,13 +4684,30 @@ end;
|
|||||||
{ TsWorkbook }
|
{ TsWorkbook }
|
||||||
|
|
||||||
{@@
|
{@@
|
||||||
Helper method called before saving the workbook. Calculates the formulas
|
Helper method called before reading the workbook. Clears the error log.
|
||||||
in all worksheets having the option soCalcBeforeSaving set.
|
}
|
||||||
|
procedure TsWorkbook.PrepareBeforeReading;
|
||||||
|
begin
|
||||||
|
// Clear error log
|
||||||
|
FLog.Clear;
|
||||||
|
end;
|
||||||
|
|
||||||
|
{@@
|
||||||
|
Helper method called before saving the workbook. Clears the error log, and
|
||||||
|
calculates the formulas in all worksheets having the option soCalcBeforeSaving
|
||||||
|
set.
|
||||||
}
|
}
|
||||||
procedure TsWorkbook.PrepareBeforeSaving;
|
procedure TsWorkbook.PrepareBeforeSaving;
|
||||||
var
|
var
|
||||||
sheet: TsWorksheet;
|
sheet: TsWorksheet;
|
||||||
begin
|
begin
|
||||||
|
// Clear error log
|
||||||
|
FLog.Clear;
|
||||||
|
|
||||||
|
// Updates fist/last column/row index
|
||||||
|
UpdateCaches;
|
||||||
|
|
||||||
|
// Calculated formulas (if requested)
|
||||||
for sheet in FWorksheets do
|
for sheet in FWorksheets do
|
||||||
if (soCalcBeforeSaving in sheet.Options) then
|
if (soCalcBeforeSaving in sheet.Options) then
|
||||||
sheet.CalcFormulas;
|
sheet.CalcFormulas;
|
||||||
@ -4864,6 +4882,7 @@ begin
|
|||||||
AReader := CreateSpreadReader(AFormat);
|
AReader := CreateSpreadReader(AFormat);
|
||||||
try
|
try
|
||||||
FFileName := AFileName;
|
FFileName := AFileName;
|
||||||
|
PrepareBeforeReading;
|
||||||
AReader.ReadFromFile(AFileName, Self);
|
AReader.ReadFromFile(AFileName, Self);
|
||||||
UpdateCaches;
|
UpdateCaches;
|
||||||
FFormat := AFormat;
|
FFormat := AFormat;
|
||||||
@ -4951,6 +4970,7 @@ var
|
|||||||
begin
|
begin
|
||||||
AReader := CreateSpreadReader(AFormat);
|
AReader := CreateSpreadReader(AFormat);
|
||||||
try
|
try
|
||||||
|
PrepareBeforeReading;
|
||||||
AReader.ReadFromStream(AStream, Self);
|
AReader.ReadFromStream(AStream, Self);
|
||||||
UpdateCaches;
|
UpdateCaches;
|
||||||
finally
|
finally
|
||||||
@ -4987,9 +5007,9 @@ begin
|
|||||||
AWriter := CreateSpreadWriter(AFormat);
|
AWriter := CreateSpreadWriter(AFormat);
|
||||||
try
|
try
|
||||||
FFileName := AFileName;
|
FFileName := AFileName;
|
||||||
|
PrepareBeforeSaving;
|
||||||
AWriter.CheckLimitations;
|
AWriter.CheckLimitations;
|
||||||
FWriting := true;
|
FWriting := true;
|
||||||
PrepareBeforeSaving;
|
|
||||||
AWriter.WriteToFile(AFileName, AOverwriteExisting);
|
AWriter.WriteToFile(AFileName, AOverwriteExisting);
|
||||||
finally
|
finally
|
||||||
FWriting := false;
|
FWriting := false;
|
||||||
@ -5030,9 +5050,9 @@ var
|
|||||||
begin
|
begin
|
||||||
AWriter := CreateSpreadWriter(AFormat);
|
AWriter := CreateSpreadWriter(AFormat);
|
||||||
try
|
try
|
||||||
|
PrepareBeforeSaving;
|
||||||
AWriter.CheckLimitations;
|
AWriter.CheckLimitations;
|
||||||
FWriting := true;
|
FWriting := true;
|
||||||
PrepareBeforeSaving;
|
|
||||||
AWriter.WriteToStream(AStream);
|
AWriter.WriteToStream(AStream);
|
||||||
finally
|
finally
|
||||||
FWriting := false;
|
FWriting := false;
|
||||||
|
Reference in New Issue
Block a user