Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/LibreOffice/wizards/source/gimmicks/   (Office von Apache Version 25.8.3.2©)  Datei vom 5.10.2025 mit Größe 8 kB image not shown  

Quelle  Userfields.xba   Sprache: unbekannt

 
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
<!--
 * This file is part of the LibreOffice project.
 *
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
 *
 * This file incorporates work covered by the following license notice:
 *
 *   Licensed to the Apache Software Foundation (ASF) under one or more
 *   contributor license agreements. See the NOTICE file distributed
 *   with this work for additional information regarding copyright
 *   ownership. The ASF licenses this file to you under the Apache
 *   License, Version 2.0 (the "License"); you may not use this file
 *   except in compliance with the License. You may obtain a copy of
 *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
-->
<script:module xmlns:script="http://openoffice.org/2000/script" script:name="Userfields" script:language="StarBasic">Option Explicit
'Todo: Controlling Scrollbar via Keyboard

Public Const SBMAXFIELDINDEX = 14

Public DlgUserFields as Object
Public oDocument as Object
Public UserFieldDataType(SBMAXFIELDINDEX,1) as String
Public ScrollBarValue as Integer
Public UserFieldFamily(0, SBMAXfIELDINDEX) as String
Public Const SBTBCOUNT = 9 
Public oUserDataAccess as Object
Public CurFieldIndex as Integer
Public FilePath as String

Sub StartChangesUserfields
Dim SystemPath as String
 BasicLibraries.LoadLibrary("Tools")
 UserFieldDatatype(0,0) = "COMPANY"
 UserFieldDatatype(0,1) = "o"
 UserFieldDatatype(1,0) = "FIRSTNAME"
 UserFieldDatatype(1,1) = "givenname"
 UserFieldDatatype(2,0) = "LASTNAME"
 UserFieldDatatype(2,1) = "sn"
 UserFieldDatatype(3,0) = "INITIALS"
 UserFieldDatatype(3,1) = "initials"
 UserFieldDatatype(4,0) = "STREET"
 UserFieldDatatype(4,1) = "street"
 UserFieldDatatype(5,0) = "COUNTRY"
 UserFieldDatatype(5,1) = "c"
 UserFieldDatatype(6,0) = "ZIP"
 UserFieldDatatype(6,1) = "postalcode"
 UserFieldDatatype(7,0) = "CITY"
 UserFieldDatatype(7,1) = "l"
 UserFieldDatatype(8,0) = "TITLE"
 UserFieldDatatype(8,1) = "title"
 UserFieldDatatype(9,0) = "POSITION"
 UserFieldDatatype(9,1) = "position"
 UserFieldDatatype(10,0) = "PHONE_HOME"
 UserFieldDatatype(10,1) = "homephone"
 UserFieldDatatype(11,0) = "PHONE_WORK"
 UserFieldDatatype(11,1) = "telephonenumber"
 UserFieldDatatype(12,0) = "FAX"
 UserFieldDatatype(12,1) = "facsimiletelephonenumber"
 UserFieldDatatype(13,0) = "E-MAIL"
 UserFieldDatatype(13,1) = "mail"
 UserFieldDatatype(14,0) = "STATE"
 UserFieldDatatype(14,1) = "st"
 FilePath = GetPathSettings("Config", False) & "/" & "UserData.dat"
 DlgUserFields = LoadDialog("Gimmicks","UserfieldDlg")
 SystemPath = ConvertFromUrl(FilePath)
 DlgUserFields.Model.Label10.Label = ReplaceString(DlgUserFields.Model.Label10.Label, "'" & SystemPath & "'", "<ConfigDir>")
 DlgUserFields.Model.Label10.Label = ReplaceString(DlgUserFields.Model.Label10.Label, GetProductName(), "<PRODUCTNAME>")
 DlgUserFields.Model.cmdSelect.HelpText = ReplaceString(DlgUserFields.Model.cmdSelect.HelpText, GetProductName(), "<PRODUCTNAME>")
 ScrollBarValue = 0
 oUserDataAccess = GetRegistryKeyContent("org.openoffice.UserProfile/Data", True)
 InitializeUserFamily()
 FillDialog()
 DlgUserFields.Execute
 DlgUserFields.Dispose()
End Sub


Sub FillDialog()
Dim a as Integer
 With DlgUserFields
  For a = 1 To SBTBCount
   .GetControl("Label" & a).Model.Label = UserFieldDataType(a-1,0)
   .GetControl("TextField" & a).Model.Text = UserFieldFamily(CurFieldIndex, a-1)
  Next a
  .Model.ScrollBar1.ScrollValueMax = (SBMAXFIELDINDEX+1) - SBTBCOUNT
  .Model.ScrollBar1.BlockIncrement = SBTBCOUNT
  .Model.ScrollBar1.LineIncrement = 1
  .Model.ScrollBar1.ScrollValue = ScrollBarValue
 End With
End Sub


Sub ScrollControls()
 ScrollTextFieldInfo(ScrollBarValue)
 ScrollBarValue = DlgUserFields.Model.ScrollBar1.ScrollValue
 If (ScrollBarValue + SBTBCOUNT) >= SBMAXFIELDINDEX + 1 Then
  ScrollBarValue = (SBMAXFIELDINDEX + 1) - SBTBCOUNT
 End If
 FillupTextFields()
End Sub


Sub ScrollTextFieldInfo(ByVal iScrollValue as Integer)
Dim a as Integer
Dim CurIndex as Integer
 For a = 1 To SBTBCOUNT
  CurIndex = (a-1) + iScrollValue
  UserFieldFamily(CurFieldIndex,CurIndex) = DlgUserFields.GetControl("TextField" & a).Model.Text
 Next a
End Sub


Sub StopMacro()
 DlgUserFields.EndExecute
End Sub


Sub SaveSettings()
Dim n as Integer
Dim m as Integer
Dim MaxIndex as Integer
 ScrollTextFieldInfo(DlgUserFields.Model.ScrollBar1.ScrollValue)
 MaxIndex = Ubound(UserFieldFamily(), 1)
 Dim FileStrings(MaxIndex) as String
 For n = 0 To MaxIndex
  FileStrings(n) = ""
  For m = 0 To SBMAXFIELDINDEX
   FileStrings(n) = FileStrings(n) & UserFieldFamily(n,m) & ";"
  Next m
 Next n
 SaveDataToFile(FilePath, FileStrings(), True)
End Sub


Sub ToggleButtons(ByVal Index as Integer)
Dim i as Integer
 CurFieldIndex = Index
 DlgUserFields.Model.cmdNextUser.Enabled = CurFieldIndex <> Ubound(UserFieldFamily(), 1)
 DlgUserFields.Model.cmdPrevUser.Enabled = CurFieldIndex <> 0
End Sub


Sub InitializeUserFamily()
Dim FirstIndex as Integer
Dim UserFieldstrings() as String
Dim LocStrings() as String
Dim bFileExists as Boolean
Dim n as Integer
Dim m as Integer
 bFileExists = LoadDataFromFile(GetPathSettings("Config", False) & "/" & "UserData.dat", UserFieldStrings())
 If bFileExists Then
  FirstIndex = Ubound(UserFieldStrings())
  ReDim Preserve UserFieldFamily(FirstIndex, SBMAXFIELDINDEX) as String
  For n = 0 To FirstIndex
   LocStrings() = ArrayOutofString(UserFieldStrings(n), ";")
   For m = 0 To SBMAXFIELDINDEX
    UserFieldFamily(n,m) = LocStrings(m)
   Next m
  Next n
 Else
  ReDim Preserve UserFieldFamily(0,SBMAXFIELDINDEX) as String
  For m = 0 To SBMAXFIELDINDEX
   UserFieldFamily(0,m) = oUserDataAccess.GetByName(UserFieldDataType(m,1))
  Next m
 End If
 ToggleButtons(0)
End Sub


Sub AddRecord()
Dim i as Integer
Dim MaxIndex as Integer
 For i = 1 To SBTBCount
  DlgUserFields.GetControl("TextField" & i).Model.Text = ""
 Next i
 MaxIndex = Ubound(UserFieldFamily(),1)
 ReDim Preserve UserFieldFamily(MaxIndex + 1, SBMAXFIELDINDEX) as String
 ToggleButtons(MaxIndex + 1, 1)
End Sub


Sub FillupTextFields()
Dim a as Integer
Dim CurIndex as Integer
 For a = 1 To SBTBCOUNT
  CurIndex = (a-1) + ScrollBarValue
  DlgUserFields.GetControl("Label" & a).Model.Label = UserFieldDataType(CurIndex,0)
  DlgUserFields.GetControl("TextField" & a).Model.Text = UserFieldFamily(CurFieldIndex, CurIndex)
 Next a
End Sub


Sub StepToRecord(aEvent as Object)
Dim iStep as Integer
 iStep = CInt(aEvent.Source.Model.Tag)
 ScrollTextFieldInfo(ScrollBarValue)
 ToggleButtons(CurFieldIndex  + iStep)
 FillUpTextFields()
End Sub


Sub SelectCurrentFields()
Dim MaxIndex as Integer
Dim i as Integer
 ScrollTextFieldInfo(ScrollBarValue)
 MaxIndex = Ubound(UserFieldFamily(),2)
 For i = 0 To MaxIndex
  oUserDataAccess.ReplaceByName(UserFieldDataType(i,1), UserFieldFamily(CurFieldIndex, i))
 Next i
 oUserDataAccess.commitChanges()
End Sub


Sub DeleteCurrentSettings()
Dim n as Integer
Dim m as Integer
Dim MaxIndex as Integer
 MaxIndex = Ubound(UserFieldFamily(),1)
 If CurFieldIndex < MaxIndex Then
  For n = CurFieldIndex To MaxIndex - 1
   For m = 0 To SBMAXFIELDINDEX
    UserFieldFamily(n,m) = UserFieldFamily(n + 1,m)
   Next m
  Next n 
 Else
  CurFieldIndex = MaxIndex - 1
 End If
 ReDim Preserve UserFieldFamily(MaxIndex-1, SBMAXfIELDINDEX) as String
 FillupTextFields()
 ToggleButtons(CurFieldIndex)
End Sub</script:module>

[ Dauer der Verarbeitung: 0.30 Sekunden  (vorverarbeitet)  ]