2019-04-15 02:23:03 +00:00
|
|
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
|
|
<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
|
2021-06-23 02:26:22 +00:00
|
|
|
<!--
|
|
|
|
* 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 .
|
|
|
|
-->
|
2019-04-15 02:23:03 +00:00
|
|
|
<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
|
2021-06-23 02:26:22 +00:00
|
|
|
' Note: As cells might be split or merged
|
2019-04-15 02:23:03 +00:00
|
|
|
' 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
|
2021-06-23 02:26:22 +00:00
|
|
|
If Not FieldInArray(InstanceNames(), MaxIndex, CurInstanceName) Then
|
2019-04-15 02:23:03 +00:00
|
|
|
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
|
2021-06-23 02:26:22 +00:00
|
|
|
</script:module>
|