Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


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.2 Sekunden  (vorverarbeitet)  ]

                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge