Update ooo320-m1
[ooovba.git] / wizards / source / euro / Common.xba
blob42a5c643dd22a302db4220e5e8f3e0866b7b3915
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
3 <script:module xmlns:script="http://openoffice.org/2000/script" script:name="Common" script:language="StarBasic"> REM ***** BASIC *****
4 Public DialogModel as Object
5 Public DialogConvert as Object
6 Public DialogPassword as Object
7 Public PasswordModel as Object
9 Sub RetrieveDocumentObjects()
10 CurMimeType = Tools.GetDocumentType(oDocument)
11 If Instr(1, CurMimeType, &quot;calc&quot;) &lt;&gt; 0 Then
12 oSheets = oDocument.Sheets
13 oSheet = oDocument.Sheets.GetbyIndex(0)
14 oAddressRanges = oDocument.createInstance(&quot;com.sun.star.sheet.SheetCellRanges&quot;)
15 End If
16 &apos; Retrieve the indices for the cellformatations
17 oFormats = oDocument.NumberFormats
18 End Sub
21 Sub CancelTask()
22 &apos; If Not DocDisposed Then
23 &apos; ReprotectSheets()
24 &apos; End If
25 If DialogModel.Step = 3 And (Not bCancelTask) Then
26 If Msgbox(sMsgCancelConversion, 36, sMsgCancelTitle) = 6 Then
27 bCancelTask = True
28 DialogConvert.EndExecute
29 Else
30 bCancelTask = False
31 End If
32 Else
33 DialogConvert.EndExecute()
34 End If
35 End Sub
38 Function ConvertDocument()
39 GoOn = True
40 &apos; DocDisposed = True
41 InitializeProgressbar()
42 If Instr(1, CurMimeType, &quot;calc&quot;) &lt;&gt; 0 Then
43 bDocHasProtectedSheets = CheckSheetProtection(oSheets)
44 If bDocHasProtectedSheets Then
45 bDocHasProtectedSheets = UnprotectSheetsWithPassword(oSheets, bDoUnProtect)
46 End If
47 If Not bDocHasProtectedSheets Then
48 If Not bRangeListDefined Then
49 TotCellCount = 0
50 CreateRangeEnumeration(True)
51 Else
52 IncreaseStatusvalue(SBRelGet/3)
53 End If
54 RangeIndex = Ubound(RangeList())
55 If RangeIndex &gt; -1 Then
56 ConvertThehardWay(RangeList(), True, False)
57 MakeStyleEnumeration(True)
58 oDocument.calculateAll()
59 End If
60 ReprotectSheets()
61 bRangeListDefined = False
62 End If
63 Else
64 DialogModel.ProgressBar.ProgressValue = 10 &apos; oStatusline.SetValue(10)
65 ConvertTextFields()
66 DialogModel.ProgressBar.ProgressValue = 80 &apos; oStatusline.SetValue(80)
67 ConvertWriterTables()
68 End If
69 EndStatusLine()
70 On Local Error Goto 0
71 End Function
74 Sub SwitchNumberFormat(oObject as Object, oFormats as object)
75 Dim nFormatLanguage as Integer
76 Dim nFormatDecimals as Integer
77 Dim nFormatLeading as Integer
78 Dim bFormatLeading as Integer
79 Dim bFormatNegRed as Integer
80 Dim bFormatThousands as Integer
81 Dim i as Integer
82 Dim aNewStr as String
83 Dim iNumberFormat as Long
84 Dim AddToList as Boolean
85 Dim sOldCurrSymbol as String
86 On Local Error Resume Next
87 iNumberFormat = oObject.NumberFormat
88 On Local Error GoTo NOKEY
89 aFormat() = oFormats.getByKey(iNumberFormat)
90 On Local Error GoTo 0
91 sOldCurrSymbol = aFormat.CurrencySymbol
92 If sOldCurrSymbol = CurrValue(CurrIndex,5) Then
93 aSimpleStr = &quot;0 [$EUR]&quot;
94 Else
95 aSimpleStr = &quot;0 [$&quot; &amp; sEuroSign &amp; aFormat.CurrencyExtension &amp; &quot;]&quot;
96 End If
98 nSimpleKey = Numberformat(oFormats, aSimpleStr, oLocale)
99 &apos; set new Currency format with according settings
100 nFormatDecimals = 2
101 nFormatLeading = aFormat.LeadingZeros
102 bFormatNegRed = aFormat.NegativeRed
103 bFormatThousands = aFormat.ThousandsSeparator
104 aNewStr = oFormats.generateFormat( nSimpleKey, aFormat.Locale, bFormatThousands, bFormatNegRed, nFormatDecimals, nFormatLeading)
105 oObject.NumberFormat = Numberformat(oFormats, aNewStr, aFormat.Locale)
106 NOKEY:
107 If Err &lt;&gt; 0 Then
108 Resume CLERROR
109 End If
110 CLERROR:
111 End Sub
114 Function Numberformat( oFormats as Object, aFormatStr as String, oLocale as Object)
115 Dim nRetkey
116 Dim l as String
117 Dim c as String
118 nRetKey = oFormats.queryKey( aFormatStr, oLocale, True )
119 If nRetKey = -1 Then
120 l = oLocale.Language
121 c = oLocale.Country
122 nRetKey = oFormats.addNew( aFormatStr, oLocale )
123 If nRetKey = -1 Then nRetKey = 0
124 End If
125 Numberformat = nRetKey
126 End Function
129 Function CheckFormatType( FormatObject as object)
130 Dim i as Integer
131 Dim LocCurrIndex as Integer
132 Dim nFormatFormatString as String
133 Dim FormatLangID as Integer
134 Dim sFormatCurrExt as String
135 Dim oFormatofObject() as Object
137 &apos; Retrieve the Format of the Object
138 On Local Error GoTo NOKEY
139 oFormatofObject = oFormats.getByKey(FormatObject.NumberFormat)
140 On Local Error GoTo 0
141 If NOT INT(oFormatofObject.Type) AND com.sun.star.util.NumberFormat.CURRENCY Then
142 CheckFormatType = False
143 Exit Function
144 End If
145 If FieldinArray(CurrSymbolList(),2,oFormatofObject.CurrencySymbol) Then
146 &apos; If the Currencysymbol of the object ist the one needed, then check the Currency extension
147 sFormatCurrExt = oFormatofObject.CurrencyExtension
149 If FieldInList(CurExtension(),2,sFormatCurrExt) Then
150 &apos; The Currency - extension also fits
151 CheckFormatType = True
152 Else
153 &apos; The Currency - symbol is Euro-conforming (like &apos;DEM&apos;), so there is no Currency-Extension
154 CheckFormatType = oFormatofObject.CurrencySymbol = CurrsymbolList(2)
155 End If
156 Else
157 &apos; The Currency Symbol of the object is not the desired one
158 If oFormatofObject.CurrencySymbol = &quot;&quot; Then
159 &apos; Format is &quot;automatic&quot;
160 CheckFormatType = CheckLocale(oFormatofObject.Locale)
161 Else
162 CheckFormatType = False
163 End If
164 End If
166 NOKEY:
167 If Err &lt;&gt; 0 Then
168 CheckFormatType = False
169 Resume CLERROR
170 End If
171 CLERROR:
172 End Function
175 Sub StartConversion()
176 GoOn = True
177 Select Case DialogModel.Step
178 Case 1
179 If DialogModel.chkComplete.State = 1 Then
180 ConvertWholeDocument()
181 Else
182 ConvertRangesorStylesofDocument()
183 End If
184 Case 2
185 bCancelTask = False
186 If InitializeThirdStep() Then
187 ConvertDocuments()
188 bCancelTask = True
189 End If
190 Case 3
191 DialogConvert.EndExecute()
192 End Select
193 End Sub
196 Sub IncreaseStatusValue(AddStatusValue as Integer)
197 StatusValue = Int(StatusValue + AddStatusValue)
198 If DialogModel.Step = 3 Then
199 DialogModel.ProgressBar.ProgressValue = StatusValue
200 Else
201 oStatusline.SetValue(StatusValue)
202 End If
203 End Sub
206 Sub SelectCurrency()
207 Dim AddtoList as Boolean
208 Dim NullList()
209 Dim OldCurrIndex as Integer
210 bRangeListDefined = False
211 OldCurrIndex = CurrIndex
212 CurrIndex = DialogModel.lstCurrencies.SelectedItems(0)
213 If OldCurrIndex &lt;&gt; CurrIndex Then
214 InitializeCurrencyValues(CurrIndex)
215 CurExtension(0) = LangIDValue(CurrIndex,0,2)
216 CurExtension(1) = LangIDValue(CurrIndex,1,2)
217 CurExtension(2) = LangIDValue(CurrIndex,2,2)
218 If DialogModel.Step = 1 Then
219 EnableStep1DialogControls(False,False, False)
220 If DialogModel.optCellTemplates.State = 1 Then
221 EnableStep1DialogControls(False, False, False)
222 CreateStyleEnumeration()
223 ElseIf ((DialogModel.optSheetRanges.State = 1) OR (DialogModel.optDocRanges.State = 1)) AND (DialogModel.Step = 1) Then
224 CreateRangeEnumeration(False)
225 If Ubound(RangeList()) = -1 Then
226 DialogModel.lstSelection.StringItemList() = NullList()
227 End If
228 ElseIf DialogModel.optSelRange.State= 1 Then
229 &apos;Preselected Range
230 End If
231 EnableStep1DialogControls(True, True, True)
232 ElseIf DialogModel.Step = 2 Then
233 EnableStep2DialogControls(True)
234 End If
235 End If
236 End Sub
239 Sub FillUpCurrencyListbox()
240 Dim i as Integer
241 Dim MaxIndex as Integer
242 MaxIndex = Ubound(CurrValue(),1)
243 Dim LocList(MaxIndex) as String
244 For i = 0 To MaxIndex
245 LocList(i) = CurrValue(i,0)
246 Next i
247 DialogModel.lstCurrencies.StringItemList() = LocList()
248 If CurrIndex &gt; -1 Then
249 SelectListboxItem(DialogModel.lstCurrencies, CurrIndex)
250 End If
251 End Sub
254 Sub InitializeProgressbar()
255 CurCellCount = 0
256 If Not IsNull(oStatusLine) Then
257 oStatusline.Start(sStsPROGRESS, 100)
258 Else
259 DialogModel.ProgressBar.ProgressValue = 0
260 End If
261 StatusValue = 0
262 End Sub
265 Sub EndStatusLine()
266 If Not IsNull(oStatusLine) Then
267 oStatusline.End
268 Else
269 DialogModel.ProgressBar.ProgressValue = 100
270 End If
271 End Sub
272 </script:module>