| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
- <!--***********************************************************
- *
- * 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.
- *
- ***********************************************************-->
- <script:module xmlns:script="http://openoffice.org/2000/script" script:name="Writer" script:language="StarBasic">REM ***** BASIC *****
- Sub ConvertWriterTables()
- Dim CellString as String
- Dim oParagraphs as Object
- Dim oPara as Object
- Dim i as integer
- Dim sCellNames()
- Dim oCell as Object
- oParagraphs = oDocument.Text.CreateEnumeration
- While oParagraphs.HasMoreElements
- oPara = oParagraphs.NextElement
- If NOT oPara.supportsService("com.sun.star.text.Paragraph") Then
- ' Note: As cells might be splitted or merged
- ' you cannot refer to them via their indices
- sCellNames = oPara.CellNames
- For i = 0 To Ubound(sCellNames)
- If sCellNames(i) <> "" Then
- oCell = oPara.getCellByName(sCellNames(i))
- If CheckFormatType(oCell) Then
- SwitchNumberFormat(oCell, oFormats, sEuroSign)
- ModifyObjectValuewithCurrFactor(oCell)
- End If
- End If
- Next
- End If
- Wend
- End Sub
- Sub ModifyObjectValuewithCurrFactor(oDocObject as Object)
- oDocObjectValue = oDocObject.Value
- oDocObject.Value = oDocObjectValue/CurrFactor
- End Sub
- Sub ConvertTextFields()
- Dim oTextFields as Object
- Dim oTextField as Object
- Dim FieldValue
- Dim oDocObjectValue as double
- Dim InstanceNames(500) as String
- Dim CurInstanceName as String
- Dim MaxIndex as Integer
- MaxIndex = 0
- oTextfields = oDocument.getTextfields.CreateEnumeration
- While oTextFields.hasmoreElements
- oTextField = oTextFields.NextElement
- If oTextField.PropertySetInfo.HasPropertybyName("NumberFormat") Then
- If CheckFormatType(oTextField) Then
- If oTextField.PropertySetInfo.HasPropertybyName("Value") Then
- If Not oTextField.SupportsService("com.sun.star.text.TextField.GetExpression") Then
- oTextField.Content = CStr(Round(oTextField.Value/CurrFactor,2))
- End If
- ElseIf oTextField.TextFieldMaster.PropertySetInfo.HasPropertyByName("Value") Then
- CurInstanceName = oTextField.TextFieldMaster.InstanceName
- If Not FieldinArray(InstanceNames(), MaxIndex, CurInstanceName) Then
- oTextField.TextFieldMaster.Content = CStr(Round(oTextField.TextFieldMaster.Value/CurrFactor,2))
- InstanceNames(MaxIndex) = CurInstanceName
- MaxIndex = MaxIndex + 1
- End If
- End If
- SwitchNumberFormat(oTextField, oFormats, sEuroSign)
- End If
- End If
- Wend
- oDocument.GetTextFields.refresh()
- End Sub
- </script:module>
|