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 > Ubound(StyleRangeAssignMentList()) Then 33*cdf0e10cSrcweir Redim Preserve StyleRangeAssignmentList(StyleIndex) 34*cdf0e10cSrcweir End If 35*cdf0e10cSrcweir StyleRangeAssignmentList(StyleIndex) = "<STYLENAME>" & Stylename & "</STYLENAME>" & _ 36*cdf0e10cSrcweir "<DEFINED>FALSE</DEFINED>" & "<RANGES></RANGES>" &_ 37*cdf0e10cSrcweir "<CELLCOUNT>0</CELLCOUNT>" &_ 38*cdf0e10cSrcweir "<SELECTED>FALSE</SELECTED>" 39*cdf0e10cSrcweir End If 40*cdf0e10cSrcweir Next m 41*cdf0e10cSrcweir If StyleIndex > -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()) <> -1 Then 63*cdf0e10cSrcweir ' Style is selected 64*cdf0e10cSrcweir If FindPartString(AssignString, "<DEFINED>", "</DEFINED>", 1) = "FALSE" Then 65*cdf0e10cSrcweir AssignString = ReplaceString(AssignString, "<SELECTED>TRUE</SELECTED>", "<SELECTED>FALSE</SELECTED>") 66*cdf0e10cSrcweir AssignCellFormatRanges(n, AssignString, CurStyleName) 67*cdf0e10cSrcweir End If 68*cdf0e10cSrcweir Else 69*cdf0e10cSrcweir ' Style is not selected 70*cdf0e10cSrcweir If FindPartString(AssignString, "<SELECTED>", "</SELECTED>", 1) = "FALSE" 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 = "<RANGES>" 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("NumberFormat") = 1 Then 101*cdf0e10cSrcweir If oRange.CellStyle = CurStyleName Then 102*cdf0e10cSrcweir oRangeAddress = oRange.RangeAddress 103*cdf0e10cSrcweir RangeName = RetrieveRangeNamefromAddress(oRange) 104*cdf0e10cSrcweir RangeString = RangeString & RangeName & "," 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 > 0 Then 111*cdf0e10cSrcweir TotCellCount = TotCellCount + StyleCellCount 112*cdf0e10cSrcweir RangeString = RTrimStr(RangeString,",") 113*cdf0e10cSrcweir RangeString = RangeString & "</RANGES>" 114*cdf0e10cSrcweir CellCountString = "<CELLCOUNT>" & StyleCellCount & "</CELLCOUNT" 115*cdf0e10cSrcweir AssignString = ReplaceString(AssignString, RangeString,"<RANGES></RANGES>") 116*cdf0e10cSrcweir AssignString = ReplaceString(AssignString, CellCountString,"<CELLCOUNT>0</CELLCOUNT>") 117*cdf0e10cSrcweir End If 118*cdf0e10cSrcweir AssignString = ReplaceString(AssignString, "<DEFINED>TRUE</DEFINED>", "<DEFINED>FALSE</DEFINED>") 119*cdf0e10cSrcweir StyleRangeAssignmentList(n) = AssignString 120*cdf0e10cSrcweirEnd Sub 121*cdf0e10cSrcweir 122*cdf0e10cSrcweir 123*cdf0e10cSrcweir' 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 ="<SELECTED>FALSE</SELECTED>" 132*cdf0e10cSrcweir AssignString = StyleRangeAssignmentList(n) 133*cdf0e10cSrcweir RangeString = FindPartString(AssignString,"<RANGES>","</RANGES>",1) 134*cdf0e10cSrcweir StyleRangeList() = ArrayoutofString(RangeString,",") 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, "<SELECTED>FALSE</SELECTED>", "<SELECTED>TRUE</SELECTED>") 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("com.sun.star.sheet.SheetCellRanges") 151*cdf0e10cSrcweir oAddressRanges.InsertbyName("",oRange) 152*cdf0e10cSrcweir Rangename = oAddressRanges.RangeAddressesasString 153*cdf0e10cSrcweir' Msgbox "Adresse: " & oRangeAddress.StartColumn & " ; " & oRangeAddress.EndColumn & " ; " & oRangeAddress.StartRow & " ; " & oRangeAddress.EndRow & chr(13) & RangeName 154*cdf0e10cSrcweir' oAddressRanges.RemovebyName(RangeName) 155*cdf0e10cSrcweir RetrieveRangeNamefromAddress = Rangename 156*cdf0e10cSrcweirEnd Function 157*cdf0e10cSrcweir 158*cdf0e10cSrcweir 159*cdf0e10cSrcweir' 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 ' find out in which sheet the range is 165*cdf0e10cSrcweir DescriptionList() = ArrayOutofString(TableText,".",MaxIndex) 166*cdf0e10cSrcweir SheetName = DescriptionList(0) 167*cdf0e10cSrcweir SheetName = DeleteStr(SheetName,"'") 168*cdf0e10cSrcweir ' set the viewcursor on this sheet 169*cdf0e10cSrcweir RetrieveSheetoutofRangeName = oSheets.GetbyName(SheetName) 170*cdf0e10cSrcweirEnd Function 171*cdf0e10cSrcweir 172*cdf0e10cSrcweir 173*cdf0e10cSrcweir' 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("lstSelection") 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("NumberFormat") = 1 Then 205*cdf0e10cSrcweir ' 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 ' 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) = "" 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 <> -1 Then 232*cdf0e10cSrcweir AssignString = StyleRangeAssignmentList(n) 233*cdf0e10cSrcweir RangeString = FindPartString(AssignString,"<RANGES>", "</RANGES>",1) 234*cdf0e10cSrcweir If RangeString <> "" Then 235*cdf0e10cSrcweir StyleRangeList() = ArrayoutofString(RangeString,",") 236*cdf0e10cSrcweir End If 237*cdf0e10cSrcweir End If 238*cdf0e10cSrcweir GetAssignedRanges() = StyleRangeList() 239*cdf0e10cSrcweirEnd Function</script:module>