'************************************************************************* ' ' Licensed to the Apache Software Foundation (ASF) under one ' or more contributor license agreements. See the NOTICE file ' distributed with this work for additional information ' regarding copyright ownership. The ASF licenses this file ' to you under the Apache License, Version 2.0 (the ' "License"); you may not use this file except in compliance ' with the License. You may obtain a copy of the License at ' ' http://www.apache.org/licenses/LICENSE-2.0 ' ' Unless required by applicable law or agreed to in writing, ' software distributed under the License is distributed on an ' "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY ' KIND, either express or implied. See the License for the ' specific language governing permissions and limitations ' under the 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