xref: /aoo4110/main/wizards/source/euro/Writer.xba (revision b1cdbd2c)
1<?xml version="1.0" encoding="UTF-8"?>
2<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
3<!--***********************************************************
4 *
5 * Licensed to the Apache Software Foundation (ASF) under one
6 * or more contributor license agreements.  See the NOTICE file
7 * distributed with this work for additional information
8 * regarding copyright ownership.  The ASF licenses this file
9 * to you under the Apache License, Version 2.0 (the
10 * "License"); you may not use this file except in compliance
11 * with the License.  You may obtain a copy of the License at
12 *
13 *   http://www.apache.org/licenses/LICENSE-2.0
14 *
15 * Unless required by applicable law or agreed to in writing,
16 * software distributed under the License is distributed on an
17 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
18 * KIND, either express or implied.  See the License for the
19 * specific language governing permissions and limitations
20 * under the License.
21 *
22 ***********************************************************-->
23<script:module xmlns:script="http://openoffice.org/2000/script" script:name="Writer" script:language="StarBasic">REM  *****  BASIC  *****
24
25
26Sub ConvertWriterTables()
27Dim CellString as String
28Dim oParagraphs as Object
29Dim oPara as Object
30Dim i as integer
31Dim sCellNames()
32Dim oCell as Object
33	oParagraphs = oDocument.Text.CreateEnumeration
34	While oParagraphs.HasMoreElements
35		oPara = oParagraphs.NextElement
36		If NOT oPara.supportsService(&quot;com.sun.star.text.Paragraph&quot;) Then
37			&apos; Note: As cells might be splitted or merged
38			&apos; you cannot refer to them via their indices
39			sCellNames = oPara.CellNames
40			For i = 0 To Ubound(sCellNames)
41				If sCellNames(i) &lt;&gt; &quot;&quot; Then
42					oCell = oPara.getCellByName(sCellNames(i))
43					If CheckFormatType(oCell) Then
44						SwitchNumberFormat(oCell, oFormats, sEuroSign)
45						ModifyObjectValuewithCurrFactor(oCell)
46					End If
47				End If
48			Next
49		End If
50	Wend
51End Sub
52
53
54Sub ModifyObjectValuewithCurrFactor(oDocObject as Object)
55	oDocObjectValue = oDocObject.Value
56	oDocObject.Value = oDocObjectValue/CurrFactor
57End Sub
58
59
60Sub ConvertTextFields()
61Dim oTextFields as Object
62Dim oTextField as Object
63Dim FieldValue
64Dim oDocObjectValue as double
65Dim InstanceNames(500) as String
66Dim CurInstanceName as String
67Dim MaxIndex as Integer
68	MaxIndex = 0
69	oTextfields = oDocument.getTextfields.CreateEnumeration
70	While oTextFields.hasmoreElements
71		oTextField = oTextFields.NextElement
72		If oTextField.PropertySetInfo.HasPropertybyName(&quot;NumberFormat&quot;) Then
73			If CheckFormatType(oTextField) Then
74				If oTextField.PropertySetInfo.HasPropertybyName(&quot;Value&quot;) Then
75					If Not oTextField.SupportsService(&quot;com.sun.star.text.TextField.GetExpression&quot;) Then
76						oTextField.Content = CStr(Round(oTextField.Value/CurrFactor,2))
77					End If
78				ElseIf oTextField.TextFieldMaster.PropertySetInfo.HasPropertyByName(&quot;Value&quot;) Then
79					CurInstanceName = oTextField.TextFieldMaster.InstanceName
80					If Not FieldinArray(InstanceNames(), MaxIndex, CurInstanceName) Then
81						oTextField.TextFieldMaster.Content = CStr(Round(oTextField.TextFieldMaster.Value/CurrFactor,2))
82						InstanceNames(MaxIndex) = CurInstanceName
83						MaxIndex = MaxIndex + 1
84					End If
85				End If
86				SwitchNumberFormat(oTextField, oFormats, sEuroSign)
87			End If
88		End If
89	Wend
90	oDocument.GetTextFields.refresh()
91End Sub
92</script:module>
93