'************************************************************************* ' ' DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. ' ' Copyright 2008 by Sun Microsystems, Inc. ' ' OpenOffice.org - a multi-platform office productivity suite ' ' $RCSfile: sheet_XCellSeries.xba,v $ ' ' $Revision: 1.4 $ ' ' This file is part of OpenOffice.org. ' ' OpenOffice.org is free software: you can redistribute it and/or modify ' it under the terms of the GNU Lesser General Public License version 3 ' only, as published by the Free Software Foundation. ' ' OpenOffice.org is distributed in the hope that it will be useful, ' but WITHOUT ANY WARRANTY; without even the implied warranty of ' MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ' GNU Lesser General Public License version 3 for more details ' (a copy is included in the LICENSE file that accompanied this code). ' ' You should have received a copy of the GNU Lesser General Public License ' version 3 along with OpenOffice.org. If not, see ' ' for a copy of the LGPLv3 License. ' '************************************************************************* '************************************************************************* '************************************************************************* ' This Interface/Service test depends on the following GLOBAL variables, ' which must be specified in the object creation: ' - Global aCellSeries(1) As Integer ' aCellSeries(0) = amount of rows of range ' aCellSeries(1) = amount of columns of range '************************************************************************* ' Be sure that all variables are dimensioned: option explicit Sub RunTest() '************************************************************************* ' INTERFACE: ' com.sun.star.sheet.XCellSeries '************************************************************************* On Error Goto ErrHndl Dim bOK As Boolean Dim startValue as Integer Dim nStep as Integer Dim shouldValue as Integer Dim filledValue as Integer Dim endCell(2) as Integer Dim n as Integer, m as Integer startValue = 5 nStep = 2 ' if 'nStep' is not a divisor of 'aCellSeries' it must be calculated ' the last filled cell for n = 0 to 1 if (aCellSeries(n) mod nStep) <> 0 then endCell(n) = aCellSeries(n) - (nStep-1) else endCell(n) = aCellSeries(n) end if next n 'make clean cells for n = 0 to endCell(0) for m = 0 to endCell(1) oObj.getCellByPosition(n,m).setString("") next next 'set defined start value oObj.getCellByPosition(0,0).setValue(startValue) Test.StartMethod("fillAuto()") bOK = TRUE oObj.fillAuto(com.sun.star.sheet.FillDirection.TO_BOTTOM, nStep) shouldValue = endCell(0) / nStep + startValue filledValue = oObj.getCellByPosition(0,endCell(0)).getValue() bOK = bOK AND ( shouldValue = filledValue ) out.log("" + shouldValue + ":" + filledValue) Test.MethodTested("fillAuto()", bOK) Test.StartMethod("fillSeries()") bOK = TRUE out.log("fillSeries() 1/3") oObj.fillSeries(com.sun.star.sheet.FillDirection.TO_BOTTOM, _ com.sun.star.sheet.FillMode.LINEAR, _ com.sun.star.sheet.FillDateMode.FILL_DATE_DAY, nStep, 20000000) shouldValue = endCell(0) * nStep + startValue filledValue = oObj.getCellByPosition(0,endCell(0)).getValue() bOK = bOK and (shouldValue = filledValue) out.log("fillSeries() 2/3") oObj.fillSeries(com.sun.star.sheet.FillDirection.TO_RIGHT, _ com.sun.star.sheet.FillMode.LINEAR, _ com.sun.star.sheet.FillDateMode.FILL_DATE_DAY, nStep, 20000000) shouldValue = endCell(1) * nStep + startValue filledValue = oObj.getCellByPosition(endCell(1),0).getValue() bOK = bOK and (shouldValue = filledValue) out.log("fillSeries() 3/3") oObj.fillSeries(com.sun.star.sheet.FillDirection.TO_BOTTOM, _ com.sun.star.sheet.FillMode.GROWTH, _ com.sun.star.sheet.FillDateMode.FILL_DATE_DAY, nStep, 20000000) shouldValue = startValue * nStep ^ endCell(0) filledValue = oObj.getCellByPosition(0,endCell(0)).getValue() bOK = bOK and (shouldValue = filledValue) Test.MethodTested("fillSeries()", bOK) Exit Sub ErrHndl: Test.Exception() bOK = false resume next End Sub