home *** CD-ROM | disk | FTP | other *** search
- <?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
- <script:module xmlns:script="http://openoffice.org/2000/script" script:name="Writer" script:language="StarBasic">REM ***** BASIC *****
-
-
- Sub ConvertWriterTables()
- Dim CellString as String
- Dim oParagraphs as Object
- Dim oPara as Object
- Dim i as integer
- Dim sCellNames()
- Dim oCell as Object
- ' oDocument = StarDesktop.ActiveFrame.Controller.Model
- ' oFormats = oDocument.NumberFormats
- oParagraphs = oDocument.Text.CreateEnumeration
- While oParagraphs.HasMoreElements
- oPara = oParagraphs.NextElement
- If NOT oPara.supportsService("com.sun.star.text.Paragraph") Then
- ' Note: Da Zellen gesplittet oder zusammengef├╝gt werden k├╢nnen
- ' kann man die Zellen nicht ├╝ber ihre Indizes ansprechen.
- sCellNames = oPara.CellNames
- For i = 0 To Ubound(sCellNames)
- If sCellNames(i) <> "" Then
- oCell = oPara.getCellByName(sCellNames(i))
- If CheckFormatType(oCell) Then
- SwitchNumberFormat(oCell, oFormats, sEuroSign)
- ModifyObjectValuewithCurrFactor(oCell)
- End If
- End If
- Next
- End If
- Wend
- End Sub
-
-
-
- Sub ModifyObjectValuewithCurrFactor(oDocObject as Object)
- oDocObjectValue = oDocObject.Value
- oDocObject.Value = oDocObjectValue/CurrFactor
- End Sub
-
-
-
- Sub ConvertTextFields()
- Dim oTextFields as Object
- Dim oTextField as Object
- Dim FieldValue
- Dim oDocObjectValue as double
- Dim InstanceNames(500) as String
- Dim CurInstanceName as String
- Dim MaxIndex as Integer
- MaxIndex = 0
- oTextfields = oDocument.getTextfields.CreateEnumeration
- While oTextFields.hasmoreElements
- oTextField = oTextFields.NextElement
- If oTextField.PropertySetInfo.HasPropertybyName("NumberFormat") Then
- If CheckFormatType(oTextField) Then
- If oTextField.PropertySetInfo.HasPropertybyName("Value") Then
- If Not oTextField.SupportsService("com.sun.star.text.TextField.GetExpression") Then
- oTextField.Content = CStr(Round(oTextField.Value/CurrFactor,2))
- End If
- ElseIf oTextField.TextFieldMaster.PropertySetInfo.HasPropertyByName("Value") Then
- CurInstanceName = oTextField.TextFieldMaster.InstanceName
- If Not FieldinArray(InstanceNames(), MaxIndex, CurInstanceName) Then
- oTextField.TextFieldMaster.Content = CStr(Round(oTextField.TextFieldMaster.Value/CurrFactor,2))
- InstanceNames(MaxIndex) = CurInstanceName
- MaxIndex = MaxIndex + 1
- End If
- End If
- SwitchNumberFormat(oTextField, oFormats, sEuroSign)
- End If
- End If
- Wend
- oDocument.GetTextFields.refresh()
- End Sub</script:module>