xref: /AOO41X/main/wizards/source/euro/Writer.xba (revision 1455e513e06d29f0697b752c8d53101957b5a400)
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