1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
- <!--
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- * This file incorporates work covered by the following license notice:
- *
- * 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 .
- -->
- <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 split 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>
|