xref: /aoo41x/main/wizards/source/euro/Soft.xba (revision cdf0e10c)
1*cdf0e10cSrcweir<?xml version="1.0" encoding="UTF-8"?>
2*cdf0e10cSrcweir<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
3*cdf0e10cSrcweir<script:module xmlns:script="http://openoffice.org/2000/script" script:name="Soft" script:language="StarBasic">Option Explicit
4*cdf0e10cSrcweirREM  *****  BASIC  *****
5*cdf0e10cSrcweir
6*cdf0e10cSrcweir
7*cdf0e10cSrcweirSub CreateStyleEnumeration()
8*cdf0e10cSrcweir	EmptySelection()
9*cdf0e10cSrcweir	EmptyListbox(DialogModel.lstSelection)
10*cdf0e10cSrcweir	CurSheetName = oDocument.CurrentController.GetActiveSheet.Name
11*cdf0e10cSrcweir	MakeStyleEnumeration(False)
12*cdf0e10cSrcweir	DialogModel.lblSelection.Label = sTEMPLATES
13*cdf0e10cSrcweirEnd Sub
14*cdf0e10cSrcweir
15*cdf0e10cSrcweir
16*cdf0e10cSrcweirSub MakeStyleEnumeration(bAddToListbox as Boolean)
17*cdf0e10cSrcweirDim m as integer
18*cdf0e10cSrcweirDim aStyleFormat as Object
19*cdf0e10cSrcweirDim Stylename as String
20*cdf0e10cSrcweir 	StyleIndex = -1
21*cdf0e10cSrcweir	oStyles = oDocument.StyleFamilies.GetbyIndex(0)
22*cdf0e10cSrcweir	For m = 0 To oStyles.count-1
23*cdf0e10cSrcweir		oStyle = oStyles.GetbyIndex(m)
24*cdf0e10cSrcweir		StyleName = oStyle.Name
25*cdf0e10cSrcweir		If CheckFormatType(oStyle) Then
26*cdf0e10cSrcweir			If Not bAddToListBox Then
27*cdf0e10cSrcweir				AddSingleItemToListbox(DialogModel.lstSelection, Stylename)
28*cdf0e10cSrcweir			Else
29*cdf0e10cSrcweir				SwitchNumberFormat(ostyle, oFormats, sEuroSign)
30*cdf0e10cSrcweir			End If
31*cdf0e10cSrcweir			StyleIndex = StyleIndex + 1
32*cdf0e10cSrcweir			If StyleIndex &gt; Ubound(StyleRangeAssignMentList()) Then
33*cdf0e10cSrcweir				Redim Preserve StyleRangeAssignmentList(StyleIndex)
34*cdf0e10cSrcweir			End If
35*cdf0e10cSrcweir			StyleRangeAssignmentList(StyleIndex) = 	&quot;&lt;STYLENAME&gt;&quot; &amp; Stylename &amp; &quot;&lt;/STYLENAME&gt;&quot; &amp; _
36*cdf0e10cSrcweir													&quot;&lt;DEFINED&gt;FALSE&lt;/DEFINED&gt;&quot; &amp; &quot;&lt;RANGES&gt;&lt;/RANGES&gt;&quot; &amp;_
37*cdf0e10cSrcweir													&quot;&lt;CELLCOUNT&gt;0&lt;/CELLCOUNT&gt;&quot; &amp;_
38*cdf0e10cSrcweir													&quot;&lt;SELECTED&gt;FALSE&lt;/SELECTED&gt;&quot;
39*cdf0e10cSrcweir		End If
40*cdf0e10cSrcweir	Next m
41*cdf0e10cSrcweir	If StyleIndex &gt; -1 Then
42*cdf0e10cSrcweir		Redim Preserve StyleRangeAssignmentList(StyleIndex)
43*cdf0e10cSrcweir	Else
44*cdf0e10cSrcweir		ReDim StyleRangeAssignmentList()
45*cdf0e10cSrcweir	End If
46*cdf0e10cSrcweirEnd Sub
47*cdf0e10cSrcweir
48*cdf0e10cSrcweir
49*cdf0e10cSrcweirSub AssignRangestoStyle(StyleList(), SelList())
50*cdf0e10cSrcweirDim i as Integer
51*cdf0e10cSrcweirDim n as integer
52*cdf0e10cSrcweirDim LastIndex as Integer
53*cdf0e10cSrcweirDim CurStyleName as String
54*cdf0e10cSrcweirDim AssignString as String
55*cdf0e10cSrcweir	LastIndex = Ubound(StyleList())
56*cdf0e10cSrcweir	StatusValue = 0
57*cdf0e10cSrcweir	SetStatusLineText(sStsRELRANGES)
58*cdf0e10cSrcweir	For i = 0 To LastIndex
59*cdf0e10cSrcweir		CurStyleName = StyleList(i)
60*cdf0e10cSrcweir		n = PartStringInArray(StyleRangeAssignmentList(), CurStyleName, 0)
61*cdf0e10cSrcweir		AssignString = StyleRangeAssignmentlist(n)
62*cdf0e10cSrcweir		If IndexInArray(CurStyleName, SelList()) &lt;&gt; -1 Then
63*cdf0e10cSrcweir			&apos; Style is selected
64*cdf0e10cSrcweir			If FindPartString(AssignString, &quot;&lt;DEFINED&gt;&quot;, &quot;&lt;/DEFINED&gt;&quot;, 1) = &quot;FALSE&quot; Then
65*cdf0e10cSrcweir				AssignString = ReplaceString(AssignString, &quot;&lt;SELECTED&gt;TRUE&lt;/SELECTED&gt;&quot;, &quot;&lt;SELECTED&gt;FALSE&lt;/SELECTED&gt;&quot;)
66*cdf0e10cSrcweir				AssignCellFormatRanges(n, AssignString, CurStyleName)
67*cdf0e10cSrcweir			End If
68*cdf0e10cSrcweir		Else
69*cdf0e10cSrcweir			&apos; Style is not selected
70*cdf0e10cSrcweir			If FindPartString(AssignString, &quot;&lt;SELECTED&gt;&quot;, &quot;&lt;/SELECTED&gt;&quot;, 1) = &quot;FALSE&quot; Then
71*cdf0e10cSrcweir				DeselectStyle(CurStyleName, n)
72*cdf0e10cSrcweir			End If
73*cdf0e10cSrcweir		End If
74*cdf0e10cSrcweir		IncreaseStatusvalue(SBRELGET/(LastIndex+1))
75*cdf0e10cSrcweir	Next i
76*cdf0e10cSrcweirEnd Sub
77*cdf0e10cSrcweir
78*cdf0e10cSrcweir
79*cdf0e10cSrcweirSub AssignCellFormatRanges(n as Integer, AssignString as String, CurStyleName as String)
80*cdf0e10cSrcweirDim oRanges() as Object
81*cdf0e10cSrcweirDim oRange as Object
82*cdf0e10cSrcweirDim oRangeAddress
83*cdf0e10cSrcweirDim oSheet as Object
84*cdf0e10cSrcweirDim StyleCellCount as Long
85*cdf0e10cSrcweirDim i as Integer
86*cdf0e10cSrcweirDim MaxIndex as Integer
87*cdf0e10cSrcweirDim RangeString as String
88*cdf0e10cSrcweirDim SheetName as String
89*cdf0e10cSrcweirDim RangeName as String
90*cdf0e10cSrcweirDim CellCountString as String
91*cdf0e10cSrcweir	StyleCellCount = 0
92*cdf0e10cSrcweir	RangeString = &quot;&lt;RANGES&gt;&quot;
93*cdf0e10cSrcweir	MaxIndex = oSheets.Count-1
94*cdf0e10cSrcweir	For i = 0 To MaxIndex
95*cdf0e10cSrcweir		oSheet = oSheets(i)
96*cdf0e10cSrcweir		SheetName = oSheet.Name
97*cdf0e10cSrcweir		oRanges = osheet.CellFormatRanges.CreateEnumeration
98*cdf0e10cSrcweir		While oRanges.hasMoreElements
99*cdf0e10cSrcweir			oRange = oRanges.NextElement
100*cdf0e10cSrcweir			If oRange.getPropertyState(&quot;NumberFormat&quot;) = 1 Then
101*cdf0e10cSrcweir				If oRange.CellStyle = CurStyleName Then
102*cdf0e10cSrcweir					oRangeAddress = oRange.RangeAddress
103*cdf0e10cSrcweir					RangeName = RetrieveRangeNamefromAddress(oRange)
104*cdf0e10cSrcweir					RangeString = RangeString &amp; RangeName &amp; &quot;,&quot;
105*cdf0e10cSrcweir					StyleCellCount = StyleCellCount + CountRangeCells(oRange)
106*cdf0e10cSrcweir				End If
107*cdf0e10cSrcweir			End If
108*cdf0e10cSrcweir		Wend
109*cdf0e10cSrcweir	Next i
110*cdf0e10cSrcweir	If StyleCellCount &gt; 0 Then
111*cdf0e10cSrcweir		TotCellCount = TotCellCount + StyleCellCount
112*cdf0e10cSrcweir		RangeString = RTrimStr(RangeString,&quot;,&quot;)
113*cdf0e10cSrcweir		RangeString = RangeString &amp; &quot;&lt;/RANGES&gt;&quot;
114*cdf0e10cSrcweir		CellCountString = &quot;&lt;CELLCOUNT&gt;&quot; &amp; StyleCellCount &amp; &quot;&lt;/CELLCOUNT&quot;
115*cdf0e10cSrcweir		AssignString = ReplaceString(AssignString, RangeString,&quot;&lt;RANGES&gt;&lt;/RANGES&gt;&quot;)
116*cdf0e10cSrcweir		AssignString = ReplaceString(AssignString, CellCountString,&quot;&lt;CELLCOUNT&gt;0&lt;/CELLCOUNT&gt;&quot;)
117*cdf0e10cSrcweir	End If
118*cdf0e10cSrcweir	AssignString = ReplaceString(AssignString, &quot;&lt;DEFINED&gt;TRUE&lt;/DEFINED&gt;&quot;, &quot;&lt;DEFINED&gt;FALSE&lt;/DEFINED&gt;&quot;)
119*cdf0e10cSrcweir	StyleRangeAssignmentList(n)	= AssignString
120*cdf0e10cSrcweirEnd Sub
121*cdf0e10cSrcweir
122*cdf0e10cSrcweir
123*cdf0e10cSrcweir&apos; deletes a styletemplate from the Collection that selects the ranges
124*cdf0e10cSrcweirSub DeselectStyle(DeSelStyleName as String, n as Integer)
125*cdf0e10cSrcweirDim i as Integer
126*cdf0e10cSrcweirDim RangeName as String
127*cdf0e10cSrcweirDim SelectString as String
128*cdf0e10cSrcweirDim AssignString as String
129*cdf0e10cSrcweirDim StyleRangeList() as String
130*cdf0e10cSrcweirDim MaxIndex as Integer
131*cdf0e10cSrcweir	SelectString =&quot;&lt;SELECTED&gt;FALSE&lt;/SELECTED&gt;&quot;
132*cdf0e10cSrcweir	AssignString = StyleRangeAssignmentList(n)
133*cdf0e10cSrcweir	RangeString = FindPartString(AssignString,&quot;&lt;RANGES&gt;&quot;,&quot;&lt;/RANGES&gt;&quot;,1)
134*cdf0e10cSrcweir	StyleRangeList() = ArrayoutofString(RangeString,&quot;,&quot;)
135*cdf0e10cSrcweir	MaxIndex = Ubound(StyleRangeList())
136*cdf0e10cSrcweir	For i = 0 To MaxIndex
137*cdf0e10cSrcweir		RangeName = StyleRangeList(i)
138*cdf0e10cSrcweir		If oSelRanges.HasbyName(RangeName) Then
139*cdf0e10cSrcweir			oSelRanges.RemovebyName(RangeName)
140*cdf0e10cSrcweir		End If
141*cdf0e10cSrcweir	Next i
142*cdf0e10cSrcweir	AssignString = ReplaceString(AssignString, &quot;&lt;SELECTED&gt;FALSE&lt;/SELECTED&gt;&quot;, &quot;&lt;SELECTED&gt;TRUE&lt;/SELECTED&gt;&quot;)
143*cdf0e10cSrcweir	StyleRangeAssignmentList(n) = AssignString
144*cdf0e10cSrcweirEnd Sub
145*cdf0e10cSrcweir
146*cdf0e10cSrcweir
147*cdf0e10cSrcweirFunction RetrieveRangeNamefromAddress(oRange as Object) as String
148*cdf0e10cSrcweirDim Rangename as String
149*cdf0e10cSrcweirDim oAddressRanges as Object
150*cdf0e10cSrcweir	oAddressRanges = oDocument.createInstance(&quot;com.sun.star.sheet.SheetCellRanges&quot;)
151*cdf0e10cSrcweir	oAddressRanges.InsertbyName(&quot;&quot;,oRange)
152*cdf0e10cSrcweir	Rangename = oAddressRanges.RangeAddressesasString
153*cdf0e10cSrcweir&apos;	Msgbox &quot;Adresse: &quot; &amp; oRangeAddress.StartColumn &amp; &quot; ; &quot; &amp; oRangeAddress.EndColumn &amp; &quot; ; &quot; &amp; oRangeAddress.StartRow &amp; &quot; ; &quot; &amp; oRangeAddress.EndRow &amp; chr(13) &amp; RangeName
154*cdf0e10cSrcweir&apos;	oAddressRanges.RemovebyName(RangeName)
155*cdf0e10cSrcweir	RetrieveRangeNamefromAddress = Rangename
156*cdf0e10cSrcweirEnd Function
157*cdf0e10cSrcweir
158*cdf0e10cSrcweir
159*cdf0e10cSrcweir&apos; creates a sheet object from an according sectionname
160*cdf0e10cSrcweirFunction RetrieveSheetoutofRangeName(TableText as String)
161*cdf0e10cSrcweirDim DescriptionList() as String
162*cdf0e10cSrcweirDim SheetName as String
163*cdf0e10cSrcweirDim MaxIndex as integer
164*cdf0e10cSrcweir	&apos; find out in which sheet the range is
165*cdf0e10cSrcweir	DescriptionList() = ArrayOutofString(TableText,&quot;.&quot;,MaxIndex)
166*cdf0e10cSrcweir	SheetName = DescriptionList(0)
167*cdf0e10cSrcweir	SheetName = DeleteStr(SheetName,&quot;&apos;&quot;)
168*cdf0e10cSrcweir	&apos; set the viewcursor on this sheet
169*cdf0e10cSrcweir	RetrieveSheetoutofRangeName = oSheets.GetbyName(SheetName)
170*cdf0e10cSrcweirEnd Function
171*cdf0e10cSrcweir
172*cdf0e10cSrcweir
173*cdf0e10cSrcweir&apos; creates a rangeobject from an according rangename
174*cdf0e10cSrcweirFunction RetrieveRangeoutofRangeName(TableText as String)
175*cdf0e10cSrcweir	oSheet = RetrieveSheetoutofRangeName(TableText)
176*cdf0e10cSrcweir	oRange = oSheet.GetCellRangebyName(TableText)
177*cdf0e10cSrcweir	RetrieveRangeoutofRangeName = oRange
178*cdf0e10cSrcweirEnd Function
179*cdf0e10cSrcweir
180*cdf0e10cSrcweir
181*cdf0e10cSrcweirSub ConvertTheSoftWay(StyleList(), bDeSelect as Boolean)
182*cdf0e10cSrcweirDim i as Integer
183*cdf0e10cSrcweirDim l as Integer
184*cdf0e10cSrcweirDim s as Integer
185*cdf0e10cSrcweirDim n as Integer
186*cdf0e10cSrcweirDim CurStyleName as String
187*cdf0e10cSrcweirDim RangeName as String
188*cdf0e10cSrcweirDim OldStatusValue as Integer
189*cdf0e10cSrcweirDim LastIndex as Integer
190*cdf0e10cSrcweirDim oSelListbox as Object
191*cdf0e10cSrcweirDim StyleRangeList() as String
192*cdf0e10cSrcweirDim MaxIndex as Integer
193*cdf0e10cSrcweir	oSelListbox = DialogConvert.GetControl(&quot;lstSelection&quot;)
194*cdf0e10cSrcweir	LastIndex = Ubound(StyleList())
195*cdf0e10cSrcweir	OldStatusValue = StatusValue
196*cdf0e10cSrcweir	For i = 0 To LastIndex
197*cdf0e10cSrcweir		CurStyleName = StyleList(i)
198*cdf0e10cSrcweir		oStyle = oStyles.GetbyName(CurStyleName)
199*cdf0e10cSrcweir		StyleRangeList() = GetAssignedRanges(CurStyleName, n)
200*cdf0e10cSrcweir		MaxIndex = Ubound(StyleRangeList())
201*cdf0e10cSrcweir		For s = 0 To MaxIndex
202*cdf0e10cSrcweir			RangeName = StyleRangeList(s)
203*cdf0e10cSrcweir			oRange = RetrieveRangeoutofRangeName(RangeName)
204*cdf0e10cSrcweir			If oRange.getPropertyState(&quot;NumberFormat&quot;) = 1 Then
205*cdf0e10cSrcweir				&apos; Range is hard formatted
206*cdf0e10cSrcweir				ConvertCellCurrencies(oRange)
207*cdf0e10cSrcweir				CurCellCount = CountRangeCells(oRange)
208*cdf0e10cSrcweir			End If
209*cdf0e10cSrcweir			IncreaseStatusvalue((CurCellCount/TotCellCount)*(95-OldStatusValue))
210*cdf0e10cSrcweir			If bDeSelect Then
211*cdf0e10cSrcweir				&apos; Note: On Problems see Bug #73157
212*cdf0e10cSrcweir				If oSelRanges.HasbyName(RangeName) Then
213*cdf0e10cSrcweir					oSelRanges.RemovebyName(RangeName)
214*cdf0e10cSrcweir					oDocument.CurrentController.Select(oSelRanges)
215*cdf0e10cSrcweir				End If
216*cdf0e10cSrcweir			End If
217*cdf0e10cSrcweir		Next s
218*cdf0e10cSrcweir		SwitchNumberFormat(ostyle, oFormats, sEuroSign)
219*cdf0e10cSrcweir		StyleRangeAssignmentList(n) = &quot;&quot;
220*cdf0e10cSrcweir		l = GetItemPos(oSelListBox.Model, CurStyleName)
221*cdf0e10cSrcweir		oSelListbox.RemoveItems(l,1)
222*cdf0e10cSrcweir	Next
223*cdf0e10cSrcweirEnd Sub
224*cdf0e10cSrcweir
225*cdf0e10cSrcweir
226*cdf0e10cSrcweirFunction GetAssignedRanges(CurStyleName as String, n as Integer)
227*cdf0e10cSrcweirDim StyleRangeList() as String
228*cdf0e10cSrcweirDim RangeString as String
229*cdf0e10cSrcweirDim AssignString as String
230*cdf0e10cSrcweir	n = PartStringInArray(StyleRangeAssignmentList(), CurStyleName, 0)
231*cdf0e10cSrcweir	If n &lt;&gt; -1 Then
232*cdf0e10cSrcweir		AssignString = StyleRangeAssignmentList(n)
233*cdf0e10cSrcweir		RangeString = FindPartString(AssignString,&quot;&lt;RANGES&gt;&quot;, &quot;&lt;/RANGES&gt;&quot;,1)
234*cdf0e10cSrcweir		If RangeString &lt;&gt; &quot;&quot; Then
235*cdf0e10cSrcweir			StyleRangeList() = ArrayoutofString(RangeString,&quot;,&quot;)
236*cdf0e10cSrcweir		End If
237*cdf0e10cSrcweir	End If
238*cdf0e10cSrcweir	GetAssignedRanges() = StyleRangeList()
239*cdf0e10cSrcweirEnd Function</script:module>