| <?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="sch_ChXDiagram" 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 |
| |
| |
| Dim nCol As Integer |
| Dim nRow As Integer |
| |
| ' REQUIRED VARIABLES for interface/service tests: |
| Global oLineDiagram As Object |
| Global oStackDiagram As Object |
| Global oStockDiagram As Object |
| Global oBarDiagram As Object |
| Global nGlobalBarDiagram As Long |
| |
| ' For drawing.XShapeDescriptor |
| Global cShapeType As String |
| |
| |
| Sub CreateObj() |
| |
| '************************************************************************* |
| ' COMPONENT: |
| ' sch.ChXDiagram |
| '************************************************************************* |
| On Error Goto ErrHndl |
| Dim oCharts As Object |
| Dim oChart As Object |
| Dim cType(4) As String |
| Dim mRangeAddress(0) As New com.sun.star.table.CellRangeAddress |
| Dim aRect As New com.sun.star.awt.Rectangle |
| Dim n As Integer |
| |
| oDoc = utils.createDocument("scalc", cObjectName) |
| |
| cType(0) = "StockDiagram" |
| cType(1) = "BarDiagram" |
| cType(2) = "XYDiagram" |
| cType(3) = "StackableDiagram" |
| cType(4) = "LineDiagram" |
| |
| nCol = 5 |
| nRow = 6 |
| FillCells() |
| |
| aRect.Width = 5000 |
| aRect.Height = 5000 |
| mRangeAddress(0).Sheet = 0 |
| mRangeAddress(0).StartColumn = 0 |
| mRangeAddress(0).StartRow = 0 |
| mRangeAddress(0).EndColumn = nCol |
| mRangeAddress(0).EndRow = nRow |
| |
| for n = 0 to 4 |
| aRect.X = 500 * n |
| aRect.Y = 3000 * n |
| oCharts = oDoc.Sheets(0).Charts |
| oCharts.addNewByName(cObjectName + cType(n) + n, aRect, mRangeAddress(), true, true) |
| oChart = oCharts.getByName(cObjectName + cType(n) + n).EmbeddedObject |
| oChart.Diagram = oChart.createInstance("com.sun.star.chart." + cType(n)) |
| next n |
| |
| oStockDiagram = oCharts.getByName(cObjectName + cType(0) + 0).EmbeddedObject.Diagram |
| oBarDiagram = oCharts.getByName(cObjectName + cType(1) + 1).EmbeddedObject.Diagram |
| oLineDiagram = oCharts.getByName(cObjectName + cType(2) + 2).EmbeddedObject.Diagram |
| oStackDiagram = oCharts.getByName(cObjectName + cType(3) + 3).EmbeddedObject.Diagram |
| oObj = oCharts.getByName(cObjectName + cType(4) + 4).EmbeddedObject.Diagram |
| |
| nGlobalBarDiagram = 4 |
| |
| ' For drawing.XShapeDescriptor |
| cShapeType = "com.sun.star.chart.Diagram" |
| |
| Exit Sub |
| ErrHndl: |
| Test.Exception() |
| End Sub |
| |
| Sub FillCells() |
| Dim oCell As Object |
| Dim oRange As Object |
| Dim n1 As Integer |
| Dim n2 As Integer |
| Dim oFormats As Variant |
| Dim nFormat As Integer |
| Dim nKey As Integer |
| Dim aLanguage As New com.sun.star.lang.Locale |
| |
| oRange = oDoc.Sheets(0).getCellRangeByPosition(0, 0, nCol, nRow) |
| |
| for n1 = 1 to nCol - 1 |
| For n2 = 1 To nRow - 1 |
| oRange.getCellByPosition(n1, n2).Value = n2 * (n1 + 1) |
| Next n2 |
| next n1 |
| |
| for n1 = 1 to nCol - 1 |
| oRange.getCellByPosition(n1, 0).String = "Col " + n1 |
| next n1 |
| for n2 = 1 to nRow - 1 |
| oRange.getCellByPosition(0, n2).String = "Row " + n2 |
| next n2 |
| |
| oFormats = oDoc.NumberFormats |
| nFormat = com.sun.star.util.NumberFormat.CURRENCY |
| nKey = oFormats.getStandardFormat(nFormat, aLanguage) |
| oRange.NumberFormat = nKey |
| End Sub |
| </script:module> |