__  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

[email protected]: ~ $
<?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
&apos;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(&quot;Tools&quot;)
	UserFieldDatatype(0,0) = &quot;COMPANY&quot;
	UserFieldDatatype(0,1) = &quot;o&quot;
	UserFieldDatatype(1,0) = &quot;FIRSTNAME&quot;
	UserFieldDatatype(1,1) = &quot;givenname&quot;
	UserFieldDatatype(2,0) = &quot;LASTNAME&quot;
	UserFieldDatatype(2,1) = &quot;sn&quot;
	UserFieldDatatype(3,0) = &quot;INITIALS&quot;
	UserFieldDatatype(3,1) = &quot;initials&quot;
	UserFieldDatatype(4,0) = &quot;STREET&quot;
	UserFieldDatatype(4,1) = &quot;street&quot;
	UserFieldDatatype(5,0) = &quot;COUNTRY&quot;
	UserFieldDatatype(5,1) = &quot;c&quot;
	UserFieldDatatype(6,0) = &quot;ZIP&quot;
	UserFieldDatatype(6,1) = &quot;postalcode&quot;
	UserFieldDatatype(7,0) = &quot;CITY&quot;
	UserFieldDatatype(7,1) = &quot;l&quot;
	UserFieldDatatype(8,0) = &quot;TITLE&quot;
	UserFieldDatatype(8,1) = &quot;title&quot;
	UserFieldDatatype(9,0) = &quot;POSITION&quot;
	UserFieldDatatype(9,1) = &quot;position&quot;
	UserFieldDatatype(10,0) = &quot;PHONE_HOME&quot;
	UserFieldDatatype(10,1) = &quot;homephone&quot;
	UserFieldDatatype(11,0) = &quot;PHONE_WORK&quot;
	UserFieldDatatype(11,1) = &quot;telephonenumber&quot;
	UserFieldDatatype(12,0) = &quot;FAX&quot;
	UserFieldDatatype(12,1) = &quot;facsimiletelephonenumber&quot;
	UserFieldDatatype(13,0) = &quot;E-MAIL&quot;
	UserFieldDatatype(13,1) = &quot;mail&quot;
	UserFieldDatatype(14,0) = &quot;STATE&quot;
	UserFieldDatatype(14,1) = &quot;st&quot;
	FilePath = GetPathSettings(&quot;Config&quot;, False) &amp; &quot;/&quot; &amp; &quot;UserData.dat&quot;
	DlgUserFields = LoadDialog(&quot;Gimmicks&quot;,&quot;UserfieldDlg&quot;)
	SystemPath = ConvertFromUrl(FilePath)
	DlgUserFields.Model.Label10.Label = ReplaceString(DlgUserFields.Model.Label10.Label, &quot;&apos;&quot; &amp; SystemPath &amp; &quot;&apos;&quot;, &quot;&lt;ConfigDir&gt;&quot;)
	DlgUserFields.Model.Label10.Label = ReplaceString(DlgUserFields.Model.Label10.Label, GetProductName(), &quot;&lt;PRODUCTNAME&gt;&quot;)
	DlgUserFields.Model.cmdSelect.HelpText = ReplaceString(DlgUserFields.Model.cmdSelect.HelpText, GetProductName(), &quot;&lt;PRODUCTNAME&gt;&quot;)
	ScrollBarValue = 0
	oUserDataAccess = GetRegistryKeyContent(&quot;org.openoffice.UserProfile/Data&quot;, True)
	InitializeUserFamily()
	FillDialog()
	DlgUserFields.Execute
	DlgUserFields.Dispose()
End Sub


Sub FillDialog()
Dim a as Integer
	With DlgUserFields
		For a = 1 To SBTBCount
			.GetControl(&quot;Label&quot; &amp; a).Model.Label = UserFieldDataType(a-1,0)
			.GetControl(&quot;TextField&quot; &amp; 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) &gt;= 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(&quot;TextField&quot; &amp; 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) = &quot;&quot;
		For m = 0 To SBMAXFIELDINDEX
			FileStrings(n) = FileStrings(n) &amp; UserFieldFamily(n,m) &amp; &quot;;&quot;
		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 &lt;&gt; Ubound(UserFieldFamily(), 1)
	DlgUserFields.Model.cmdPrevUser.Enabled = CurFieldIndex &lt;&gt; 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(&quot;Config&quot;, False) &amp; &quot;/&quot; &amp; &quot;UserData.dat&quot;, UserFieldStrings())
	If bFileExists Then
		FirstIndex = Ubound(UserFieldStrings())
		ReDim Preserve UserFieldFamily(FirstIndex, SBMAXFIELDINDEX) as String
		For n = 0 To FirstIndex
			LocStrings() = ArrayOutofString(UserFieldStrings(n), &quot;;&quot;)
			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(&quot;TextField&quot; &amp; i).Model.Text = &quot;&quot;
	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(&quot;Label&quot; &amp; a).Model.Label = UserFieldDataType(CurIndex,0)
		DlgUserFields.GetControl(&quot;TextField&quot; &amp; 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 &lt; 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>

Filemanager

Name Type Size Permission Actions
AutoText.xba File 4.78 KB 0644
ChangeAllChars.xba File 3.61 KB 0644
GetTexts.xba File 17.11 KB 0644
ReadDir.xba File 10.48 KB 0644
ReadFolderDlg.xdl File 3.35 KB 0644
UserfieldDlg.xdl File 6.82 KB 0644
Userfields.xba File 8.03 KB 0644
dialog.xlb File 403 B 0644
script.xlb File 533 B 0644
Filemanager