blob: a4a28107557f2118b314e6b5f8f700c76524a145 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
<script:module xmlns:script="http://openoffice.org/2000/script" script:name="sc_ScCellRangeObj" 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.
'
'*************************************************************************
' Be sure that all variables are dimensioned:
option explicit
' REQUIRED VARIABLES for interface/service tests:
'com.sun.star.sheet.XCellSeries
Global aCellSeries(2) as Integer
'Required for com.sun.star.chart.XChartData
Global oCellToChange As Object
' com.sun.star.sheet.XCellRangeData
Global newData As Variant
Sub CreateObj()
'*************************************************************************
' COMPONENT:
' sc.ScCellRangeObj
'*************************************************************************
On Error Goto ErrHndl
Dim oSheet, oRange As Object
oDoc = utils.createDocument("scalc", cObjectName)
oSheet = oDoc.Sheets(0)
oCellToChange = oSheet.getCellByPosition(0, 0)
oRange = oSheet.getCellRangeByPosition(0, 0, 10, 10)
oObj = oRange
aCellSeries(0) = 10
aCellSeries(1) = 10
'Required for XCellRangeData
newData = Array(_
Array(2.5, 5.0, 2.5, 5.0, 3.5, 8.7, 9.9, 0.3, 1.2, 3, 0),_
Array(4.0, 9.0, 3.5, 8.7, 9.9, 0.3, 1.2, 3, 0, 2.5, 5.0),_
Array(2.5, 3.5, 8.7, 9.9, 0.3, 1.2, 3, 0, 5.0, 2.5, 5.0),_
Array(4.0, 9.0, 2.5, 3.5, 8.7, 9.9, 0.3, 1.2, 3, 0, 5.0),_
Array(2.5, 5.0, 2.5, 5.0, 3.5, 8.7, 9.9, 0.3, 1.2, 3, 0),_
Array(4.0, 9.0, 3.5, 8.7, 9.9, 0.3, 1.2, 3, 0, 2.5, 5.0),_
Array(2.5, 3.5, 8.7, 9.9, 0.3, 1.2, 3, 0, 5.0, 2.5, 5.0),_
Array(4.0, 9.0, 2.5, 3.5, 8.7, 9.9, 0.3, 1.2, 3, 0, 5.0),_
Array(2.5, 5.0, 2.5, 5.0, 3.5, 8.7, 9.9, 0.3, 1.2, 3, 0),_
Array(4.0, 9.0, 3.5, 8.7, 9.9, 0.3, 1.2, 3, 0, 2.5, 5.0),_
Array(2.5, 3.5, 8.7, 9.9, 0.3, 1.2, 3, 0, 5.0, 2.5, 5.0))
Exit Sub
ErrHndl:
Test.Exception()
End Sub
Function modifyDescriptor(descr As Variant) As Variant
On Error Goto ErrHndl
Dim i As Integer, n as Integer
Dim oCell As Object
Dim vFields(0) as new com.sun.star.table.TableSortField
for i = 0 to aCellSeries(0) - 1
oCell = oObj.getCellByPosition(0, i)
oCell.String = "" + (aCellSeries(0) - i)
oCell.setFormula(aCellSeries(0) - i)
next i
'ShowNameValuePair(descr)
vFields(0).IsCaseSensitive = false
vFields(0).IsAscending = true
vFields(0).FieldType = com.sun.star.table.TableSortFieldType.ALPHANUMERIC
for i = 0 to ubound(descr)
if descr(i).Name = "IsSortColumns" then descr(i).Value = false
if descr(i).Name = "SortFields" then descr(i).Value = vFields()
next i
modifyDescriptor() = descr
Exit Function
ErrHndl:
Out.Log("Exception in ScCellRangeObj.modifyDescriptor() :")
Test.Exception()
end Function
Function checkSort() As Boolean
On Error Goto ErrHndl
Dim i As Integer, oCell As Object
Dim bOK As Boolean
bOK = true
for i = 0 to aCellSeries(0) - 1
oCell = oObj.getCellByPosition(0,i)
bOK = bOK AND oCell.String = "" + (i + 1)
out.dbg(oCell.String + ":" + (i+1))
next i
checkSort() = bOK
Exit Function
ErrHndl:
Out.Log("Exception in ScCellRangeObj.checkSort() :")
Test.Exception()
end Function
</script:module>