blob: c5bb1f1ede0c83484d14ea0b6e4c1e62cd2ab77a [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<script:module xmlns:script="http://openoffice.org/2000/script" script:name="sheet_XCellSeries" script:language="StarBasic">
'*************************************************************************
'
' 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) &lt;&gt; 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
</script:module>