You've already forked lazarus-ccr
fpspreadsheet: Reading of ods repeated print columns. Unit tests for repeated rows/cols (not ok, yet).
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@4505 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
@ -94,6 +94,8 @@ type
|
|||||||
FDateMode: TDateModeODS;
|
FDateMode: TDateModeODS;
|
||||||
FFontFaces: TStringList;
|
FFontFaces: TStringList;
|
||||||
FRichTextFontList: TFPList;
|
FRichTextFontList: TFPList;
|
||||||
|
FRepeatedCols: TsRowColRange;
|
||||||
|
FRepeatedRows: TsRowColRange;
|
||||||
procedure ApplyColWidths;
|
procedure ApplyColWidths;
|
||||||
function ApplyStyleToCell(ACell: PCell; AStyleName: String): Boolean;
|
function ApplyStyleToCell(ACell: PCell; AStyleName: String): Boolean;
|
||||||
function ApplyTableStyle(ASheet: TsWorksheet; AStyleName: String): Boolean;
|
function ApplyTableStyle(ASheet: TsWorksheet; AStyleName: String): Boolean;
|
||||||
@ -937,6 +939,11 @@ begin
|
|||||||
FFontFaces := TStringList.Create;
|
FFontFaces := TStringList.Create;
|
||||||
FRichTextFontList := TFPList.Create;
|
FRichTextFontList := TFPList.Create;
|
||||||
|
|
||||||
|
FRepeatedRows.FirstIndex := UNASSIGNED_ROW_COL_INDEX;
|
||||||
|
FRepeatedRows.LastIndex := UNASSIGNED_ROW_COL_INDEX;
|
||||||
|
FRepeatedCols.FirstIndex := UNASSIGNED_ROW_COL_INDEX;
|
||||||
|
FRepeatedCols.LastIndex := UNASSIGNED_ROW_COL_INDEX;
|
||||||
|
|
||||||
// Initial base date in case it won't be read from file
|
// Initial base date in case it won't be read from file
|
||||||
FDateMode := dmODS1899;
|
FDateMode := dmODS1899;
|
||||||
end;
|
end;
|
||||||
@ -1587,58 +1594,79 @@ end;
|
|||||||
procedure TsSpreadOpenDocReader.ReadColumns(ATableNode: TDOMNode);
|
procedure TsSpreadOpenDocReader.ReadColumns(ATableNode: TDOMNode);
|
||||||
var
|
var
|
||||||
col: Integer;
|
col: Integer;
|
||||||
colNode: TDOMNode;
|
colNode, childnode: TDOMNode;
|
||||||
s: String;
|
nodeName: String;
|
||||||
defCellStyleIndex: Integer;
|
i: Integer;
|
||||||
colStyleIndex: Integer;
|
|
||||||
colData: TColumnData;
|
procedure ProcessCol(AColNode: TDOMNode);
|
||||||
colsRepeated: Integer;
|
var
|
||||||
j: Integer;
|
s: String;
|
||||||
|
colStyleIndex: Integer;
|
||||||
|
colData: TColumnData;
|
||||||
|
defCellStyleIndex: Integer;
|
||||||
|
colsRepeated: Integer;
|
||||||
|
j: Integer;
|
||||||
|
begin
|
||||||
|
s := GetAttrValue(AColNode, 'table:style-name');
|
||||||
|
colStyleIndex := FindColStyleByName(s);
|
||||||
|
if colStyleIndex <> -1 then
|
||||||
|
begin
|
||||||
|
defCellStyleIndex := -1;
|
||||||
|
s := GetAttrValue(AColNode, 'table:default-cell-style-name');
|
||||||
|
if s <> '' then
|
||||||
|
begin
|
||||||
|
defCellStyleIndex := FCellFormatList.FindIndexOfName(s); //FindCellStyleByName(s);
|
||||||
|
colData := TColumnData.Create;
|
||||||
|
colData.Col := col;
|
||||||
|
colData.ColStyleIndex := colStyleIndex;
|
||||||
|
colData.DefaultCellStyleIndex := defCellStyleIndex;
|
||||||
|
FColumnList.Add(colData);
|
||||||
|
end;
|
||||||
|
s := GetAttrValue(AColNode, 'table:number-columns-repeated');
|
||||||
|
if s = '' then
|
||||||
|
inc(col)
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
colsRepeated := StrToInt(s);
|
||||||
|
if defCellStyleIndex > -1 then
|
||||||
|
for j:=1 to colsRepeated-1 do
|
||||||
|
begin
|
||||||
|
colData := TColumnData.Create;
|
||||||
|
colData.Col := col + j;
|
||||||
|
colData.ColStyleIndex := colStyleIndex;
|
||||||
|
colData.DefaultCellStyleIndex := defCellStyleIndex;
|
||||||
|
FColumnList.Add(colData);
|
||||||
|
end;
|
||||||
|
inc(col, colsRepeated);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
begin
|
begin
|
||||||
// clear previous column list (from other sheets)
|
// clear previous column list (from other sheets)
|
||||||
for j := FColumnList.Count-1 downto 0 do TObject(FColumnList[j]).Free;
|
for i := FColumnList.Count-1 downto 0 do TObject(FColumnList[i]).Free;
|
||||||
FColumnList.Clear;
|
FColumnList.Clear;
|
||||||
|
|
||||||
col := 0;
|
col := 0;
|
||||||
colNode := ATableNode.FindNode('table:table-column');
|
colNode := ATableNode.FirstChild;
|
||||||
while Assigned(colNode) do
|
while Assigned(colNode) do
|
||||||
begin
|
begin
|
||||||
if colNode.NodeName = 'table:table-column' then
|
nodename := colNode.NodeName;
|
||||||
begin;
|
if nodeName = 'table:table-header-columns' then
|
||||||
s := GetAttrValue(colNode, 'table:style-name');
|
begin
|
||||||
colStyleIndex := FindColStyleByName(s);
|
if FRepeatedCols.FirstIndex = cardinal(UNASSIGNED_ROW_COL_INDEX) then
|
||||||
if colStyleIndex <> -1 then
|
FRepeatedCols.FirstIndex := col;
|
||||||
|
childnode := colNode.FirstChild;
|
||||||
|
while Assigned(childnode) do
|
||||||
begin
|
begin
|
||||||
defCellStyleIndex := -1;
|
ProcessCol(childnode);
|
||||||
s := GetAttrValue(ColNode, 'table:default-cell-style-name');
|
childnode := childnode.NextSibling;
|
||||||
if s <> '' then
|
|
||||||
begin
|
|
||||||
defCellStyleIndex := FCellFormatList.FindIndexOfName(s); //FindCellStyleByName(s);
|
|
||||||
colData := TColumnData.Create;
|
|
||||||
colData.Col := col;
|
|
||||||
colData.ColStyleIndex := colStyleIndex;
|
|
||||||
colData.DefaultCellStyleIndex := defCellStyleIndex;
|
|
||||||
FColumnList.Add(colData);
|
|
||||||
end;
|
|
||||||
s := GetAttrValue(ColNode, 'table:number-columns-repeated');
|
|
||||||
if s = '' then
|
|
||||||
inc(col)
|
|
||||||
else
|
|
||||||
begin
|
|
||||||
colsRepeated := StrToInt(s);
|
|
||||||
if defCellStyleIndex > -1 then
|
|
||||||
for j:=1 to colsRepeated-1 do
|
|
||||||
begin
|
|
||||||
colData := TColumnData.Create;
|
|
||||||
colData.Col := col + j;
|
|
||||||
colData.ColStyleIndex := colStyleIndex;
|
|
||||||
colData.DefaultCellStyleIndex := defCellStyleIndex;
|
|
||||||
FColumnList.Add(colData);
|
|
||||||
end;
|
|
||||||
inc(col, colsRepeated);
|
|
||||||
end;
|
|
||||||
end;
|
end;
|
||||||
end;
|
FRepeatedCols.LastIndex := col-1;
|
||||||
|
end
|
||||||
|
else
|
||||||
|
if nodeName = 'table:table-column' then
|
||||||
|
ProcessCol(colnode);
|
||||||
colNode := colNode.NextSibling;
|
colNode := colNode.NextSibling;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
@ -2200,10 +2228,10 @@ begin
|
|||||||
pageLayout := ReadPageLayout(StylesNode, GetAttrValue(TableNode, 'table:style-name'));
|
pageLayout := ReadPageLayout(StylesNode, GetAttrValue(TableNode, 'table:style-name'));
|
||||||
if pageLayout <> nil then
|
if pageLayout <> nil then
|
||||||
begin
|
begin
|
||||||
// Protect already-known RepeatedCols/Rows
|
|
||||||
pagelayout^.RepeatedCols := FWorksheet.PageLayout.RepeatedCols;
|
|
||||||
pagelayout^.RepeatedRows := FWorksheet.PageLayout.RepeatedRows;
|
|
||||||
FWorksheet.PageLayout := pagelayout^;
|
FWorksheet.PageLayout := pagelayout^;
|
||||||
|
// Repeated cols/rows already have been determined.
|
||||||
|
FWorksheet.PageLayout.RepeatedRows := FRepeatedRows;
|
||||||
|
FWorksheet.PageLayout.RepeatedCols := FRepeatedCols;
|
||||||
end;
|
end;
|
||||||
// Read print ranges
|
// Read print ranges
|
||||||
ReadPrintRanges(TableNode, FWorksheet);
|
ReadPrintRanges(TableNode, FWorksheet);
|
||||||
@ -3041,10 +3069,9 @@ end;
|
|||||||
procedure TsSpreadOpenDocReader.ReadRowsAndCells(ATableNode: TDOMNode);
|
procedure TsSpreadOpenDocReader.ReadRowsAndCells(ATableNode: TDOMNode);
|
||||||
var
|
var
|
||||||
row: Integer;
|
row: Integer;
|
||||||
cellNode, rowNode, childnode: TDOMNode;
|
rowNode, childnode: TDOMNode;
|
||||||
nodeName: String;
|
nodeName: String;
|
||||||
rowsRepeated: Integer;
|
rowsRepeated: Integer;
|
||||||
r1, r2: Cardinal;
|
|
||||||
|
|
||||||
procedure ProcessRow(ARowNode: TDOMNode);
|
procedure ProcessRow(ARowNode: TDOMNode);
|
||||||
var
|
var
|
||||||
@ -3180,8 +3207,6 @@ var
|
|||||||
begin
|
begin
|
||||||
rowsRepeated := 0;
|
rowsRepeated := 0;
|
||||||
row := 0;
|
row := 0;
|
||||||
r1 := UNASSIGNED_ROW_COL_INDEX;
|
|
||||||
r2 := UNASSIGNED_ROW_COL_INDEX;
|
|
||||||
|
|
||||||
rownode := ATableNode.FirstChild;
|
rownode := ATableNode.FirstChild;
|
||||||
while Assigned(rowNode) do
|
while Assigned(rowNode) do
|
||||||
@ -3191,19 +3216,19 @@ begin
|
|||||||
// Repeated print rows
|
// Repeated print rows
|
||||||
if nodeName = 'table:table-header-rows' then
|
if nodeName = 'table:table-header-rows' then
|
||||||
begin
|
begin
|
||||||
|
if FRepeatedRows.FirstIndex = Cardinal(UNASSIGNED_ROW_COL_INDEX) then
|
||||||
|
FRepeatedRows.FirstIndex := row;
|
||||||
childnode := rowNode.FirstChild;
|
childnode := rowNode.FirstChild;
|
||||||
while Assigned(childnode) do
|
while Assigned(childnode) do
|
||||||
begin
|
begin
|
||||||
nodename := childnode.NodeName;
|
nodename := childnode.NodeName;
|
||||||
if nodename = 'table:table-row' then
|
if nodename = 'table:table-row' then
|
||||||
begin
|
begin
|
||||||
if r1 = Cardinal(UNASSIGNED_ROW_COL_INDEX) then
|
|
||||||
r1 := row;
|
|
||||||
ProcessRow(childnode);
|
ProcessRow(childnode);
|
||||||
r2 := row-1;
|
|
||||||
end;
|
end;
|
||||||
childnode := childnode.NextSibling;
|
childnode := childnode.NextSibling;
|
||||||
end;
|
end;
|
||||||
|
FRepeatedRows.LastIndex := row-1;
|
||||||
end else
|
end else
|
||||||
// "normal" rows
|
// "normal" rows
|
||||||
if nodeName = 'table:table-row' then
|
if nodeName = 'table:table-row' then
|
||||||
@ -3212,9 +3237,6 @@ begin
|
|||||||
end;
|
end;
|
||||||
rowNode := rowNode.NextSibling;
|
rowNode := rowNode.NextSibling;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
if r1 <> cardinal(UNASSIGNED_ROW_COL_INDEX) then
|
|
||||||
FWorksheet.SetRepeatedPrintRows(r1, r2);
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TsSpreadOpenDocReader.ReadRowStyle(AStyleNode: TDOMNode);
|
procedure TsSpreadOpenDocReader.ReadRowStyle(AStyleNode: TDOMNode);
|
||||||
|
@ -28,6 +28,8 @@ type
|
|||||||
procedure TestWriteRead_PageMargins(AFormat: TsSpreadsheetFormat; ANumSheets, AHeaderFooterMode: Integer);
|
procedure TestWriteRead_PageMargins(AFormat: TsSpreadsheetFormat; ANumSheets, AHeaderFooterMode: Integer);
|
||||||
procedure TestWriteRead_PrintRanges(AFormat: TsSpreadsheetFormat;
|
procedure TestWriteRead_PrintRanges(AFormat: TsSpreadsheetFormat;
|
||||||
ANumSheets, ANumRanges: Integer; ASpaceInName: Boolean);
|
ANumSheets, ANumRanges: Integer; ASpaceInName: Boolean);
|
||||||
|
procedure TestWriteRead_RepeatedColRows(AFormat: TsSpreadsheetFormat;
|
||||||
|
AFirstCol, ALastCol, AFirstRow, ALastRow: Integer);
|
||||||
|
|
||||||
published
|
published
|
||||||
{ BIFF2 page layout tests }
|
{ BIFF2 page layout tests }
|
||||||
@ -231,6 +233,15 @@ type
|
|||||||
procedure TestWriteRead_OOXML_PrintRanges_2sheet_1Range_Space;
|
procedure TestWriteRead_OOXML_PrintRanges_2sheet_1Range_Space;
|
||||||
procedure TestWriteRead_OOXML_PrintRanges_2sheet_2Ranges_Space;
|
procedure TestWriteRead_OOXML_PrintRanges_2sheet_2Ranges_Space;
|
||||||
|
|
||||||
|
procedure TestWriteRead_OOXML_RepeatedRow_0;
|
||||||
|
procedure TestWriteRead_OOXML_RepeatedRows_0_1;
|
||||||
|
procedure TestWriteRead_OOXML_RepeatedRows_1_3;
|
||||||
|
procedure TestWriteRead_OOXML_RepeatedCol_0;
|
||||||
|
procedure TestWriteRead_OOXML_RepeatedCols_0_1;
|
||||||
|
procedure TestWriteRead_OOXML_RepeatedCols_1_3;
|
||||||
|
procedure TestWriteRead_OOXML_RepeatedCol_0_Row_0;
|
||||||
|
procedure TestWriteRead_OOXML_RepeatedCols_0_1_Rows_0_1;
|
||||||
|
|
||||||
{ OpenDocument page layout tests }
|
{ OpenDocument page layout tests }
|
||||||
procedure TestWriteRead_ODS_PageMargins_1sheet_0;
|
procedure TestWriteRead_ODS_PageMargins_1sheet_0;
|
||||||
procedure TestWriteRead_ODS_PageMargins_1sheet_1;
|
procedure TestWriteRead_ODS_PageMargins_1sheet_1;
|
||||||
@ -294,6 +305,15 @@ type
|
|||||||
procedure TestWriteRead_ODS_PrintRanges_1sheet_2Ranges_Space;
|
procedure TestWriteRead_ODS_PrintRanges_1sheet_2Ranges_Space;
|
||||||
procedure TestWriteRead_ODS_PrintRanges_2sheet_1Range_Space;
|
procedure TestWriteRead_ODS_PrintRanges_2sheet_1Range_Space;
|
||||||
procedure TestWriteRead_ODS_PrintRanges_2sheet_2Ranges_Space;
|
procedure TestWriteRead_ODS_PrintRanges_2sheet_2Ranges_Space;
|
||||||
|
|
||||||
|
procedure TestWriteRead_ODS_RepeatedRow_0;
|
||||||
|
procedure TestWriteRead_ODS_RepeatedRows_0_1;
|
||||||
|
procedure TestWriteRead_ODS_RepeatedRows_1_3;
|
||||||
|
procedure TestWriteRead_ODS_RepeatedCol_0;
|
||||||
|
procedure TestWriteRead_ODS_RepeatedCols_0_1;
|
||||||
|
procedure TestWriteRead_ODS_RepeatedCols_1_3;
|
||||||
|
procedure TestWriteRead_ODS_RepeatedCol_0_Row_0;
|
||||||
|
procedure TestWriteRead_ODS_RepeatedCols_0_1_Rows_0_1;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
implementation
|
implementation
|
||||||
@ -737,6 +757,44 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TSpreadWriteReadPageLayoutTests.TestWriteRead_RepeatedColRows(
|
||||||
|
AFormat: TsSpreadsheetFormat; AFirstCol, ALastCol, AFirstRow, ALastRow: Integer);
|
||||||
|
var
|
||||||
|
tempFile: String;
|
||||||
|
i, j: Integer;
|
||||||
|
MyWorkbook: TsWorkbook;
|
||||||
|
MyWorksheet: TsWorksheet;
|
||||||
|
rng: TsCellRange;
|
||||||
|
sheetname: String;
|
||||||
|
begin
|
||||||
|
TempFile := GetTempFileName;
|
||||||
|
|
||||||
|
MyWorkbook := TsWorkbook.Create;
|
||||||
|
try
|
||||||
|
sheetname := PageLayoutSheet;
|
||||||
|
MyWorksheet := MyWorkbook.AddWorksheet(sheetname);
|
||||||
|
MyWorksheet.SetRepeatedPrintRows(AFirstRow, ALastRow);
|
||||||
|
MyWorksheet.SetRepeatedPrintCols(AFirstCol, ALastCol);
|
||||||
|
MyWorkBook.WriteToFile(TempFile, AFormat, true);
|
||||||
|
finally
|
||||||
|
MyWorkbook.Free;
|
||||||
|
end;
|
||||||
|
|
||||||
|
// Open the spreadsheet
|
||||||
|
MyWorkbook := TsWorkbook.Create;
|
||||||
|
try
|
||||||
|
MyWorkbook.ReadFromFile(TempFile, AFormat);
|
||||||
|
MyWorksheet := MyWorkbook.GetWorksheetByName(sheetname);
|
||||||
|
CheckEquals(AFirstRow, MyWorksheet.Pagelayout.RepeatedRows.FirstIndex, 'First repeated row index mismatch');
|
||||||
|
CheckEquals(ALastRow, MyWorksheet.PageLayout.RepeatedRows.LastIndex, 'Last repeated row index mismatch');
|
||||||
|
CheckEquals(AFirstCol, MyWorksheet.PageLayout.RepeatedCols.FirstIndex, 'First repeated col index mismatch');
|
||||||
|
CheckEquals(ALastCol, MyWorksheet.PageLayout.RepeatedCols.LastIndex, 'Last repeated col index mismatch');
|
||||||
|
finally
|
||||||
|
MyWorkbook.Free;
|
||||||
|
DeleteFile(TempFile);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
{ Tests for BIFF2 file format }
|
{ Tests for BIFF2 file format }
|
||||||
|
|
||||||
@ -1565,6 +1623,46 @@ begin
|
|||||||
TestWriteRead_PrintRanges(sfOOXML, 2, 2, true);
|
TestWriteRead_PrintRanges(sfOOXML, 2, 2, true);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TSpreadWriteReadPageLayoutTests.TestWriteRead_OOXML_RepeatedRow_0;
|
||||||
|
begin
|
||||||
|
TestWriteRead_RepeatedColRows(sfOOXML, -1, -1, 0, 0);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TSpreadWriteReadPageLayoutTests.TestWriteRead_OOXML_RepeatedRows_0_1;
|
||||||
|
begin
|
||||||
|
TestWriteRead_RepeatedColRows(sfOOXML, -1, -1, 0, 1);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TSpreadWriteReadPageLayoutTests.TestWriteRead_OOXML_RepeatedRows_1_3;
|
||||||
|
begin
|
||||||
|
TestWriteRead_RepeatedColRows(sfOOXML, -1, -1, 1, 3);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TSpreadWriteReadPageLayoutTests.TestWriteRead_OOXML_RepeatedCol_0;
|
||||||
|
begin
|
||||||
|
TestWriteRead_RepeatedColRows(sfOOXML, 0, 0, -1, -1);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TSpreadWriteReadPageLayoutTests.TestWriteRead_OOXML_RepeatedCols_0_1;
|
||||||
|
begin
|
||||||
|
TestWriteRead_RepeatedColRows(sfOOXML, 0, 1, -1, -1);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TSpreadWriteReadPageLayoutTests.TestWriteRead_OOXML_RepeatedCols_1_3;
|
||||||
|
begin
|
||||||
|
TestWriteRead_RepeatedColRows(sfOOXML, 1, 3, -1, -1);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TSpreadWriteReadPageLayoutTests.TestWriteRead_OOXML_RepeatedCol_0_Row_0;
|
||||||
|
begin
|
||||||
|
TestWriteRead_RepeatedColRows(sfOOXML, 0, 0, 0, 0);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TSpreadWriteReadPageLayoutTests.TestWriteRead_OOXML_RepeatedCols_0_1_Rows_0_1;
|
||||||
|
begin
|
||||||
|
TestWriteRead_RepeatedColRows(sfOOXML, 0, 1, 0, 1);
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
{ Tests for Open Document file format }
|
{ Tests for Open Document file format }
|
||||||
|
|
||||||
@ -1830,6 +1928,48 @@ begin
|
|||||||
TestWriteRead_PrintRanges(sfOpenDocument, 2, 2, true);
|
TestWriteRead_PrintRanges(sfOpenDocument, 2, 2, true);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TSpreadWriteReadPageLayoutTests.TestWriteRead_ODS_RepeatedRow_0;
|
||||||
|
begin
|
||||||
|
TestWriteRead_RepeatedColRows(sfOpenDocument, -1, -1, 0, 0);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TSpreadWriteReadPageLayoutTests.TestWriteRead_ODS_RepeatedRows_0_1;
|
||||||
|
begin
|
||||||
|
TestWriteRead_RepeatedColRows(sfOpenDocument, -1, -1, 0, 1);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TSpreadWriteReadPageLayoutTests.TestWriteRead_ODS_RepeatedRows_1_3;
|
||||||
|
begin
|
||||||
|
TestWriteRead_RepeatedColRows(sfOpenDocument, -1, -1, 1, 3);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TSpreadWriteReadPageLayoutTests.TestWriteRead_ODS_RepeatedCol_0;
|
||||||
|
begin
|
||||||
|
TestWriteRead_RepeatedColRows(sfOpenDocument, 0, 0, -1, -1);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TSpreadWriteReadPageLayoutTests.TestWriteRead_ODS_RepeatedCols_0_1;
|
||||||
|
begin
|
||||||
|
TestWriteRead_RepeatedColRows(sfOpenDocument, 0, 1, -1, -1);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TSpreadWriteReadPageLayoutTests.TestWriteRead_ODS_RepeatedCols_1_3;
|
||||||
|
begin
|
||||||
|
TestWriteRead_RepeatedColRows(sfOpenDocument, 1, 3, -1, -1);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TSpreadWriteReadPageLayoutTests.TestWriteRead_ODS_RepeatedCol_0_Row_0;
|
||||||
|
begin
|
||||||
|
TestWriteRead_RepeatedColRows(sfOpenDocument, 0, 0, 0, 0);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TSpreadWriteReadPageLayoutTests.TestWriteRead_ODS_RepeatedCols_0_1_Rows_0_1;
|
||||||
|
begin
|
||||||
|
TestWriteRead_RepeatedColRows(sfOpenDocument, 0, 1, 0, 1);
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
initialization
|
initialization
|
||||||
RegisterTest(TSpreadWriteReadPageLayoutTests);
|
RegisterTest(TSpreadWriteReadPageLayoutTests);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user