home *** CD-ROM | disk | FTP | other *** search
/ Freelog 125 / Freelog_MarsAvril2015_No125.iso / Bureautique / OpenOffice / Apache_OpenOffice_4.1.1_Win_x86_install_fr.exe / openoffice1.cab / Writer.xba < prev    next >
Extensible Markup Language  |  2014-02-25  |  3KB  |  93 lines

  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.  
  26. Sub ConvertWriterTables()
  27. Dim CellString as String
  28. Dim oParagraphs as Object
  29. Dim oPara as Object
  30. Dim i as integer
  31. Dim sCellNames()
  32. Dim oCell as Object
  33.     oParagraphs = oDocument.Text.CreateEnumeration
  34.     While oParagraphs.HasMoreElements
  35.         oPara = oParagraphs.NextElement
  36.         If NOT oPara.supportsService("com.sun.star.text.Paragraph") Then
  37.             ' Note: As cells might be splitted or merged
  38.             ' you cannot refer to them via their indices
  39.             sCellNames = oPara.CellNames
  40.             For i = 0 To Ubound(sCellNames)
  41.                 If sCellNames(i) <> "" 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
  51. End Sub
  52.  
  53.  
  54. Sub ModifyObjectValuewithCurrFactor(oDocObject as Object)
  55.     oDocObjectValue = oDocObject.Value
  56.     oDocObject.Value = oDocObjectValue/CurrFactor
  57. End Sub
  58.  
  59.  
  60. Sub ConvertTextFields()
  61. Dim oTextFields as Object
  62. Dim oTextField as Object
  63. Dim FieldValue
  64. Dim oDocObjectValue as double
  65. Dim InstanceNames(500) as String
  66. Dim CurInstanceName as String
  67. Dim MaxIndex as Integer
  68.     MaxIndex = 0
  69.     oTextfields = oDocument.getTextfields.CreateEnumeration
  70.     While oTextFields.hasmoreElements
  71.         oTextField = oTextFields.NextElement
  72.         If oTextField.PropertySetInfo.HasPropertybyName("NumberFormat") Then
  73.             If CheckFormatType(oTextField) Then
  74.                 If oTextField.PropertySetInfo.HasPropertybyName("Value") Then
  75.                     If Not oTextField.SupportsService("com.sun.star.text.TextField.GetExpression") Then
  76.                         oTextField.Content = CStr(Round(oTextField.Value/CurrFactor,2))
  77.                     End If
  78.                 ElseIf oTextField.TextFieldMaster.PropertySetInfo.HasPropertyByName("Value") 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()
  91. End Sub
  92. </script:module>
  93.