diff options
Diffstat (limited to 'qadevOOo/tests/basic/ifc/table/XCellRange/table_XCellRange.xba')
-rw-r--r-- | qadevOOo/tests/basic/ifc/table/XCellRange/table_XCellRange.xba | 142 |
1 files changed, 142 insertions, 0 deletions
diff --git a/qadevOOo/tests/basic/ifc/table/XCellRange/table_XCellRange.xba b/qadevOOo/tests/basic/ifc/table/XCellRange/table_XCellRange.xba new file mode 100644 index 000000000000..84588e716650 --- /dev/null +++ b/qadevOOo/tests/basic/ifc/table/XCellRange/table_XCellRange.xba @@ -0,0 +1,142 @@ +<?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="table_XCellRange" script:language="StarBasic"> + + +'************************************************************************* +' +' DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +' +' Copyright 2000, 2010 Oracle and/or its affiliates. +' +' OpenOffice.org - a multi-platform office productivity suite +' +' 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 +' <http://www.openoffice.org/license.html> +' for a copy of the LGPLv3 License. +' +'************************************************************************* +'************************************************************************* + + + +' Be sure that all variables are dimensioned: +option explicit + +'************************************************************************* +' You can only get ranges within your +' object-range. That means is your object-range +' is (A1:C3) you can get only a range within +' (A1:C3). + +'************************************************************************* + + + + + +Sub RunTest() + +'************************************************************************* +' INTERFACE: +' com.sun.star.table.XCellRange +'************************************************************************* +On Error Goto ErrHndl + Dim bOK As Boolean + + Dim oCell As Object + Dim oCellRange As Object + Dim oCellRange1 As Object + Dim bSupport As Boolean + Dim oAddress As Object + Dim nSCol As Long, nECol As Long + Dim nSRow As Long, nERow As Long + Dim nCol As Long, nRow As Long + Dim cSCol As String, cECol As String + + bOK = true + 'does the object support this service? If yes, the object is a range itself. + 'So we must look for the range address to be get a valid range + if hasUnoInterfaces( oObj, "com.sun.star.sheet.XCellRangeAddressable" ) then + Out.Log("Object supports com.sun.star.sheet.XCellRangeAddressable") + bSupport = true + oAddress = oObj.getRangeAddress() + nSCol = oAddress.StartColumn + nECol = oAddress.EndColumn + nSRow = oAddress.StartRow + nERow = oAddress.EndRow + nCol = nECol - nSCol + nRow = nERow - nSRow + else + bSupport = false + nCol = 1 + nRow = 1 + end if + + Test.StartMethod("getCellByPosition()") + bOK = true + Out.Log("try to getCellByPosition(" + nCol + "," + nRow + ")") + oCell = oObj.getCellByPosition(nCol, nRow) + bOK = bOK AND hasUnoInterfaces( oCell, "com.sun.star.table.XCell" ) + Test.MethodTested("getCellByPosition()", bOK) + + Test.StartMethod("getCellRangeByPosition()") + bOK = true + Out.Log("try to getCellRangeByPosition(0,0," + nCol + "," + nRow + ")") + oCellRange = oObj.getCellRangeByPosition(0, 0, nCol, nRow) + bOK = bOK AND hasUnoInterfaces( oCellRange, "com.sun.star.table.XCellRange" ) + Test.MethodTested("getCellRangeByPosition()", bOK) + + Test.StartMethod("getCellRangeByName()") + bOK = true + if bSupport then + oAddress = oObj.getRangeAddress() + nSCol = oAddress.StartColumn + nECol = oAddress.EndColumn + nSRow = oAddress.StartRow + nERow = oAddress.EndRow + cSCol = getCharacter(nSCol) + cECol = getCharacter(nECol) + else + nSRow = 0 + nERow = 2 + cSCol = "A" + cECol = "C" + end if + Out.Log("Try to getCellRangeByName(""" + cSCol + (nSRow + 1) + ":" + cECol + (nERow + 1) + """)") + oCellRange1 = oObj.getCellRangeByName("" + cSCol + (nSRow + 1) + ":" + cECol + (nERow + 1)) + bOK = bOK AND hasUnoInterfaces( oCellRange1, "com.sun.star.table.XCellRange" ) + Test.MethodTested("getCellRangeByName()", bOK) + +Exit Sub +ErrHndl: + Test.Exception() + bOK = false + resume next +End Sub +Function getCharacter( nCol as Integer) as String + Dim Char As String + Dim nNum As Integer + nNum = nCol + Char = "" + if (nNum - 26) > 0 Then + Char = Chr((nNum mod 26)+65) + nNum = Int((nNum - 26)/ 26) + end if + Char = Chr(nNum + 65) + Char + getCharacter = Char +End Function +</script:module> |