1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. Code4Fun

Beiträge von Code4Fun

  • Array vorne erweitern

    • Code4Fun
    • 8. Februar 2017 um 19:17

    Hallo Kanashius,

    danke für die schnelle Analyse. Ich glaube ich muss noch ganz viele Hausaufgaben machen. Könntest Du mir bitte mal einen ganz kleinen Codeschnipsel über eine Funktionssyntax hier reinpipen, damit ich das sauber verstehe. Also so in der Art .... es wird von außerhalb der Funktion was an die Funktion übergeben, diese arbeitet dann mit lokalen Variablen intern und das Ergebnis muss ja wieder irgendwie nach außerhalb der Funktion rausgepipt werden.

    Gruß und noch einen schönen Abend

    C4F

  • Array vorne erweitern

    • Code4Fun
    • 8. Februar 2017 um 13:44

    Anhand meiner Beiträge siehst Du ja, das in mir noch ein Autoit Neuling steckt, d.h. ich mache bestimmt sehr viel falsch. Habe das Programmieren auch nie gelernt, sondern mich halt so Step by Step reingelesen und probiert usw.

    Hier also der gewünschte gesamte Code (hoffe dir wird nicht schlecht dabei <X )

    Spoiler anzeigen
    AutoIt
    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_Icon=FindOverAll.ico
    #AutoIt3Wrapper_Outfile=FindOverAll.exe
    #AutoIt3Wrapper_Outfile_x64=FindOverAllx64.exe
    #AutoIt3Wrapper_Compile_Both=y
    #AutoIt3Wrapper_UseX64=y
    #AutoIt3Wrapper_Res_Comment=Das Tool soll alle lokalen Datenbanken nach einem Dokument abfragen und bei einem Treffer die richtigen Antworten anzeigen
    #AutoIt3Wrapper_Res_Fileversion=6.0.0.0
    #AutoIt3Wrapper_Res_SaveSource=y
    #AutoIt3Wrapper_Res_Language=1031
    #AutoIt3Wrapper_AU3Check_Stop_OnWarning=y
    #AutoIt3Wrapper_Run_Tidy=y
    #AutoIt3Wrapper_Run_Au3Stripper=y
    #Au3Stripper_Parameters=/mo /SCI=1
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    #include <Array.au3>
    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <MSSQL.au3>
    #include <UnixTimeMod.au3>
    #include <FileConstants.au3>
    #include <MsgBoxConstants.au3>
    #include <WinAPIFiles.au3>
    #cs ----------------------------------------------------------------------------
    
    
    
    
    	Author:         			Code4Fun
    
    
    	Script Function:			Das Tool soll alle lokalen Datenbanken nach einem Dokument abfragen und bei einem Treffer die richtigen Antworten anzeigen
    
    
    	Startdatum:					18.01.2017
    
    
    	History:
    
    
    	1.0:	Initialerstellung
    	2.0:	Fehlerbehandlung
    	3.0:    Suche nach vorläufiger Nachweisnummer
    	4.0:	Mehrere Dokumente auf einmal zu suchen via Textdatei. Stringbehandlung für Inputfeld (Leerzeichen weg). Buttons wieder via ENTER bedienbar
    	5.0: 	Fehlerbehebung bei Stringanalyse (Minuszeichen für nnA müssen erlaubt sein). Suche auf eanvp (Standart) einschränken um Geschwindigkeit zu steigern. Progressbar angepasst.
    	6.0:	Umbau der HTML Seite auf Wiki Tabelle mit JavaScript
    	open: 7.0:	Abfrage auf "Nachrichten Eingang" und "Nachrichten Ausgang" erweitern (SELECT RECEIVED_MSG_ID, SUBJECT_FORMULAR_NR, SUBJECT_DOC_TYP, * FROM rec_nachricht;)
    
    
    
    
    #ce ----------------------------------------------------------------------------
    
    
    Global $sVersion = "6.0"
    
    
    Global $hGUI
    Global $hGUIBreite = 600
    Global $hGUIHoehe = ((@DesktopHeight / 25) * 5)
    
    
    Global $sqlCon, $IP, $IP2 = "10.10.0.31", $IP1 = "10.10.0.30", $IP3 = "84.200.74.35", $SelectedDatabase, $CreateATTime, $sFileOpenDialog, $file, $tempfile, $aDateiInArray, $sFilePath, $aDateiName, $sDateiName
    
    
    Global $sLabel01, $sLabel02, $sLabel03, $sLabel04, $sLabel05, $sLabel06
    Global $sReturnRadio, $sReturnInput, $aSQLQueryTeilnehmerErgebnis, $sTeilnehmerrolle, $sReturnOutput
    Global $hButton1, $hButton2
    Global $sInput01
    Global $idRadio_1, $idRadio_2, $idRadio_3, $idRadio_4, $idRadio_5, $idRadio_6, $idRadio_7
    Global $idCheckbox01
    Global $idGruppe1
    Global $Zwischenablage
    
    
    Global $PGLeiste ; gesamte Leiste = 100%
    Global $PGAnzahlTeilabschnitte ; Ein Teilabschnitt = 1 Datenbank
    Global $PGGroesseTeilabschnitte ; Anzahl an Arrays pro Datenbank
    Global $PGProzentTeilabschnitt ; Prozentueler Ansatz pro $PGGroesseTeilabschnitt
    Global $PGMeinTeilabschnitt ; Um diesen Wert erhöht sich die Progressbar
    Global $PGUebertrag ;
    
    
    Global $sDatenbanken = "DB01|DB02|DB03|DB04|DB05|DB06|DB07|DB08|DB09|DB10|DB11|DB12|DB13|DB14|DB15|DB16|DB17|DB18|DB19"
    Global $sHTMLfile = FileOpen(@ScriptDir & "\FindOverAll.htm", BitOR(10, 128))
    Global $sInputfile = FileOpen(@ScriptDir & "\input.tab", BitOR(10, 128))
    
    
    Global $LastLoginTime, $datum, $myCounter = "0"
    
    
    FileInstall(".\jsc\jsComponents.js", @ScriptDir & "\jsComponents.js")
    FileInstall(".\jquery.tablesorter\jquery-latest.js", @ScriptDir & "\jquery-latest.js")
    FileInstall(".\jquery.tablesorter\jquery.tablesorter.min.js", @ScriptDir & "\jquery.tablesorter.min.js")
    FileInstall(".\tablefilter\tablefilter.js", @ScriptDir & "\tablefilter.js")
    FileInstall(".\jsc-plugins\jstablecomponents.js", @ScriptDir & "\jstablecomponents.js")
    FileInstall(".\jquery.tablesorter\addons\pager\jquery.tablesorter.pager.js", @ScriptDir & "\jquery.tablesorter.pager.js")
    
    
    FileInstall(".\themes\asc.png", @ScriptDir & "\asc.png")
    FileInstall(".\themes\bg.png", @ScriptDir & "\bg.png")
    FileInstall(".\themes\desc.png", @ScriptDir & "\desc.png")
    FileInstall(".\themes\style.css", @ScriptDir & "\style.css")
    
    
    Opt("TrayAutoPause", 0) ; Script will not be paused when clicking the tray icon.
    Opt("TrayOnEventMode", 1)
    Opt("TrayMenuMode", 1 + 2)
    
    
    
    
    #Region ; GUI erstellen
    $hGUI = GUICreate("Dokumente finden - Version: " & $sVersion, $hGUIBreite, $hGUIHoehe, -1, -1) ; GUI mit Überschrift
    
    
    GUICtrlCreateGroup("Suchkriterium", 50, 0, 115, 65)
    GUIStartGroup()
    $idRadio_4 = GUICtrlCreateRadio("Einzelsuche", 60, 15, 100, 20)
    $idRadio_5 = GUICtrlCreateRadio("Massensuche", 60, 40, 100, 20)
    GUISetState(@SW_SHOW)
    
    
    GUICtrlCreateGroup("Datenbank", 170, 0, 115, 65)
    GUIStartGroup()
    $idRadio_6 = GUICtrlCreateRadio("nur DB08", 180, 15, 100, 20)
    GUICtrlSetState($idRadio_6, $GUI_CHECKED)
    $idRadio_7 = GUICtrlCreateRadio("alle Datenbanken", 180, 40, 100, 20)
    GUISetState(@SW_SHOW)
    
    
    $idGruppe1 = GUICtrlCreateGroup("Dokumentenart", 50, 70, 235, 100)
    GUIStartGroup()
    $idRadio_1 = GUICtrlCreateRadio("Nachweis", 60, 95, 70, 20)
    $idRadio_2 = GUICtrlCreateRadio("Begleitschein", 60, 120, 120, 20)
    $idRadio_3 = GUICtrlCreateRadio("Übernahmeschein", 60, 145, 120, 20)
    
    
    $idCheckbox01 = GUICtrlCreateCheckbox("vorläufige Nummer", 160, 95, 110, 20)
    
    
    $sLabel01 = GUICtrlCreateLabel("Suche", 10, 97)
    $sLabel02 = GUICtrlCreateLabel("Nr.:", 300, 15)
    $sLabel04 = GUICtrlCreateLabel("1.) Bitte eine Dokumentenart auswählen" & @CRLF & "2.) Auf Schaltfläche 'Datei durchsuchen' klicken" & @CRLF & "3.) Textdatei auswählen" & @CRLF & @CRLF & "In der Textdatei müssen die gesuchten Nummern" & @CRLF & "alle untereinander stehen - ohne , oder ;" & @CRLF, 300, 10, 290, 79)
    $sLabel05 = GUICtrlCreateLabel("gewählte Datei: ", 300, 120, 290, 30)
    $sLabel06 = GUICtrlCreateLabel("Gefundene Datensätze bei ", 10, 195, $hGUIBreite, 13)
    
    
    $sInput01 = GUICtrlCreateInput("", 330, 15, 120, 20)
    
    
    $hButton1 = GUICtrlCreateButton("Einzelsuche starten", 460, 15, 120, 22, BitOR($GUI_SS_DEFAULT_BUTTON, $BS_DEFPUSHBUTTON))
    $hButton2 = GUICtrlCreateButton("Datei durchsuchen", 370, 95, 120, 22, BitOR($GUI_SS_DEFAULT_BUTTON, $BS_DEFPUSHBUTTON))
    
    
    $PGLeiste = GUICtrlCreateProgress(0, 190, $hGUIBreite, 3)
    GUICtrlSetColor(-1, 32250) ; not working with Windows XP Style
    
    
    GUICtrlSetState($idGruppe1, $GUI_HIDE)
    
    
    GUICtrlSetState($idRadio_1, $GUI_HIDE)
    GUICtrlSetState($idRadio_2, $GUI_HIDE)
    GUICtrlSetState($idRadio_3, $GUI_HIDE)
    
    
    GUICtrlSetState($idCheckbox01, $GUI_HIDE)
    
    
    GUICtrlSetState($sLabel01, $GUI_HIDE)
    GUICtrlSetState($sLabel02, $GUI_HIDE)
    GUICtrlSetState($sLabel03, $GUI_HIDE)
    GUICtrlSetState($sLabel04, $GUI_HIDE)
    GUICtrlSetState($sLabel05, $GUI_HIDE)
    GUICtrlSetState($sLabel06, $GUI_SHOW)
    
    
    GUICtrlSetState($sInput01, $GUI_HIDE)
    
    
    GUICtrlSetState($hButton1, $GUI_HIDE)
    GUICtrlSetState($hButton2, $GUI_HIDE)
    GUICtrlSetState($hButton2, $GUI_DISABLE)
    
    
    GUISetState(@SW_SHOW)
    #EndRegion ; GUI erstellen
    
    
    While 1
    	$msg = GUIGetMsg()
    	Switch $msg
    		Case $GUI_EVENT_CLOSE
    			_MSSQL_End($sqlCon)
    			GUIDelete()
    			Exit
    
    
    		Case $hButton1 ; Einzelsuche
    			GUICtrlSetState($sLabel03, $GUI_SHOW) ; Label AKTUELLE DB aktivieren
    			GUICtrlSetState($sLabel06, $GUI_SHOW) ; Datensätze pro DB Array anzeigen
    			GUISetState(@SW_SHOW)
    			_RadioButtonAuslesen()
    			If _InputAuslesen() = 1 Then
    				_HTMLbauen()
    				_DBAbfragen()
    			Else
    				_GuiReset()
    			EndIf
    
    
    		Case $hButton2 ; Massensuche
    			_RadioButtonAuslesen()
    			_Dateisuche()
    			GUICtrlSetData($sLabel05, "ausgewählt Textdatei: " & $sDateiName)
    			GUICtrlSetState($sLabel05, $GUI_SHOW)
    			GUICtrlSetState($sLabel03, $GUI_SHOW) ; Label AKTUELLE DB aktivieren
    			GUICtrlSetState($sLabel06, $GUI_SHOW) ; Datensätze pro DB Array anzeigen
    			GUISetState(@SW_SHOW)
    			_HTMLbauen()
    			_DBAbfragen()
    
    
    		Case $idRadio_1
    			If GUICtrlRead($idRadio_5) = 1 Then ; Massensuche ist aktiviert
    				GUICtrlSetState($idCheckbox01, $GUI_HIDE) ; Checkbox VORLÄUFIGE NUMMER deaktivieren
    				GUICtrlSetState($sLabel01, $GUI_SHOW) ; Label SUCHE aktivieren
    				GUICtrlSetState($sLabel02, $GUI_HIDE) ; Label NR aktivieren.
    				GUICtrlSetState($sLabel03, $GUI_HIDE) ; Label AKTUELLE DB deaktivieren
    				GUICtrlSetState($sInput01, $GUI_HIDE) ; Eingabefeld aktivieren
    				GUICtrlSetState($sInput01, $GUI_DISABLE) ; Eingabefeld für EINZELSUCHE beschreibbar machen
    				GUICtrlSetState($hButton1, $GUI_HIDE) ; Schaltfläche EINZELSUCHE aktivieren
    				GUICtrlSetState($hButton2, $GUI_ENABLE + $GUI_DEFBUTTON) ; Schaltfläche DATEN DURCHSUCHEN aktivieren
    			Else
    				GUICtrlSetState($idCheckbox01, $GUI_SHOW) ; Checkbox VORLÄUFIGE NUMMER aktivieren
    				GUICtrlSetState($sLabel01, $GUI_SHOW) ; Label SUCHE aktivieren
    				GUICtrlSetState($sLabel02, $GUI_SHOW) ; Label NR aktivieren.
    				GUICtrlSetState($sLabel03, $GUI_HIDE) ; Label AKTUELLE DB deaktivieren
    				GUICtrlSetState($sInput01, $GUI_SHOW) ; Eingabefeld aktivieren
    				GUICtrlSetState($sInput01, $GUI_ENABLE) ; Eingabefeld für EINZELSUCHE beschreibbar machen
    				GUICtrlSetState($hButton1, $GUI_SHOW + $GUI_DEFBUTTON) ; Schaltfläche EINZELSUCHE aktivieren
    				GUICtrlSetState($hButton2, $GUI_HIDE) ; Schaltfläche DATEN DURCHSUCHEN deaktivieren
    			EndIf
    			GUISetState(@SW_SHOW)
    
    
    		Case $idRadio_2
    			If GUICtrlRead($idRadio_5) = 1 Then
    				GUICtrlSetState($idCheckbox01, $GUI_HIDE) ; Checkbox VORLÄUFIGE NUMMER deaktivieren
    				GUICtrlSetState($sLabel01, $GUI_SHOW) ; Label SUCHE aktivieren
    				GUICtrlSetState($sLabel02, $GUI_HIDE) ; Label NR aktivieren.
    				GUICtrlSetState($sLabel03, $GUI_HIDE) ; Label AKTUELLE DB deaktivieren
    				GUICtrlSetState($sInput01, $GUI_HIDE) ; Eingabefeld aktivieren
    				GUICtrlSetState($sInput01, $GUI_DISABLE) ; Eingabefeld für EINZELSUCHE beschreibbar machen
    				GUICtrlSetState($hButton1, $GUI_HIDE) ; Schaltfläche EINZELSUCHE aktivieren
    				GUICtrlSetState($hButton2, $GUI_ENABLE + $GUI_DEFBUTTON) ; Schaltfläche DATEN DURCHSUCHEN aktivieren
    			Else
    				GUICtrlSetState($idCheckbox01, $GUI_HIDE) ; Checkbox VORLÄUFIGE NUMMER aktivieren
    				GUICtrlSetState($sLabel01, $GUI_SHOW) ; Label SUCHE aktivieren
    				GUICtrlSetState($sLabel02, $GUI_SHOW) ; Label NR aktivieren.
    				GUICtrlSetState($sLabel03, $GUI_HIDE) ; Label AKTUELLE DB deaktivieren
    				GUICtrlSetState($sInput01, $GUI_SHOW) ; Eingabefeld aktivieren
    				GUICtrlSetState($sInput01, $GUI_ENABLE) ; Eingabefeld für EINZELSUCHE beschreibbar machen
    				GUICtrlSetState($hButton1, $GUI_SHOW + $GUI_DEFBUTTON) ; Schaltfläche EINZELSUCHE aktivieren
    				GUICtrlSetState($hButton2, $GUI_HIDE) ; Schaltfläche DATEN DURCHSUCHEN deaktivieren
    			EndIf
    			GUISetState(@SW_SHOW)
    
    
    		Case $idRadio_3
    			If GUICtrlRead($idRadio_5) = 1 Then
    				GUICtrlSetState($idCheckbox01, $GUI_HIDE) ; Checkbox VORLÄUFIGE NUMMER deaktivieren
    				GUICtrlSetState($sLabel01, $GUI_SHOW) ; Label SUCHE aktivieren
    				GUICtrlSetState($sLabel02, $GUI_HIDE) ; Label NR aktivieren.
    				GUICtrlSetState($sLabel03, $GUI_HIDE) ; Label AKTUELLE DB deaktivieren
    				GUICtrlSetState($sInput01, $GUI_HIDE) ; Eingabefeld aktivieren
    				GUICtrlSetState($sInput01, $GUI_DISABLE) ; Eingabefeld für EINZELSUCHE beschreibbar machen
    				GUICtrlSetState($hButton1, $GUI_HIDE) ; Schaltfläche EINZELSUCHE aktivieren
    				GUICtrlSetState($hButton2, $GUI_ENABLE + $GUI_DEFBUTTON) ; Schaltfläche DATEN DURCHSUCHEN aktivieren
    			Else
    				GUICtrlSetState($idCheckbox01, $GUI_HIDE) ; Checkbox VORLÄUFIGE NUMMER aktivieren
    				GUICtrlSetState($sLabel01, $GUI_SHOW) ; Label SUCHE aktivieren
    				GUICtrlSetState($sLabel02, $GUI_SHOW) ; Label NR aktivieren.
    				GUICtrlSetState($sLabel03, $GUI_HIDE) ; Label AKTUELLE DB deaktivieren
    				GUICtrlSetState($sInput01, $GUI_SHOW) ; Eingabefeld aktivieren
    				GUICtrlSetState($sInput01, $GUI_ENABLE) ; Eingabefeld für EINZELSUCHE beschreibbar machen
    				GUICtrlSetState($hButton1, $GUI_SHOW + $GUI_DEFBUTTON) ; Schaltfläche EINZELSUCHE aktivieren
    				GUICtrlSetState($hButton2, $GUI_HIDE) ; Schaltfläche DATEN DURCHSUCHEN deaktivieren
    			EndIf
    			GUISetState(@SW_SHOW)
    
    
    		Case $idRadio_4 ; Einzelsuche wurde ausgewählt
    			GUICtrlSetState($idGruppe1, $GUI_SHOW) ; Gruppe Dokumentenart aktivieren
    
    
    			GUICtrlSetState($idRadio_1, $GUI_SHOW + $GUI_UNCHECKED) ; Radio Button Nachweis aktivieren
    			GUICtrlSetState($idRadio_2, $GUI_SHOW + $GUI_UNCHECKED) ; Radio Button Begleitschein aktivieren
    			GUICtrlSetState($idRadio_3, $GUI_SHOW + $GUI_UNCHECKED) ; Radio Button Übernahmeschein aktivieren
    			GUICtrlSetState($idCheckbox01, $GUI_HIDE) ; Checkbox VORLÄUFIGE NUMMER deaktivieren
    			GUICtrlSetState($sLabel01, $GUI_SHOW + $GUI_UNCHECKED) ; Label SUCHE aktivieren
    			GUICtrlSetState($sLabel02, $GUI_HIDE) ; Label NR aktivieren.
    			GUICtrlSetState($sLabel03, $GUI_HIDE) ; Label AKTUELLE DB deaktivieren
    			GUICtrlSetState($sLabel04, $GUI_HIDE)
    			GUICtrlSetState($sLabel05, $GUI_HIDE)
    			GUICtrlSetState($sInput01, $GUI_HIDE) ; Eingabefeld aktivieren
    			GUICtrlSetState($sInput01, $GUI_DISABLE) ; ... aber schreibgeschützt
    			GUICtrlSetState($hButton1, $GUI_HIDE) ; Schaltfläche EINZELSUCHE aktivieren
    			GUICtrlSetState($hButton2, $GUI_HIDE) ; Schaltfläche DATEN DURCHSUCHEN deaktivieren
    			GUISetState(@SW_SHOW)
    
    
    		Case $idRadio_5 ; Massensuche wurde gewählt
    			GUICtrlSetState($idGruppe1, $GUI_SHOW) ; Gruppe Dokumentenart aktivieren
    			GUICtrlSetState($idRadio_1, $GUI_SHOW + $GUI_UNCHECKED) ; Radio Button Nachweis aktivieren
    			GUICtrlSetState($idRadio_2, $GUI_SHOW + $GUI_UNCHECKED) ; Radio Button Begleitschein aktivieren
    			GUICtrlSetState($idRadio_3, $GUI_SHOW + $GUI_UNCHECKED) ; Radio Button Übernahmeschein aktivieren
    			GUICtrlSetState($idCheckbox01, $GUI_HIDE) ; Checkbox deaktivieren (macht nicht Sinn, nach vorläufigen Nummern im Batch zu suchen.
    			GUICtrlSetState($sLabel01, $GUI_SHOW) ; Label SUCHE aktivieren
    			GUICtrlSetState($sLabel02, $GUI_HIDE) ; Label NR aktivieren.
    			GUICtrlSetState($sLabel03, $GUI_HIDE) ; Label AKTUELLE DB deaktivieren
    			GUICtrlSetState($sLabel04, $GUI_SHOW) ; Label Beschreibungstext aktivieren
    			GUICtrlSetState($sInput01, $GUI_HIDE) ; Eingabefeld aktivieren
    			GUICtrlSetState($sInput01, $GUI_DISABLE) ; ... aber schreibgeschützt
    			GUICtrlSetState($hButton1, $GUI_HIDE) ; Schaltfläche EINZELSUCHE aktivieren
    			GUICtrlSetState($hButton2, $GUI_SHOW) ; Schaltfläche DATEN DURCHSUCHEN aktivieren
    			GUICtrlSetState($hButton2, $GUI_DISABLE) ; Schaltfläche DATEN DURCHSUCHEN aktivieren
    			GUISetState(@SW_SHOW)
    
    
    	EndSwitch
    WEnd
    
    
    Func _RadioButtonAuslesen()
    	If GUICtrlRead($idRadio_1) = 1 Then
    		$sReturnRadio = 'Nachweis'
    	EndIf
    
    
    	If GUICtrlRead($idRadio_2) = 1 Then
    		$sReturnRadio = 'Begleitschein'
    	EndIf
    
    
    	If GUICtrlRead($idRadio_3) = 1 Then
    		$sReturnRadio = 'Übernahmeschein'
    	EndIf
    EndFunc   ;==>_RadioButtonAuslesen
    
    
    Func _Dateisuche()
    	; Überschrift
    	Local Const $sMessage = "Bitte Textdatei für Batchsuche auswählen."
    
    
    	; Display an open dialog to select a file.
    	$sFileOpenDialog = FileOpenDialog($sMessage, @ScriptDir & "\", "Textdatei (*.txt)", $FD_FILEMUSTEXIST)
    	If @error Then
    		; Display the error message.
    		MsgBox($MB_SYSTEMMODAL, "", "Keine Datei ausgewählt.")
    
    
    		; Change the working directory (@WorkingDir) back to the location of the script directory as FileOpenDialog sets it to the last accessed folder.
    		FileChangeDir(@ScriptDir)
    	Else
    		; Change the working directory (@WorkingDir) back to the location of the script directory as FileOpenDialog sets it to the last accessed folder.
    		FileChangeDir(@ScriptDir)
    
    
    		; Replace instances of "|" with @CRLF in the string returned by FileOpenDialog.
    		$sFileOpenDialog = StringReplace($sFileOpenDialog, "|", @CRLF)
    		$aDateiName = StringSplit($sFileOpenDialog, "\")
    ;~ 		_ArrayDisplay($aDateiName, "")
    
    
    		For $i = $aDateiName[0] To $aDateiName[0]
    			$sDateiName = $aDateiName[$i]
    ;~ 			ConsoleWrite("Dateiname ist " & $sDateiName & @CRLF)
    		Next
    
    
    		Return $sFileOpenDialog
    		Return $sDateiName
    
    
    		; Display the selected file.
    ;~ 		MsgBox($MB_SYSTEMMODAL, "", "Folgende Datei wurde ausgewählt:" & @CRLF & $sFileOpenDialog)
    	EndIf
    EndFunc   ;==>_Dateisuche
    
    
    Func _InputAuslesen()
    	$sReturnInput = GUICtrlRead($sInput01)
    	$sReturnOutput = StringStripWS($sReturnInput, $STR_STRIPALL)
    	ClipPut($sReturnOutput)
    	$Zwischenablage = $sReturnOutput
    	GUICtrlSetData($sInput01, $sReturnOutput)
    	GUISetState(@SW_SHOW)
    
    
    	Local $iInputLaenge = StringLen($sReturnOutput)
    
    
    	If $sReturnRadio = 'Übernahmeschein' Then
    		If StringIsDigit($sReturnOutput) = 1 Then
    ;~ 			MsgBox(0, "Zahl", $sReturnInput & " ist eine Zahl")
    			Return 1 ;Erfolgreich
    		Else
    			Local $iResponse = MsgBox(16, "Fehler", $sReturnOutput & " ist keine Zahl")
    			Return 0 ;Fehler
    ;~ 			Exit Run(@ScriptFullPath)
    		EndIf
    
    
    		If $iInputLaenge > "14" Then
    			Local $iResponse = MsgBox(16, "Falsche Eingabe", "Die eingegebene UNS Nummer hat " & $iInputLaenge & " Zahlen!" & @CRLF & "Es sind maximal 14 Zahlen erlaubt.!")
    			Return 0 ;Fehler
    ;~ 			Exit Run(@ScriptFullPath)
    		EndIf
    	EndIf
    
    
    	If $sReturnRadio = 'Begleitschein' Then
    		If StringIsDigit($sReturnOutput) = 1 Then
    ;~ 			MsgBox(0, "Zahl", $sReturnInput & " ist eine Zahl")
    			Return 1 ; Erfolgreich
    		Else
    			Local $iResponse = MsgBox(16, "Fehler", $sReturnOutput & " ist keine Zahl")
    			Return 0 ;Fehler
    ;~ 			Exit Run(@ScriptFullPath)
    		EndIf
    
    
    		If $iInputLaenge > "14" Then
    			Local $iResponse = MsgBox(16, "Falsche Eingabe", "Die eingegebene BGS Nummer hat " & $iInputLaenge & " Zahlen!" & @CRLF & "Es sind maximal 14 Zahlen erlaubt.!")
    			Return 0 ;Fehler
    			Exit Run(@ScriptFullPath)
    		EndIf
    	EndIf
    
    
    	If $sReturnRadio = 'Nachweis' Then
    		If GUICtrlRead($idCheckbox01) = 4 Then ; Checkbox ist nicht aktiv, d.h. Suche nach Nachweisnummer
    			If StringRegExp($sReturnOutput, "^[0-9a-zA-ZöäüÖÄÜ-]+$") Then
    ;~ 			If StringIsAlNum($sReturnOutput) Then
    ;~ 			MsgBox($MB_SYSTEMMODAL, "", "Gut")
    				Return 1 ; Erfolgreich
    			Else
    				Local $iResponse = MsgBox(16, "Falsche Eingabe", "Die eingegebene Nachweis Nummer " & $sReturnOutput & " enthält nicht zugelassene Zeichen!")
    				Return 0 ;Fehler
    ;~ 			Exit Run(@ScriptFullPath)
    			EndIf
    		EndIf
    
    
    		If $iInputLaenge > "12" Then
    			Local $iResponse = MsgBox(16, "Falsche Eingabe", "Die eingegebene Nachweis Nummer hat " & $iInputLaenge & " Zeichen!" & @CRLF & "Es sind maximal 12 Zeichen erlaubt.!")
    			Return 0 ;Fehler
    ;~ 			Exit Run(@ScriptFullPath)
    		EndIf
    	Else
    		Return 1 ; Erfolgreich
    	EndIf
    
    
    EndFunc   ;==>_InputAuslesen
    
    
    Func _GuiReset()
    	GUICtrlSetState($idRadio_1, 4)
    	GUICtrlSetState($idRadio_2, 4)
    	GUICtrlSetState($idRadio_3, 4)
    	GUICtrlSetData($sInput01, "")
    EndFunc   ;==>_GuiReset
    
    
    Func _HTMLbauen()
    	FileWriteLine($sHTMLfile, '<!DOCTYPE html">')
    	FileWriteLine($sHTMLfile, '<html>')
    	FileWriteLine($sHTMLfile, '<head>')
    	FileWriteLine($sHTMLfile, '<meta charset="UTF-8" /">') ; wenn aktiv, werden Umlaute nicht sauber dargestellt
    	FileWriteLine($sHTMLfile, '<title>Dokumente</title>') ; Titel im Tabulator
    	FileWriteLine($sHTMLfile, '<link  href="style.css" type="text/css" media="print, projection, screen" />') ; Javascript wird eingebunden
    	FileWriteLine($sHTMLfile, '<script type="text/javascript" src="jsComponents.js"> </script>') ; Javascript wird eingebunden
    	FileWriteLine($sHTMLfile, '<script type="text/javascript" src="jquery-latest.js"> </script>') ; Javascript wird eingebunden
    	FileWriteLine($sHTMLfile, '<script type="text/javascript" src="jquery.tablesorter.min.js"> </script>') ; Javascript wird eingebunden
    	FileWriteLine($sHTMLfile, '<script type="text/javascript" src="tablefilter.js"> </script>') ; Javascript wird eingebunden
    	FileWriteLine($sHTMLfile, '<script type="text/javascript" src="jstablecomponents.js"> </script>') ; Javascript wird eingebunden
    	FileWriteLine($sHTMLfile, '<script type="text/javascript" src="jquery.tablesorter.pager.js"> </script>') ; Javascript wird eingebunden
    	FileWriteLine($sHTMLfile, '</head>')
    	FileWriteLine($sHTMLfile, '<body>')
    
    
    	If $sReturnRadio = 'Nachweis' Then ; wenn Nachweis, fülle die Datei input.tab
    		If GUICtrlRead($idCheckbox01) = 1 Then ; Checkbox ist aktiv, d.h. Suche nach vorläufiger Nachweisnummer
    			FileWriteLine($sHTMLfile, '<h1 style="text-align: center;"   ><strong>Ergebnis der Nachweissuche (vorläufige Nachweisnummer)nach dem Begriff: ' & $Zwischenablage & '</strong></h1>')
    		EndIf
    		If GUICtrlRead($idCheckbox01) = 4 Then ; Checkbox ist nicht aktiv, d.h. Suche nach Nachweisnummer
    			If GUICtrlRead($idRadio_5) = 1 Then ; Massensuche ist aktiviert
    				FileWriteLine($sHTMLfile, '<h1 style="text-align: center;"><strong>Ergebnis der Nachweissuche (Massensuche)nach dem Begriff: ' & $Zwischenablage & '</strong></h1>')
    			Else ; Einzelsuche
    				FileWriteLine($sHTMLfile, '<h1 style="text-align: center;"><strong>Ergebnis der Nachweissuche nach dem Begriff: ' & $Zwischenablage & '</strong></h1>')
    			EndIf
    		EndIf
    		_WriteJSCode()
    		FileWrite($sInputfile, 'NR' & @TAB) ; Tab 1 = automatische Durchnummerierung (nicht im Array drin)
    		FileWrite($sInputfile, 'DB' & @TAB) ; Tab 2 = gewählte Datenbank (nicht im Array drin)
    		FileWrite($sInputfile, 'ID' & @TAB) ; Tab 3 = ID Array Col0
    		If GUICtrlRead($idCheckbox01) = 1 Then ; Checkbox ist aktiv, d.h. Suche nach vorläufiger Nachweisnummer
    			FileWrite($sInputfile, 'vorl. Nr.' & @TAB) ;
    		EndIf
    		FileWrite($sInputfile, 'EN-SN NR' & @TAB)
    		FileWrite($sInputfile, 'TYPE' & @TAB)
    		FileWrite($sInputfile, 'RELEVANT' & @TAB)
    		FileWrite($sInputfile, 'Gültig von' & @TAB)
    		FileWrite($sInputfile, 'Gültig bis' & @TAB)
    		FileWrite($sInputfile, 'Menge Max.' & @TAB)
    		FileWrite($sInputfile, 'Menge Akt.' & @TAB)
    		FileWrite($sInputfile, 'AVV' & @TAB)
    		FileWrite($sInputfile, 'Teilnehmer NR' & @TAB)
    		FileWrite($sInputfile, 'Teilnehmer Rolle' & @TAB)
    		FileWrite($sInputfile, 'Bearbeitungsstatus' & @TAB)
    		FileWrite($sInputfile, 'Dokumentenstatus' & @TAB)
    		FileWrite($sInputfile, 'Formularstatus (vorher)' & @TAB)
    		FileWrite($sInputfile, 'Layer (nachher)' & @CRLF) ; 17 (oder 18 bei vorläufiger Nummer)
    	EndIf ;==>_HTMLbauen
    
    
    	If $sReturnRadio = 'Begleitschein' Then
    		If GUICtrlRead($idRadio_5) = 1 Then ; Massensuche ist aktiviert
    			FileWriteLine($sHTMLfile, '<h1 style="text-align: center;"><strong>Ergebnis der Begleitscheinsuche (Massensuche)nach dem Begriff: ' & $Zwischenablage & '</strong></h1>')
    		Else ; Einzelsuche
    			FileWriteLine($sHTMLfile, '<h1 style="text-align: center;"><strong>Ergebnis der Begleitscheinsuche nach dem Begriff: ' & $Zwischenablage & '</strong></h1>')
    		EndIf
    		_WriteJSCode()
    		FileWrite($sInputfile, 'NR' & @TAB) ; Tab 1
    		FileWrite($sInputfile, 'DB' & @TAB) ; Tab 2
    		FileWrite($sInputfile, 'BGS ID' & @TAB) ; Tab 3
    		FileWrite($sInputfile, 'BGS NR' & @TAB) ; Tab 4
    		FileWrite($sInputfile, 'Bearbeitungsstatus' & @TAB) ; Tab 5
    		FileWrite($sInputfile, 'Layer' & @TAB) ; Tab 6
    		FileWrite($sInputfile, 'Teilnehmer NR' & @TAB) ; Tab 7
    		FileWrite($sInputfile, 'Teilnehmer Rolle' & @TAB) ; Tab 8
    		FileWrite($sInputfile, 'Relevant' & @TAB) ; Tab 9
    		FileWrite($sInputfile, 'Storniert' & @CRLF) ; Tab 10
    		;FileWrite($sInputfile, 'Portal URL' & @TAB & @CRLF) ; Tab 11
    	EndIf
    
    
    	If $sReturnRadio = 'Übernahmeschein' Then
    		;FileWriteLine($sHTMLfile, '<body>')
    		If GUICtrlRead($idRadio_5) = 1 Then ; Massensuche ist aktiviert
    			FileWriteLine($sHTMLfile, '<h1 style="text-align: center;"><strong>Ergebnis der Übernahmescheinsuche (Massensuche)nach dem Begriff: ' & $Zwischenablage & '</strong></h1>')
    		Else ; Einzelsuche
    			FileWriteLine($sHTMLfile, '<h1 style="text-align: center;"><strong>Ergebnis der Übernahmescheinsuche nach dem Begriff: ' & $Zwischenablage & '</strong></h1>')
    		EndIf
    		_WriteJSCode()
    		FileWrite($sInputfile, 'NR' & @TAB) ; Tab 1
    		FileWrite($sInputfile, 'DB' & @TAB) ; Tab 2
    		FileWrite($sInputfile, 'UNS ID' & @TAB) ; Tab 3
    		FileWrite($sInputfile, 'UNS NR' & @TAB) ; Tab 4
    		FileWrite($sInputfile, 'BGS NR' & @TAB) ; Tab 5
    		FileWrite($sInputfile, 'Relevant' & @TAB) ; Tab 6
    		FileWrite($sInputfile, 'Menge' & @TAB) ; Tab 7
    		FileWrite($sInputfile, 'Teilnehmer NR' & @TAB) ; Tab 8
    		FileWrite($sInputfile, 'Teilnehmer Rolle' & @TAB) ; Tab 9
    		FileWrite($sInputfile, 'Layer' & @TAB) ; Tab 10
    		FileWrite($sInputfile, 'Bearbeitungsstatus' & @TAB) ; Tab 11
    		FileWrite($sInputfile, 'Dokumentenstatus' & @TAB) ; Tab 12
    		FileWrite($sInputfile, 'Formularstatus' & @CRLF) ; Tab 13
    	EndIf
    EndFunc   ;==>_HTMLbauen
    
    
    Func _DBAbfragen()
    	_DBArray()
    EndFunc   ;==>_DBAbfragen
    
    
    Func _DBArray()
    	If GUICtrlRead($idRadio_6) = 1 Then ; Datenbank nur auf DB08 einschränken
    		$PGAnzahlTeilabschnitte = "1"
    		_DBConnect("DB08")
    	Else
    		Local $arDatenbanken = StringSplit($sDatenbanken, "|")
    		If $arDatenbanken[0] = 1 Then ; Wenn String nicht gesplittet wurde (Seperator nicht enthalten, String leer), dann Fehler
    			MsgBox(0, 'Achtung', 'Keine Datenbank gefunden')
    		Else
    			$PGAnzahlTeilabschnitte = $arDatenbanken[0]
    			;$PGGroesseTeilabschnitte
    			;$idProgressbarGesamtBlock = 100 / $arDatenbanken[0] ; Hier wird ermittelt, wie groß ein Block der Progressbar ist. Bei 19 Datenbanken: 100% geteilt durch 19 Datenbanken = 5,26
    			For $i = 1 To UBound($arDatenbanken) - 1 ; Hier könnte man auch $arDatenbanken[0] statt UBound($arDatenbanken) -1 verwenden, da die Anzahl dort geführt wird
    				_DBConnect($arDatenbanken[$i])
    			Next
    		EndIf
    	EndIf
    	FileWriteLine($sHTMLfile, '<!-- END CODE -->')
    	FileWriteLine($sHTMLfile, '</body>')
    	FileWriteLine($sHTMLfile, '</html>')
    	FileClose($sHTMLfile)
    	FileClose($sInputfile)
    	Sleep(1000)
    	Local $sDefaultBrowser = RegRead("HKEY_CLASSES_ROOT\http\shell\open\command", "")
    	Local $aTrimBrowser = StringSplit($sDefaultBrowser, '-')
    	Run($aTrimBrowser[1] & ' "' & @ScriptDir & '\FindOverAll.htm"', "", @SW_MAXIMIZE) ; starten Firefox und öffnet die HTML Seite
    	GUIDelete()
    	Exit
    
    
    EndFunc   ;==>_DBArray
    
    
    Func _DBConnect($Case) ; Je nach Fall (Case), wird die Funktion unterschiedlich bestückt
    	If $Case = "DB01" Then ; DB01
    		$SelectedDatabase = "DB01"
    		$DBSelection = _DatabaseSelection($SelectedDatabase) ; Datenbankverbindung wird aufgebaut
    	EndIf
    	If $Case = "DB02" Then ; DB02
    		$SelectedDatabase = "DB02"
    		$DBSelection = _DatabaseSelection($SelectedDatabase) ; Datenbankverbindung wird aufgebaut
    	EndIf
    	If $Case = "DB03" Then ; DB03
    		$SelectedDatabase = "DB03"
    		$DBSelection = _DatabaseSelection($SelectedDatabase) ; Datenbankverbindung wird aufgebaut
    	EndIf
    	If $Case = "DB04" Then ; DB04
    		$SelectedDatabase = "DB04"
    		$DBSelection = _DatabaseSelection($SelectedDatabase) ; Datenbankverbindung wird aufgebaut
    	EndIf
    	If $Case = "DB05" Then ; DB05
    		$SelectedDatabase = "DB05"
    		$DBSelection = _DatabaseSelection($SelectedDatabase) ; Datenbankverbindung wird aufgebaut
    	EndIf
    	If $Case = "DB06" Then ; DB06
    		$SelectedDatabase = "DB06"
    		$DBSelection = _DatabaseSelection($SelectedDatabase) ; Datenbankverbindung wird aufgebaut
    	EndIf
    	If $Case = "DB07" Then ; DB07
    		$SelectedDatabase = "DB07"
    		$DBSelection = _DatabaseSelection($SelectedDatabase) ; Datenbankverbindung wird aufgebaut
    	EndIf
    	If $Case = "DB08" Then ; DB08
    		$SelectedDatabase = "DB08"
    		$DBSelection = _DatabaseSelection($SelectedDatabase) ; Datenbankverbindung wird aufgebaut
    	EndIf
    	If $Case = "DB09" Then ; DB09
    		$SelectedDatabase = "DB09"
    		$DBSelection = _DatabaseSelection($SelectedDatabase) ; Datenbankverbindung wird aufgebaut
    	EndIf
    	If $Case = "DB10" Then ; DB10
    		$SelectedDatabase = "DB10"
    		$DBSelection = _DatabaseSelection($SelectedDatabase) ; Datenbankverbindung wird aufgebaut
    	EndIf
    	If $Case = "DB11" Then ; DB11
    		$SelectedDatabase = "DB11"
    		$DBSelection = _DatabaseSelection($SelectedDatabase) ; Datenbankverbindung wird aufgebaut
    	EndIf
    	If $Case = "DB12" Then ; DB12
    		$SelectedDatabase = "DB12"
    		$DBSelection = _DatabaseSelection($SelectedDatabase) ; Datenbankverbindung wird aufgebaut
    	EndIf
    	If $Case = "DB13" Then ; DB13
    		$SelectedDatabase = "DB13"
    		$DBSelection = _DatabaseSelection($SelectedDatabase) ; Datenbankverbindung wird aufgebaut
    	EndIf
    	If $Case = "DB14" Then ; DB14
    		$SelectedDatabase = "DB14"
    		$DBSelection = _DatabaseSelection($SelectedDatabase) ; Datenbankverbindung wird aufgebaut
    	EndIf
    	If $Case = "DB15" Then ; DB15
    		$SelectedDatabase = "DB15"
    		$DBSelection = _DatabaseSelection($SelectedDatabase) ; Datenbankverbindung wird aufgebaut
    	EndIf
    	If $Case = "DB16" Then ; DB16
    		$SelectedDatabase = "DB16"
    		$DBSelection = _DatabaseSelection($SelectedDatabase) ; Datenbankverbindung wird aufgebaut
    	EndIf
    	If $Case = "DB17" Then ; DB17
    		$SelectedDatabase = "DB17"
    		$DBSelection = _DatabaseSelection($SelectedDatabase) ; Datenbankverbindung wird aufgebaut
    	EndIf
    	If $Case = "DB18" Then ; DB18
    		$SelectedDatabase = "DB18"
    		$DBSelection = _DatabaseSelection($SelectedDatabase) ; Datenbankverbindung wird aufgebaut
    	EndIf
    	If $Case = "DB19" Then ; DB19
    		$SelectedDatabase = "DB19"
    		$DBSelection = _DatabaseSelection($SelectedDatabase) ; Datenbankverbindung wird aufgebaut
    	EndIf
    	GUICtrlSetData($sLabel03, "aktuelle DB: " & $SelectedDatabase)
    	GUISetState()
    EndFunc   ;==>_DBConnect
    
    
    Func _DatabaseSelection($SelectedDatabase) ; Zugangsdaten für Datenbank suchen
    	Local $Password = "***"; hier steht normal das richtige Passwort :-)
    
    
    	If GUICtrlRead($idRadio_6) = 1 Then ; Datenbank nur auf DB08 einschränken
    		$URL = "https://intranet/db08/"
    		$IP = $IP2
    		$DB = "db08"
    		$sqlCon = _MSSQL_Con($IP, $DB, $Password, $DB) ; IP, User, PW, DB
    	Else
    		If $SelectedDatabase = "DB01" Then
    			$URL = "https://intranet/db01/"
    			$IP = $IP1
    			$DB = $SelectedDatabase
    			$sqlCon = _MSSQL_Con($IP, $DB, $Password, $DB) ; IP, User, PW, DB
    		EndIf
    		If $SelectedDatabase = "DB02" Then
    			$URL = "https://intranet/db02/"
    			$IP = $IP2
    			$DB = $SelectedDatabase
    			$sqlCon = _MSSQL_Con($IP, $DB, $Password, $DB) ; IP, User, PW, DB
    		EndIf
    		If $SelectedDatabase = "DB03" Then
    			$URL = "https://intranet/db03/"
    			$IP = $IP2
    			$DB = $SelectedDatabase
    			$sqlCon = _MSSQL_Con($IP, $DB, $Password, $DB) ; IP, User, PW, DB
    		EndIf
    		If $SelectedDatabase = "DB05" Then
    			$URL = "https://intranet/db05/"
    			$IP = $IP1
    			$DB = $SelectedDatabase
    			$sqlCon = _MSSQL_Con($IP, $DB, $Password, $DB) ; IP, User, PW, DB
    		EndIf
    		If $SelectedDatabase = "DB04" Then
    			$URL = "https://intranet/db04"
    			$IP = $IP3
    			$DB = $SelectedDatabase
    			$sqlCon = _MSSQL_Con($IP, "dbuserportal", "gRz2ul45s7", $DB) ; IP, User, PW, DB
    		EndIf
    		If $SelectedDatabase = "DB06" Then
    			$URL = "https://intranet/db06/"
    			$IP = $IP2
    			$DB = $SelectedDatabase
    			$sqlCon = _MSSQL_Con($IP, $DB, $Password, $DB) ; IP, User, PW, DB
    		EndIf
    		If $SelectedDatabase = "DB07" Then
    			$URL = "https://intranet/db07/"
    			$IP = $IP2
    			$DB = $SelectedDatabase
    			$sqlCon = _MSSQL_Con($IP, $DB, $Password, $DB) ; IP, User, PW, DB
    		EndIf
    		If $SelectedDatabase = "DB08" Then
    			$URL = "https://intranet/db08/"
    			$IP = $IP2
    			$DB = $SelectedDatabase
    			$sqlCon = _MSSQL_Con($IP, $DB, $Password, $DB) ; IP, User, PW, DB
    		EndIf
    		If $SelectedDatabase = "DB09" Then
    			$URL = "https://intranet/db09/"
    			$IP = $IP2
    			$DB = $SelectedDatabase
    			$sqlCon = _MSSQL_Con($IP, $DB, $Password, $DB) ; IP, User, PW, DB
    		EndIf
    		If $SelectedDatabase = "DB10" Then ; DB10 war früher RWTÜV (DB Name bleibt so erhalten)
    			$URL = "https://intranet/db10/"
    			$IP = $IP1
    			$DB = $SelectedDatabase
    			$sqlCon = _MSSQL_Con($IP, $DB, $Password, $DB) ; IP, User, PW, DB
    		EndIf
    		If $SelectedDatabase = "DB11" Then
    			$URL = "https://intranet/db11/"
    			$IP = $IP2
    			$DB = $SelectedDatabase
    			$sqlCon = _MSSQL_Con($IP, $DB, $Password, $DB) ; IP, User, PW, DB
    		EndIf
    		If $SelectedDatabase = "DB12" Then
    			$URL = "https://intranet/db12/"
    			$IP = $IP2
    			$DB = $SelectedDatabase
    			$sqlCon = _MSSQL_Con($IP, $DB, $Password, $DB) ; IP, User, PW, DB
    		EndIf
    		If $SelectedDatabase = "DB13" Then
    			$URL = "https://intranet/db13/"
    			$IP = $IP1
    			$DB = $SelectedDatabase
    			$sqlCon = _MSSQL_Con($IP, $DB, $Password, $DB) ; IP, User, PW, DB
    		EndIf
    		If $SelectedDatabase = "DB14" Then
    			$URL = "https://intranet/db14/"
    			$IP = $IP1
    			$DB = $SelectedDatabase
    			$sqlCon = _MSSQL_Con($IP, $DB, $Password, $DB) ; IP, User, PW, DB
    		EndIf
    		If $SelectedDatabase = "DB15" Then
    			$URL = "https://intranet/db15/"
    			$IP = $IP2
    			$DB = $SelectedDatabase
    			$sqlCon = _MSSQL_Con($IP, $DB, $Password, $DB) ; IP, User, PW, DB
    		EndIf
    		If $SelectedDatabase = "DB16" Then
    			$URL = "https://intranet/db16/"
    			$IP = $IP1
    			$DB = $SelectedDatabase
    			$sqlCon = _MSSQL_Con($IP, $DB, $Password, $DB) ; IP, User, PW, DB
    		EndIf
    		If $SelectedDatabase = "DB17" Then
    			$URL = "https://intranet/db17/"
    			$IP = $IP2
    			$DB = $SelectedDatabase
    			$sqlCon = _MSSQL_Con($IP, $DB, $Password, $DB) ; IP, User, PW, DB
    		EndIf
    		If $SelectedDatabase = "DB18" Then
    			$URL = "https://intranet/db18/"
    			$IP = $IP2
    			$DB = $SelectedDatabase
    			$sqlCon = _MSSQL_Con($IP, $DB, $Password, $DB) ; IP, User, PW, DB
    		EndIf
    		If $SelectedDatabase = "DB19" Then
    			$URL = "https://intranet/db19/"
    			$IP = $IP2
    			$DB = $SelectedDatabase
    			$sqlCon = _MSSQL_Con($IP, $DB, $Password, $DB) ; IP, User, PW, DB
    		EndIf
    	EndIf
    	_SQLAbfrage($SelectedDatabase, $URL)
    EndFunc   ;==>_DatabaseSelection
    
    
    Func _SQLAbfrage($SelectedDatabase, $URL)
    	Local $oErrorHandler = ObjEvent("AutoIt.Error", "_ErrFunc")
    
    
    	If GUICtrlRead($idRadio_5) = 1 Then ; Massensuche ist aktiviert
    		$file = FileOpen($sFileOpenDialog, 0)
    		$aDateiInArray = FileReadToArray($file)
    		If @error Then
    			MsgBox($MB_SYSTEMMODAL, "", "Fehler beim Einlesen der Textdatei! @error: " & @error) ; An error occurred reading the current script file.
    		Else
    			;
    		EndIf
    
    
    		If $sReturnRadio = 'Begleitschein' Then
    			_SQL_Datei_bauen()
    			Local $sSQLDateien = FileRead($sFilePath)
    			Local $SQLQuery = _MSSQL_Query($sqlCon, "SELECT BEGLEITSCHEIN_ID, BGSNR, BEARBEITUNGSST, LAST_LAYER_ID, TEILNEHMER_ID, RELEVANT, STORNIERT FROM BEGLEITSCHEIN where BGSNR in " & $sSQLDateien)
    			If @error Then MsgBox($MB_SYSTEMMODAL, "COM Error1", "@error is set to COM error number." & @CRLF & "@error = 0x" & Hex(@error), 1)
    			$aSQLQueryErgebnis = $SQLQuery.GetRows
    
    
    			$PGGroesseTeilabschnitte = (100 / $PGAnzahlTeilabschnitte) ; 100% (gesamter Progressbar) geteilt durch Anzahl Datenbanken
    			Local $sMyArray = UBound($aSQLQueryErgebnis, 1) ; Anzahl Datensätze im ausgelesenen Array
    			$PGProzentTeilabschnitt = ($PGGroesseTeilabschnitte / UBound($aSQLQueryErgebnis, 1)) ; Den x-ten Prozentsatz von der Prograssbar geteilt durch Anzahl Datensätze im Array
    
    
    			GUICtrlSetData($sLabel06, "Gefundene Datensätze bei " & $SelectedDatabase & ": " & $sMyArray)
    			GUISetState(@SW_SHOW)
    
    
    			If Not IsArray($aSQLQueryErgebnis) Then
    				ConsoleWrite("Keine Daten in " & $SelectedDatabase & " gefunden" & @CRLF)
    				GUICtrlSetData($sLabel06, "Gefundene Datensätze bei " & $SelectedDatabase & ": " & $sMyArray)
    				$PGUebertrag = $PGUebertrag + $PGGroesseTeilabschnitte
    				GUICtrlSetData($PGLeiste, $PGUebertrag)
    				GUISetState(@SW_SHOW)
    			Else
    				GUICtrlSetData($sLabel06, "Gefundene Datensätze bei " & $SelectedDatabase & ": " & $sMyArray)
    				GUISetState(@SW_SHOW)
    				For $i = 0 To UBound($aSQLQueryErgebnis) - 1 
    					$myCounter = $myCounter + 1
    					$PGUebertrag = $PGUebertrag + $PGProzentTeilabschnitt
    					FileWrite($sInputfile, $myCounter & @TAB) ; Tab 1
    					FileWrite($sInputfile, $SelectedDatabase & @TAB) ; Tab 2
    					FileWrite($sInputfile, $aSQLQueryErgebnis[$i][0] & @TAB) ; Tab 3
    					FileWrite($sInputfile, $aSQLQueryErgebnis[$i][1] & @TAB) ; Tab 4
    					FileWrite($sInputfile, $aSQLQueryErgebnis[$i][2] & @TAB) ; Tab 5
    					Local $sLayerLen = StringLen($aSQLQueryErgebnis[$i][3]) ; Layer Länge bestimmen
    					Local $sLayer = StringTrimRight($aSQLQueryErgebnis[$i][3], $sLayerLen - 6)
    					FileWrite($sInputfile, $sLayer & @TAB) ; Tab 3
    					Local $SQLQueryTeilnehmer = _MSSQL_Query($sqlCon, "SELECT BEHOERDLICHE_NUMMER, TEILNEHMERROLLE_ID FROM TEILNEHMER where TEILNEHMER_ID = " & $aSQLQueryErgebnis[$i][4])
    					$aSQLQueryTeilnehmerErgebnis = $SQLQueryTeilnehmer.GetRows
    					For $j = 0 To UBound($aSQLQueryTeilnehmerErgebnis) - 1
    						_TeilnehmerRollenIDFinden($aSQLQueryTeilnehmerErgebnis[$j][1])
    						FileWrite($sInputfile, $aSQLQueryTeilnehmerErgebnis[$j][0] & @TAB) ; Teilnehmer NR
    						FileWrite($sInputfile, $sTeilnehmerrolle & @TAB) ; Teilnehmer Rolle
    					Next
    					If $aSQLQueryErgebnis[$i][5] = "0" Then ; Relevant
    						FileWrite($sInputfile, 'Nein' & @TAB) ;Nein
    					Else
    						FileWrite($sInputfile, 'Ja' & @TAB) ; Ja
    					EndIf
    					If $aSQLQueryErgebnis[$i][6] = "0" Then ; Storniert
    						FileWrite($sInputfile, 'Nein') ;Nein
    					Else
    						FileWrite($sInputfile, 'Ja') ; Ja
    					EndIf
    					;FileWrite($sInputfile, $URL & @TAB & @CRLF) ; URL
    					FileWrite($sInputfile, @CRLF) ; neue Zeile
    					GUICtrlSetData($PGLeiste, $PGUebertrag)
    					GUISetState(@SW_SHOW)
    				Next
    			EndIf
    		EndIf
    
    
    		If $sReturnRadio = 'Nachweis' Then
    			If GUICtrlRead($idCheckbox01) = 4 Then ; Checkbox ist nicht aktiv, d.h. Suche nach Nachweisnummer
    				_SQL_Datei_bauen()
    				Local $sSQLDateien = FileRead($sFilePath)
    				Local $SQLQuery = _MSSQL_Query($sqlCon, "SELECT NACHWEIS_ID, NACHWEISNR, NACHWEISTYP, RELEVANT, GUELTIG_VON, GUELTIG_BIS, ENTSORGUNGSMENGE_MAX, ENTSORGUNGSMENGE_AKT, ABFALLSCHLUESSEL, TEILNEHMER_ID, BEARBEITUNGSSTATUS, DOKUMENTENSTATUS, FORMULARSTATUS, LAST_LAYER_NAME FROM NACHWEIS where NACHWEISNR in " & $sSQLDateien)
    				If @error Then MsgBox($MB_SYSTEMMODAL, "COM Error1", "@error is set to COM error number." & @CRLF & "@error = 0x" & Hex(@error), 1)
    				$aSQLQueryErgebnis = $SQLQuery.GetRows
    
    
    				$PGGroesseTeilabschnitte = (100 / $PGAnzahlTeilabschnitte)
    				Local $sMyArray = UBound($aSQLQueryErgebnis, 1)
    				$PGProzentTeilabschnitt = ($PGGroesseTeilabschnitte / UBound($aSQLQueryErgebnis, 1))
    
    
    				If Not IsArray($aSQLQueryErgebnis) Then
    					ConsoleWrite("Keine Daten in " & $SelectedDatabase & " gefunden" & @CRLF)
    					GUICtrlSetData($sLabel06, "Gefundene Datensätze bei " & $SelectedDatabase & ": " & $sMyArray)
    					$PGUebertrag = $PGUebertrag + $PGGroesseTeilabschnitte
    					GUICtrlSetData($PGLeiste, $PGUebertrag)
    					GUISetState(@SW_SHOW)
    				Else
    					GUICtrlSetData($sLabel06, "Gefundene Datensätze bei " & $SelectedDatabase & ": " & $sMyArray)
    					GUISetState(@SW_SHOW)
    					For $i = 0 To UBound($aSQLQueryErgebnis) - 1 
    						$myCounter = $myCounter + 1
    						$PGUebertrag = $PGUebertrag + $PGProzentTeilabschnitt
    						FileWrite($sInputfile, $myCounter & @TAB) ; Tab 1
    						FileWrite($sInputfile, $SelectedDatabase & @TAB) ; Tab 2
    						FileWrite($sInputfile, $aSQLQueryErgebnis[$i][0] & @TAB) ; Tab 3: ID
    						FileWrite($sInputfile, $aSQLQueryErgebnis[$i][1] & @TAB) ; Tab 4: Nachweissnummer
    						FileWrite($sInputfile, $aSQLQueryErgebnis[$i][2] & @TAB) ; Tab 5: Type
    						If $aSQLQueryErgebnis[$i][3] = "0" Then ; Relevant
    							FileWrite($sInputfile, 'Nein' & @TAB) ; Relevant Nein
    						Else
    							FileWrite($sInputfile, 'Ja' & @TAB) ; Relevant Ja
    						EndIf
    						$CreateATTime = $aSQLQueryErgebnis[$i][4] ; Gültig von als Unixzeit
    						_unix2win($CreateATTime) ; Übergabe Unixzeit
    						FileWrite($sInputfile, $datum & @TAB) ; Gültig von
    						$CreateATTime = $aSQLQueryErgebnis[$i][5] ; Gültig bis als Unixzeit
    						_unix2win($CreateATTime) ; Übergabe Unixzeit
    						FileWrite($sInputfile, $datum & @TAB) ; Gültig bis
    						FileWrite($sInputfile, $aSQLQueryErgebnis[$i][6] & @TAB) ; Menge Max.
    						FileWrite($sInputfile, $aSQLQueryErgebnis[$i][7] & @TAB) ; Menge Akt.
    						FileWrite($sInputfile, $aSQLQueryErgebnis[$i][8] & @TAB) ; AVV
    						Local $SQLQueryTeilnehmer = _MSSQL_Query($sqlCon, "SELECT BEHOERDLICHE_NUMMER, TEILNEHMERROLLE_ID FROM TEILNEHMER where TEILNEHMER_ID = " & $aSQLQueryErgebnis[$i][9])
    						$aSQLQueryTeilnehmerErgebnis = $SQLQueryTeilnehmer.GetRows
    						For $j = 0 To UBound($aSQLQueryTeilnehmerErgebnis) - 1
    							_TeilnehmerRollenIDFinden($aSQLQueryTeilnehmerErgebnis[$j][1])
    							FileWrite($sInputfile, $aSQLQueryTeilnehmerErgebnis[$j][0] & @TAB) ; Teilnehmer Nr
    							FileWrite($sInputfile, $sTeilnehmerrolle & @TAB) ; Teilnehmer Rolle
    						Next
    						FileWrite($sInputfile, $aSQLQueryErgebnis[$i][10] & @TAB) ;Bearbeitungsstatus
    						FileWrite($sInputfile, $aSQLQueryErgebnis[$i][11] & @TAB) ;Dokumentenstatus
    						FileWrite($sInputfile, $aSQLQueryErgebnis[$i][12] & @TAB) ; Formularstatus (vorher)
    						FileWrite($sInputfile, $aSQLQueryErgebnis[$i][13] & @CRLF) ; Layer (nachher)
    						GUICtrlSetData($PGLeiste, $PGUebertrag)
    						GUISetState(@SW_SHOW)
    					Next
    				EndIf
    			EndIf
    		EndIf
    
    
    		If $sReturnRadio = 'Übernahmeschein' Then
    			_SQL_Datei_bauen()
    			Local $sSQLDateien = FileRead($sFilePath)
    			Local $SQLQuery = _MSSQL_Query($sqlCon, "SELECT UEBERNAHMESCHEIN_ID, UNSNR, BGSNR,RELEVANT, Menge, TEILNEHMER_ID, LAST_LAYER_NAME, BEARBEITUNGSST,DOKUMENTENSTATUS, FORMULARSTATUS FROM UEBERNAHMESCHEIN where UNSNR in " & $sSQLDateien)
    			If @error Then MsgBox($MB_SYSTEMMODAL, "COM Error1", "@error is set to COM error number." & @CRLF & "@error = 0x" & Hex(@error), 1)
    			$aSQLQueryErgebnis = $SQLQuery.GetRows
    
    
    			$PGGroesseTeilabschnitte = (100 / $PGAnzahlTeilabschnitte)
    			Local $sMyArray = UBound($aSQLQueryErgebnis, 1)
    			$PGProzentTeilabschnitt = ($PGGroesseTeilabschnitte / UBound($aSQLQueryErgebnis, 1))
    
    
    			If Not IsArray($aSQLQueryErgebnis) Then
    				ConsoleWrite("Keine Daten in " & $SelectedDatabase & " gefunden" & @CRLF)
    				GUICtrlSetData($sLabel06, "Gefundene Datensätze bei " & $SelectedDatabase & ": " & $sMyArray)
    				$PGUebertrag = $PGUebertrag + $PGGroesseTeilabschnitte
    				GUICtrlSetData($PGLeiste, $PGUebertrag)
    				GUISetState(@SW_SHOW)
    			Else
    				GUICtrlSetData($sLabel06, "Gefundene Datensätze bei " & $SelectedDatabase & ": " & $sMyArray)
    				GUISetState(@SW_SHOW)
    				For $i = 0 To UBound($aSQLQueryErgebnis) - 1 
    					$myCounter = $myCounter + 1
    					$PGUebertrag = $PGUebertrag + $PGProzentTeilabschnitt
    					FileWrite($sInputfile, $myCounter & @TAB) ; Tab 1
    					FileWrite($sInputfile, $SelectedDatabase & @TAB) ; Tab 2
    					FileWrite($sInputfile, $aSQLQueryErgebnis[$i][0] & @TAB) ; Tab 3 UNS ID
    					FileWrite($sInputfile, $aSQLQueryErgebnis[$i][1] & @TAB) ; Tab 4 UNS NR
    					FileWrite($sInputfile, $aSQLQueryErgebnis[$i][2] & @TAB) ; Tab 5 BGS NR
    					If $aSQLQueryErgebnis[$i][3] = "0" Then ; Relevant
    						FileWrite($sInputfile, 'Nein' & @TAB) ;Nein
    					Else
    						FileWrite($sInputfile, 'Ja' & @TAB) ; Ja
    					EndIf
    					FileWrite($sInputfile, $aSQLQueryErgebnis[$i][4] & @TAB) ; Tab 7 Menge
    					Local $SQLQueryTeilnehmer = _MSSQL_Query($sqlCon, "SELECT BEHOERDLICHE_NUMMER, TEILNEHMERROLLE_ID FROM TEILNEHMER where TEILNEHMER_ID = " & $aSQLQueryErgebnis[$i][5])
    					$aSQLQueryTeilnehmerErgebnis = $SQLQueryTeilnehmer.GetRows
    					For $j = 0 To UBound($aSQLQueryTeilnehmerErgebnis) - 1
    						_TeilnehmerRollenIDFinden($aSQLQueryTeilnehmerErgebnis[$j][1])
    						FileWrite($sInputfile, $aSQLQueryTeilnehmerErgebnis[$j][0] & @TAB) ; Teilnehmer NR
    						FileWrite($sInputfile, $sTeilnehmerrolle & @TAB) ; Teilnehmer Rolle
    					Next
    					FileWrite($sInputfile, $aSQLQueryErgebnis[$i][6] & @TAB) ; Tab 10 Layer
    					FileWrite($sInputfile, $aSQLQueryErgebnis[$i][7] & @TAB) ; Tab 11
    					FileWrite($sInputfile, $aSQLQueryErgebnis[$i][8] & @TAB) ; Tab 12
    					FileWrite($sInputfile, $aSQLQueryErgebnis[$i][9] & @CRLF) ; Tab 13
    					GUICtrlSetData($PGLeiste, $PGUebertrag)
    					GUISetState(@SW_SHOW)
    				Next
    			EndIf
    		EndIf
    
    
    	Else ; Einzelsuche ist aktiv
    
    
    		If $sReturnRadio = 'Begleitschein' Then
    			Local $SQLQuery = _MSSQL_Query($sqlCon, "SELECT BEGLEITSCHEIN_ID, BGSNR, BEARBEITUNGSST, LAST_LAYER_ID, TEILNEHMER_ID, RELEVANT, STORNIERT FROM BEGLEITSCHEIN where BGSNR like '%" & GUICtrlRead($sInput01) & "%';")
    			If @error Then MsgBox($MB_SYSTEMMODAL, "COM Error1", "@error is set to COM error number." & @CRLF & "@error = 0x" & Hex(@error), 1)
    			$aSQLQueryErgebnis = $SQLQuery.GetRows
    
    
    			$PGGroesseTeilabschnitte = (100 / $PGAnzahlTeilabschnitte)
    			Local $sMyArray = UBound($aSQLQueryErgebnis, 1)
    			$PGProzentTeilabschnitt = ($PGGroesseTeilabschnitte / UBound($aSQLQueryErgebnis, 1))
    
    
    			If Not IsArray($aSQLQueryErgebnis) Then
    				ConsoleWrite("Keine Daten in " & $SelectedDatabase & " gefunden" & @CRLF)
    				GUICtrlSetData($sLabel06, "Gefundene Datensätze bei " & $SelectedDatabase & ": " & $sMyArray)
    				$PGUebertrag = $PGUebertrag + $PGGroesseTeilabschnitte
    				GUICtrlSetData($PGLeiste, $PGUebertrag)
    				GUISetState(@SW_SHOW)
    			Else
    				GUICtrlSetData($sLabel06, "Gefundene Datensätze bei " & $SelectedDatabase & ": " & $sMyArray)
    				GUISetState(@SW_SHOW)
    				For $i = 0 To UBound($aSQLQueryErgebnis) - 1 
    					$myCounter = $myCounter + 1
    					$PGUebertrag = $PGUebertrag + $PGProzentTeilabschnitt
    					FileWrite($sInputfile, $myCounter & @TAB) ; Tab 1
    					FileWrite($sInputfile, $SelectedDatabase & @TAB) ; Tab 2
    					FileWrite($sInputfile, $aSQLQueryErgebnis[$i][0] & @TAB) ; Tab 3
    					FileWrite($sInputfile, $aSQLQueryErgebnis[$i][1] & @TAB) ; Tab 4
    					FileWrite($sInputfile, $aSQLQueryErgebnis[$i][2] & @TAB) ; Tab 5
    					Local $sLayerLen = StringLen($aSQLQueryErgebnis[$i][3]) ; Layer Länge bestimmen
    					Local $sLayer = StringTrimRight($aSQLQueryErgebnis[$i][3], $sLayerLen - 6)
    					FileWrite($sInputfile, $sLayer & @TAB) ; Tab 3
    					Local $SQLQueryTeilnehmer = _MSSQL_Query($sqlCon, "SELECT BEHOERDLICHE_NUMMER, TEILNEHMERROLLE_ID FROM TEILNEHMER where TEILNEHMER_ID = " & $aSQLQueryErgebnis[$i][4])
    					$aSQLQueryTeilnehmerErgebnis = $SQLQueryTeilnehmer.GetRows
    					For $j = 0 To UBound($aSQLQueryTeilnehmerErgebnis) - 1
    						_TeilnehmerRollenIDFinden($aSQLQueryTeilnehmerErgebnis[$j][1])
    						FileWrite($sInputfile, $aSQLQueryTeilnehmerErgebnis[$j][0] & @TAB) ; Teilnehmer NR
    						FileWrite($sInputfile, $sTeilnehmerrolle & @TAB) ; Teilnehmer Rolle
    					Next
    					If $aSQLQueryErgebnis[$i][5] = "0" Then ; Relevant
    						FileWrite($sInputfile, 'Nein' & @TAB) ;Nein
    					Else
    						FileWrite($sInputfile, 'Ja' & @TAB) ; Ja
    					EndIf
    					If $aSQLQueryErgebnis[$i][6] = "0" Then ; Storniert
    						FileWrite($sInputfile, 'Nein') ;Nein
    					Else
    						FileWrite($sInputfile, 'Ja') ; Ja
    					EndIf
    					;FileWrite($sInputfile, $URL & @TAB & @CRLF) ; URL
    					FileWrite($sInputfile, @CRLF) ; neue Zeile
    					GUICtrlSetData($PGLeiste, $PGUebertrag)
    					GUISetState(@SW_SHOW)
    				Next
    			EndIf
    		EndIf
    
    
    		If $sReturnRadio = 'Nachweis' Then
    			If GUICtrlRead($idCheckbox01) = 4 Then ; Checkbox ist nicht aktiv, d.h. Suche nach Nachweisnummer
    				Local $SQLQuery = _MSSQL_Query($sqlCon, "SELECT NACHWEIS_ID, NACHWEISNR, NACHWEISTYP, RELEVANT, GUELTIG_VON, GUELTIG_BIS, ENTSORGUNGSMENGE_MAX, ENTSORGUNGSMENGE_AKT, ABFALLSCHLUESSEL, TEILNEHMER_ID, BEARBEITUNGSSTATUS, DOKUMENTENSTATUS, FORMULARSTATUS, LAST_LAYER_NAME FROM NACHWEIS where NACHWEISNR like '%" & GUICtrlRead($sInput01) & "%';")
    				If @error Then MsgBox($MB_SYSTEMMODAL, "COM Error1", "@error is set to COM error number." & @CRLF & "@error = 0x" & Hex(@error), 1)
    				$aSQLQueryErgebnis = $SQLQuery.GetRows
    				;_ArrayDisplay($aSQLQueryErgebnis, "")
    
    
    				$PGGroesseTeilabschnitte = (100 / $PGAnzahlTeilabschnitte)
    				Local $sMyArray = UBound($aSQLQueryErgebnis, 1)
    				$PGProzentTeilabschnitt = ($PGGroesseTeilabschnitte / UBound($aSQLQueryErgebnis, 1))
    
    
    				If Not IsArray($aSQLQueryErgebnis) Then
    					ConsoleWrite("Keine Daten in " & $SelectedDatabase & " gefunden" & @CRLF)
    					GUICtrlSetData($sLabel06, "Gefundene Datensätze bei " & $SelectedDatabase & ": " & $sMyArray)
    					$PGUebertrag = $PGUebertrag + $PGGroesseTeilabschnitte
    					GUICtrlSetData($PGLeiste, $PGUebertrag)
    					GUISetState(@SW_SHOW)
    				Else
    					GUICtrlSetData($sLabel06, "Gefundene Datensätze bei " & $SelectedDatabase & ": " & $sMyArray)
    					GUISetState(@SW_SHOW)
    					For $i = 0 To UBound($aSQLQueryErgebnis) - 1
    						$myCounter = $myCounter + 1
    						$PGUebertrag = $PGUebertrag + $PGProzentTeilabschnitt
    						FileWrite($sInputfile, $myCounter & @TAB) ; Tab 1
    						FileWrite($sInputfile, $SelectedDatabase & @TAB) ; Tab 2
    						FileWrite($sInputfile, $aSQLQueryErgebnis[$i][0] & @TAB) ; Tab 3: ID
    						FileWrite($sInputfile, $aSQLQueryErgebnis[$i][1] & @TAB) ; Tab 4: Nachweissnummer
    						FileWrite($sInputfile, $aSQLQueryErgebnis[$i][2] & @TAB) ; Tab 5: Type
    						If $aSQLQueryErgebnis[$i][3] = "0" Then ; Relevant
    							FileWrite($sInputfile, 'Nein' & @TAB) ; Relevant Nein
    						Else
    							FileWrite($sInputfile, 'Ja' & @TAB) ; Relevant Ja
    						EndIf
    						$CreateATTime = $aSQLQueryErgebnis[$i][4] ; Gültig von als Unixzeit
    						_unix2win($CreateATTime) ; Übergabe Unixzeit
    						FileWrite($sInputfile, $datum & @TAB) ; Gültig von
    						$CreateATTime = $aSQLQueryErgebnis[$i][5] ; Gültig bis als Unixzeit
    						_unix2win($CreateATTime) ; Übergabe Unixzeit
    						FileWrite($sInputfile, $datum & @TAB) ; Gültig bis
    						FileWrite($sInputfile, $aSQLQueryErgebnis[$i][6] & @TAB) ; Menge Max.
    						FileWrite($sInputfile, $aSQLQueryErgebnis[$i][7] & @TAB) ; Menge Akt.
    						FileWrite($sInputfile, $aSQLQueryErgebnis[$i][8] & @TAB) ; AVV
    						Local $SQLQueryTeilnehmer = _MSSQL_Query($sqlCon, "SELECT BEHOERDLICHE_NUMMER, TEILNEHMERROLLE_ID FROM TEILNEHMER where TEILNEHMER_ID = " & $aSQLQueryErgebnis[$i][9])
    						$aSQLQueryTeilnehmerErgebnis = $SQLQueryTeilnehmer.GetRows
    						For $j = 0 To UBound($aSQLQueryTeilnehmerErgebnis) - 1
    							_TeilnehmerRollenIDFinden($aSQLQueryTeilnehmerErgebnis[$j][1])
    							FileWrite($sInputfile, $aSQLQueryTeilnehmerErgebnis[$j][0] & @TAB) ; Teilnehmer Nr
    							FileWrite($sInputfile, $sTeilnehmerrolle & @TAB) ; Teilnehmer Rolle
    						Next
    						FileWrite($sInputfile, $aSQLQueryErgebnis[$i][10] & @TAB) ;Bearbeitungsstatus
    						FileWrite($sInputfile, $aSQLQueryErgebnis[$i][11] & @TAB) ;Dokumentenstatus
    						FileWrite($sInputfile, $aSQLQueryErgebnis[$i][12] & @TAB) ; Formularstatus (vorher)
    						FileWrite($sInputfile, $aSQLQueryErgebnis[$i][13] & @CRLF) ; Layer (nachher)
    						GUICtrlSetData($PGLeiste, $PGUebertrag)
    						GUISetState(@SW_SHOW)
    					Next
    				EndIf
    
    
    			ElseIf GUICtrlRead($idCheckbox01) = 1 Then ; Checkbox ist aktiv, d.h. Suche nach vorläufiger Nachweisnummer
    				Local $SQLQuery = _MSSQL_Query($sqlCon, "SELECT NACHWEIS_ID, VORLAEUFIGEENNR, NACHWEISNR, NACHWEISTYP, RELEVANT, GUELTIG_VON, GUELTIG_BIS, ENTSORGUNGSMENGE_MAX, ENTSORGUNGSMENGE_AKT, ABFALLSCHLUESSEL, TEILNEHMER_ID, BEARBEITUNGSSTATUS, DOKUMENTENSTATUS, FORMULARSTATUS, LAST_LAYER_NAME FROM NACHWEIS where VORLAEUFIGEENNR like '%" & GUICtrlRead($sInput01) & "%';")
    				If @error Then MsgBox($MB_SYSTEMMODAL, "COM Error1", "@error is set to COM error number." & @CRLF & "@error = 0x" & Hex(@error), 1)
    				$aSQLQueryErgebnis = $SQLQuery.GetRows
    
    
    				$PGGroesseTeilabschnitte = (100 / $PGAnzahlTeilabschnitte)
    				Local $sMyArray = UBound($aSQLQueryErgebnis, 1)
    				$PGProzentTeilabschnitt = ($PGGroesseTeilabschnitte / UBound($aSQLQueryErgebnis, 1))
    
    
    				If Not IsArray($aSQLQueryErgebnis) Then
    					ConsoleWrite("Keine Daten in " & $SelectedDatabase & " gefunden" & @CRLF)
    					GUICtrlSetData($sLabel06, "Gefundene Datensätze bei " & $SelectedDatabase & ": " & $sMyArray)
    					GUISetState(@SW_SHOW)
    				Else
    					GUICtrlSetData($sLabel06, "Gefundene Datensätze bei " & $SelectedDatabase & ": " & $sMyArray)
    					GUISetState(@SW_SHOW)
    					For $i = 0 To UBound($aSQLQueryErgebnis) - 1
    						$myCounter = $myCounter + 1
    						$PGUebertrag = $PGUebertrag + $PGProzentTeilabschnitt
    
    
    						FileWrite($sInputfile, $myCounter & @TAB) ; Tab 1
    						FileWrite($sInputfile, $SelectedDatabase & @TAB) ; Tab 2
    						FileWrite($sInputfile, $aSQLQueryErgebnis[$i][0] & @TAB) ; Tab 3: ID
    						FileWrite($sInputfile, $aSQLQueryErgebnis[$i][1] & @TAB) ; Tab 4: vorläufige Nummer
    						FileWrite($sInputfile, $aSQLQueryErgebnis[$i][2] & @TAB) ; Tab 5: Nachweisnummer
    						FileWrite($sInputfile, $aSQLQueryErgebnis[$i][3] & @TAB) ; Tab 6: Type
    						If $aSQLQueryErgebnis[$i][4] = "0" Then ; Relevant
    							FileWrite($sInputfile, 'Nein' & @TAB) ; Relevant Nein
    						Else
    							FileWrite($sInputfile, 'Ja' & @TAB) ; Relevant Ja
    						EndIf
    						$CreateATTime = $aSQLQueryErgebnis[$i][5] ; Gültig von als Unixzeit
    						_unix2win($CreateATTime) ; Übergabe Unixzeit
    						FileWrite($sInputfile, $datum & @TAB) ; Tab 8
    						$CreateATTime = $aSQLQueryErgebnis[$i][6] ; Gültig bis als Unixzeit
    						_unix2win($CreateATTime) ; Übergabe Unixzeit
    						FileWrite($sInputfile, $datum & @TAB) ; Tab 9
    						FileWrite($sInputfile, $aSQLQueryErgebnis[$i][7] & @TAB) ; Tab 6: Menge Max
    						FileWrite($sInputfile, $aSQLQueryErgebnis[$i][8] & @TAB) ; Tab 6: Menge Aktuell
    						FileWrite($sInputfile, $aSQLQueryErgebnis[$i][9] & @TAB) ; Tab 6: AVV
    						Local $SQLQueryTeilnehmer = _MSSQL_Query($sqlCon, "SELECT BEHOERDLICHE_NUMMER, TEILNEHMERROLLE_ID FROM TEILNEHMER where TEILNEHMER_ID = " & $aSQLQueryErgebnis[$i][10])
    						$aSQLQueryTeilnehmerErgebnis = $SQLQueryTeilnehmer.GetRows
    						For $j = 0 To UBound($aSQLQueryTeilnehmerErgebnis) - 1
    							_TeilnehmerRollenIDFinden($aSQLQueryTeilnehmerErgebnis[$j][1])
    							FileWrite($sInputfile, $aSQLQueryTeilnehmerErgebnis[$j][0] & @TAB) ; Teilnehmer Nr
    							FileWrite($sInputfile, $sTeilnehmerrolle & @TAB) ; Teilnehmer Rolle
    						Next
    						FileWrite($sInputfile, $aSQLQueryErgebnis[$i][11] & @TAB) ;Bearbeitungsstatus
    						FileWrite($sInputfile, $aSQLQueryErgebnis[$i][12] & @TAB) ;Dokumentenstatus
    						FileWrite($sInputfile, $aSQLQueryErgebnis[$i][13] & @TAB) ; Formularstatus (vorher)
    						FileWrite($sInputfile, $aSQLQueryErgebnis[$i][14] & @CRLF) ; Layer (nachher)
    						GUICtrlSetData($PGLeiste, $PGUebertrag)
    						GUISetState(@SW_SHOW)
    					Next
    				EndIf
    			EndIf
    		EndIf
    
    
    		If $sReturnRadio = 'Übernahmeschein' Then
    			Local $SQLQuery = _MSSQL_Query($sqlCon, "SELECT UEBERNAHMESCHEIN_ID, UNSNR, BGSNR,RELEVANT, Menge, TEILNEHMER_ID, LAST_LAYER_NAME, BEARBEITUNGSST,DOKUMENTENSTATUS, FORMULARSTATUS FROM UEBERNAHMESCHEIN where UNSNR like '%" & GUICtrlRead($sInput01) & "%';")
    			If @error Then MsgBox($MB_SYSTEMMODAL, "COM Error1", "@error is set to COM error number." & @CRLF & "@error = 0x" & Hex(@error), 1)
    			$aSQLQueryErgebnis = $SQLQuery.GetRows
    
    
    			$PGGroesseTeilabschnitte = (100 / $PGAnzahlTeilabschnitte)
    			Local $sMyArray = UBound($aSQLQueryErgebnis, 1)
    			$PGProzentTeilabschnitt = ($PGGroesseTeilabschnitte / UBound($aSQLQueryErgebnis, 1))
    
    
    			If Not IsArray($aSQLQueryErgebnis) Then
    				ConsoleWrite("Keine Daten in " & $SelectedDatabase & " gefunden" & @CRLF)
    				GUICtrlSetData($sLabel06, "Gefundene Datensätze bei " & $SelectedDatabase & ": " & $sMyArray)
    				$PGUebertrag = $PGUebertrag + $PGGroesseTeilabschnitte
    				GUICtrlSetData($PGLeiste, $PGUebertrag)
    				GUISetState(@SW_SHOW)
    			Else
    				GUICtrlSetData($sLabel06, "Gefundene Datensätze bei " & $SelectedDatabase & ": " & $sMyArray)
    				GUISetState(@SW_SHOW)
    				For $i = 0 To UBound($aSQLQueryErgebnis) - 1 
    					$myCounter = $myCounter + 1
    					$PGUebertrag = $PGUebertrag + $PGProzentTeilabschnitt
    					FileWrite($sInputfile, $myCounter & @TAB) ; Tab 1
    					FileWrite($sInputfile, $SelectedDatabase & @TAB) ; Tab 2
    					FileWrite($sInputfile, $aSQLQueryErgebnis[$i][0] & @TAB) ; Tab 3 UNS ID
    					FileWrite($sInputfile, $aSQLQueryErgebnis[$i][1] & @TAB) ; Tab 4 UNS NR
    					FileWrite($sInputfile, $aSQLQueryErgebnis[$i][2] & @TAB) ; Tab 5 BGS NR
    					If $aSQLQueryErgebnis[$i][3] = "0" Then ; Relevant
    						FileWrite($sInputfile, 'Nein' & @TAB) ;Nein
    					Else
    						FileWrite($sInputfile, 'Ja' & @TAB) ; Ja
    					EndIf
    					FileWrite($sInputfile, $aSQLQueryErgebnis[$i][4] & @TAB) ; Tab 7 Menge
    					Local $SQLQueryTeilnehmer = _MSSQL_Query($sqlCon, "SELECT BEHOERDLICHE_NUMMER, TEILNEHMERROLLE_ID FROM TEILNEHMER where TEILNEHMER_ID = " & $aSQLQueryErgebnis[$i][5])
    					$aSQLQueryTeilnehmerErgebnis = $SQLQueryTeilnehmer.GetRows
    					For $j = 0 To UBound($aSQLQueryTeilnehmerErgebnis) - 1
    						_TeilnehmerRollenIDFinden($aSQLQueryTeilnehmerErgebnis[$j][1])
    						FileWrite($sInputfile, $aSQLQueryTeilnehmerErgebnis[$j][0] & @TAB) ; Teilnehmer NR
    						FileWrite($sInputfile, $sTeilnehmerrolle & @TAB) ; Teilnehmer Rolle
    					Next
    					FileWrite($sInputfile, $aSQLQueryErgebnis[$i][6] & @TAB) ; Tab 10 Layer
    					FileWrite($sInputfile, $aSQLQueryErgebnis[$i][7] & @TAB) ; Tab 11
    					FileWrite($sInputfile, $aSQLQueryErgebnis[$i][8] & @TAB) ; Tab 12
    					FileWrite($sInputfile, $aSQLQueryErgebnis[$i][9] & @CRLF) ; Tab 13
    					GUICtrlSetData($PGLeiste, $PGUebertrag)
    					GUISetState(@SW_SHOW)
    				Next
    			EndIf
    		EndIf
    	EndIf
    	Return $myCounter
    	Return $PGUebertrag
    EndFunc   ;==>_SQLAbfrage
    
    
    Func _TeilnehmerRollenIDFinden($TeilnehmerID)
    
    
    	If $TeilnehmerID = "1" Then
    		$sTeilnehmerrolle = "Erzeuger"
    	EndIf
    
    
    	If $TeilnehmerID = "2" Then
    		$sTeilnehmerrolle = "Beförderer"
    	EndIf
    
    
    	If $TeilnehmerID = "3" Then
    		$sTeilnehmerrolle = "Entsorger"
    	EndIf
    
    
    	If $TeilnehmerID = "4" Then
    		$sTeilnehmerrolle = "Systemadmin"
    	EndIf
    
    
    	If $TeilnehmerID = "5" Then
    		$sTeilnehmerrolle = "Entsorgungsfachbetrieb"
    	EndIf
    
    
    	If $TeilnehmerID = "6" Then
    		$sTeilnehmerrolle = "Zwischenlager"
    	EndIf
    
    
    	If $TeilnehmerID = "7" Then
    		$sTeilnehmerrolle = "Behörde"
    	EndIf
    
    
    	If $TeilnehmerID = "8" Then
    		$sTeilnehmerrolle = "Bevollmächtigter des Erzeuger"
    	EndIf
    
    
    	If $TeilnehmerID = "9" Then
    		$sTeilnehmerrolle = "nicht vergeben"
    	EndIf
    
    
    	If $TeilnehmerID = "10" Then
    		$sTeilnehmerrolle = "Servicemodul"
    	EndIf
    
    
    	If $TeilnehmerID = "11" Then
    		$sTeilnehmerrolle = "Makler"
    	EndIf
    
    
    	If $TeilnehmerID = "12" Then
    		$sTeilnehmerrolle = "Sonstige"
    	EndIf
    
    
    	If $TeilnehmerID = "13" Then
    		$sTeilnehmerrolle = "Erzeuger"
    	EndIf
    
    
    EndFunc   ;==>_TeilnehmerRollenIDFinden
    
    
    Func _SQL_Datei_bauen()
    	; Tempverzeichnis bestimmen, weil man hier vermutlich schreiben darf
    	$sFilePath = _WinAPI_GetTempFileName(@TempDir)
    
    
    	; Create a temporary file to write data to.
    	If Not FileWrite($sFilePath, "('") Then
    		MsgBox($MB_SYSTEMMODAL, "", "Fehler beim Schreiben der temporären Datei.")
    		Return False
    	EndIf
    
    
    	; Open the file for writing (append to the end of a file) and store the handle to a variable.
    	Local $hFileOpen = FileOpen($sFilePath, $FO_APPEND)
    	If $hFileOpen = -1 Then
    		MsgBox($MB_SYSTEMMODAL, "", "Fehler beim Schreiben der temporären Datei.")
    		Return False
    	EndIf
    
    
    	For $i = 0 To UBound($aDateiInArray) - 2 ; Loop through the array.
    		FileWrite($hFileOpen, $aDateiInArray[$i] & "','")
    	Next
    	FileWrite($sFilePath, $aDateiInArray[UBound($aDateiInArray) - 1] & "');")
    
    
    	; Close the handle returned by FileOpen.
    	FileClose($hFileOpen)
    
    
    ;~ 	ConsoleWrite("In _SQL_Datei_bauen Funktion: " & FileRead($sFilePath) & @CRLF)
    	Return $sFilePath
    EndFunc   ;==>_SQL_Datei_bauen
    
    
    Func _WriteJSCode()
    	FileWriteLine($sHTMLfile, '<!-- START CODE -->')
    	FileWriteLine($sHTMLfile, '<div class="JSAjaxTable" targetid="tableid" datasrc="input.tab"> </div>')
    	FileWriteLine($sHTMLfile, '<div class="JSSortTable">')
    	FileWriteLine($sHTMLfile, '<div class="JSFilterTable">')
    	;FileWriteLine($sHTMLfile, '<div class="JSSortPagerTable">'); damit kann man eine mehrseitige Tabelle generieren
    	FileWriteLine($sHTMLfile, '	<div id="tableid"> </div>')
    	FileWriteLine($sHTMLfile, '</div>')
    	FileWriteLine($sHTMLfile, '</div>')
    EndFunc   ;==>_WriteJSCode
    
    
    #Region - Fixe Funktionen
    Func _unix2win($LastLoginTime)
    	$result = StringTrimRight($LastLoginTime, 3) ; Lösche von rechts 3 Stellen
    	$text = StringReplace($result, ".", "") ; Entferne die Punkte aus dem Resultat
    	;Lesbares Datum erzeugen
    	If StringLen($text) = 10 And $text <= 2145913199 Then ; Ursprünglich 1645484400, warum auch immer
    ;~ 		$format = "%a, %d.%m.%Y - %H:%M:%S"
    		$format = "%d.%m.%Y"
    		$datum = _StringFormatTime($format, $text)
    		$datum = StringReplace($datum, "Mon", "Montag")
    		$datum = StringReplace($datum, "Tue", "Dienstag")
    		$datum = StringReplace($datum, "Wed", "Mittwoch")
    		$datum = StringReplace($datum, "Thu", "Donnerstag")
    		$datum = StringReplace($datum, "Fri", "Freitag")
    		$datum = StringReplace($datum, "Sat", "Samstag")
    		$datum = StringReplace($datum, "Sun", "Sonntag")
    	Else
    		If $sReturnRadio = 'Nachweis' Then
    			$datum = "NULL"
    		EndIf
    	EndIf
    	Return $datum
    EndFunc   ;==>_unix2win
    
    
    Func _EPOCH_decrypt($epoch_time)
    	Local $Day2Add = Int($epoch_time / 86400)
    	Local $iTimeVal = Mod($epoch_time, 86400)
    	If $iTimeVal < 0 Then
    		$Day2Add -= 1
    		$iTimeVal += 86400
    	EndIf
    	Local $i_wFactor = Int((573371.75 + $Day2Add) / 36524.25)
    	Local $i_xFactor = Int($i_wFactor / 4)
    	Local $i_bFactor = 2442113 + $Day2Add + $i_wFactor - $i_xFactor
    	Local $i_cFactor = Int(($i_bFactor - 122.1) / 365.25)
    	Local $i_dFactor = Int(365.25 * $i_cFactor)
    	Local $i_eFactor = Int(($i_bFactor - $i_dFactor) / 30.6001)
    	Local $asDatePart[3]
    	$asDatePart[2] = $i_bFactor - $i_dFactor - Int(30.6001 * $i_eFactor)
    	$asDatePart[1] = $i_eFactor - 1 - 12 * ($i_eFactor - 2 >= 13)
    	$asDatePart[0] = $i_cFactor - 4716 + ($asDatePart[1] < 3)
    	Local $asTimePart[3]
    	$asTimePart[0] = Int($iTimeVal / 3600)
    	$iTimeVal = Mod($iTimeVal, 3600)
    	$asTimePart[1] = Int($iTimeVal / 60)
    	$asTimePart[2] = Mod($iTimeVal, 60)
    	Return SetError(0, 0, StringFormat("%.2d/%.2d/%.2d %.2d:%.2d:%.2d", $asDatePart[0], $asDatePart[1], $asDatePart[2], $asTimePart[0], $asTimePart[1], $asTimePart[2]))
    EndFunc   ;==>_EPOCH_decrypt
    
    
    Func _Epoch_encrypt($date)
    	Local $main_split = StringSplit($date, " ")
    	If $main_split[0] - 2 Then
    		Return SetError(1, 0, "") ; invalid time format
    	EndIf
    	Local $asDatePart = StringSplit($main_split[1], "/")
    	Local $asTimePart = StringSplit($main_split[2], ":")
    	If $asDatePart[0] - 3 Or $asTimePart[0] - 3 Then
    		Return SetError(1, 0, "") ; invalid time format
    	EndIf
    	If $asDatePart[2] < 3 Then
    		$asDatePart[2] += 12
    		$asDatePart[1] -= 1
    	EndIf
    	Local $i_aFactor = Int($asDatePart[1] / 100)
    	Local $i_bFactor = Int($i_aFactor / 4)
    	Local $i_cFactor = 2 - $i_aFactor + $i_bFactor
    	Local $i_eFactor = Int(1461 * ($asDatePart[1] + 4716) / 4)
    	Local $i_fFactor = Int(153 * ($asDatePart[2] + 1) / 5)
    	Local $aDaysDiff = $i_cFactor + $asDatePart[3] + $i_eFactor + $i_fFactor - 2442112
    	Local $iTimeDiff = $asTimePart[1] * 3600 + $asTimePart[2] * 60 + $asTimePart[3]
    	Return SetError(0, 0, $aDaysDiff * 86400 + $iTimeDiff)
    EndFunc   ;==>_Epoch_encrypt
    
    
    Func _ErrFunc($oError)
    	; User's COM error function. Will be called if COM error occurs
    	ConsoleWrite(@ScriptName & " (" & $oError.scriptline & ") : ==> COM Error intercepted !" & @CRLF & _
    			@TAB & "err.number is: " & @TAB & @TAB & "0x" & Hex($oError.number) & @CRLF & _
    			@TAB & "err.windescription:" & @TAB & $oError.windescription & @CRLF & _
    			@TAB & "err.description is: " & @TAB & $oError.description & @CRLF & _
    			@TAB & "err.source is: " & @TAB & @TAB & $oError.source & @CRLF & _
    			@TAB & "err.helpfile is: " & @TAB & $oError.helpfile & @CRLF & _
    			@TAB & "err.helpcontext is: " & @TAB & $oError.helpcontext & @CRLF & _
    			@TAB & "err.lastdllerror is: " & @TAB & $oError.lastdllerror & @CRLF & _
    			@TAB & "err.scriptline is: " & @TAB & $oError.scriptline & @CRLF & _
    			@TAB & "err.retcode is: " & @TAB & "0x" & Hex($oError.retcode) & @CRLF & @CRLF)
    EndFunc   ;==>_ErrFunc
    #EndRegion - Fixe Funktionen
    Alles anzeigen

    Leider funktioniert die "Autoit" Hervorhebung nicht

    Gruß und Danke

    C4F

  • Array vorne erweitern

    • Code4Fun
    • 8. Februar 2017 um 08:18

    Guten Morgen Kanashius,

    danke für die Optimierungen. Ich habe jedoch ganz weit oben in meinem Script bereits das FileOpen drin und am Ende schließe ich das dann auch wieder. Abgesehen davon, dass du mit Arrays arbeitest und das Script dadurch "aufgeräumter" wirkt (was ja nicht schlecht ist - aber für mich als ewiger Anfänger nicht so leicht lesbar), wollte ich fragen, wieso das schneller sein soll?

    Gruß C4F

  • Array vorne erweitern

    • Code4Fun
    • 7. Februar 2017 um 09:26

    Hallo Kanashius,

    vielen Dank für die schnelle Antwort.

    Hier mal ein Teilauszug aus meinem Script, damit Du siehst was ich so treibe

    In der Funktion _HTMLbauen() wird das Grundgerüst angelegt.

    Spoiler anzeigen
    AutoIt
    Func _HTMLbauen()
    	FileWriteLine($sHTMLfile, '<!DOCTYPE html">')
    	FileWriteLine($sHTMLfile, '<html>')
    	FileWriteLine($sHTMLfile, '<head>')
    	;FileWriteLine($sHTMLfile, '<meta charset="UTF-8" /">') ; wenn aktiv, werden Umlaute nicht sauber dargestellt
    	FileWriteLine($sHTMLfile, '<title>Dokumente</title>') ; Titel im Tabulator
    	FileWriteLine($sHTMLfile, '<script type="text/javascript" src="jsComponents.js"> </script>') ; Javascript wird eingebunden
    	FileWriteLine($sHTMLfile, '<script type="text/javascript" src="jquery-latest.js"> </script>') ; Javascript wird eingebunden
    	FileWriteLine($sHTMLfile, '<script type="text/javascript" src="jquery.tablesorter.min.js"> </script>') ; Javascript wird eingebunden
    	FileWriteLine($sHTMLfile, '<script type="text/javascript" src="tablefilter.js"> </script>') ; Javascript wird eingebunden
    	FileWriteLine($sHTMLfile, '<script type="text/javascript" src="jstablecomponents.js"> </script>') ; Javascript wird eingebunden
    	FileWriteLine($sHTMLfile, '</head>')
    	FileWriteLine($sHTMLfile, '<body>')
    
    
    	If $sReturnRadio = 'Nachweis' Then ; wenn Nachweis, fülle die Datei input.tab
    		If GUICtrlRead($idCheckbox01) = 4 Then ; Checkbox ist nicht aktiv, d.h. Suche nach Nachweisnummer
    			;FileWriteLine($sHTMLfile, '<body>')
    			If GUICtrlRead($idRadio_5) = 1 Then ; Massensuche ist aktiviert
    				FileWriteLine($sHTMLfile, '<h1 style="text-align: center;"><strong>Ergebnis der Nachweissuche (Massensuche)nach dem Begriff: ' & $Zwischenablage & '</strong></h1>')
    			Else ; Einzelsuche
    				FileWriteLine($sHTMLfile, '<h1 style="text-align: center;"><strong>Ergebnis der Nachweissuche nach dem Begriff: ' & $Zwischenablage & '</strong></h1>')
    			EndIf
    			FileWriteLine($sHTMLfile, '<!-- START CODE -->')
    			FileWriteLine($sHTMLfile, '<div class="JSAjaxTable" targetid="tableid" datasrc="input.tab"> </div>')
    			FileWriteLine($sHTMLfile, '<div class="JSSortTable">')
    			FileWriteLine($sHTMLfile, '<div class="JSFilterTable">')
    			FileWriteLine($sHTMLfile, '	<div id="tableid"> </div>')
    			FileWriteLine($sHTMLfile, '</div>')
    			FileWriteLine($sHTMLfile, '</div>')
    ;~ 			FileWrite($sInputfile, 'NR' & @TAB) ; Tab 1 = automatische Durchnummerierung (nicht im Array drin)
    ;~ 			FileWrite($sInputfile, 'DB' & @TAB) ; Tab 2 = gewählte Datenbank (nicht im Array drin)
    			FileWrite($sInputfile, 'ID' & @TAB) ; Tab 3 = ID Array Col0
    			FileWrite($sInputfile, 'EN-SN NR' & @TAB)
    			FileWrite($sInputfile, 'TYPE' & @TAB)
    			FileWrite($sInputfile, 'RELEVANT' & @TAB)
    			FileWrite($sInputfile, 'Gültig von' & @TAB)
    			FileWrite($sInputfile, 'Gültig bis' & @TAB)
    			FileWrite($sInputfile, 'Menge Max.' & @TAB)
    			FileWrite($sInputfile, 'Menge Akt.' & @TAB)
    			FileWrite($sInputfile, 'AVV' & @TAB)
    			FileWrite($sInputfile, 'Teilnehmer NR' & @TAB)
    			FileWrite($sInputfile, 'Teilnehmer Rolle' & @TAB)
    			FileWrite($sInputfile, 'Bearbeitungsstatus' & @TAB)
    			FileWrite($sInputfile, 'Dokumentenstatus' & @TAB)
    			FileWrite($sInputfile, 'Formularstatus (vorher)' & @TAB)
    			FileWrite($sInputfile, 'Layer (nachher)' & @TAB & @CRLF) ; 17
    
    
    		ElseIf GUICtrlRead($idCheckbox01) = 1 Then ; Checkbox ist aktiv, d.h. Suche nach vorläufiger Nachweisnummer
    			;FileWriteLine($sHTMLfile, '<body>')
    			FileWriteLine($sHTMLfile, '<h1 style="text-align: center;"><strong>Ergebnis der Nachweissuche (vorläufige Nachweisnummer)nach dem Begriff: ' & $Zwischenablage & '</strong></h1>')
    			FileWriteLine($sHTMLfile, '<table class="sortierbar tftable" border="1">')
    			FileWriteLine($sHTMLfile, '<thead>')
    			FileWriteLine($sHTMLfile, '	<tr>')
    			FileWriteLine($sHTMLfile, '		<th class="sortierbar">NR</th>')
    			FileWriteLine($sHTMLfile, '		<th class="sortierbar">DB</th>')
    			FileWriteLine($sHTMLfile, '		<th class="sortierbar">ID</th>')
    			FileWriteLine($sHTMLfile, '		<th class="sortierbar">vorl. Nr.</th>')
    			FileWriteLine($sHTMLfile, '		<th class="sortierbar">EN-SN NR</th>')
    			FileWriteLine($sHTMLfile, '		<th class="sortierbar">TYPE</th>')
    			FileWriteLine($sHTMLfile, '		<th class="sortierbar">Relevant</th>')
    			FileWriteLine($sHTMLfile, '		<th class="sortierbar">Gültig von</th>')
    			FileWriteLine($sHTMLfile, '		<th class="sortierbar">Gültig bis</th>')
    			FileWriteLine($sHTMLfile, '		<th class="sortierbar">Menge Max</th>')
    			FileWriteLine($sHTMLfile, '		<th class="sortierbar">Menge Akt.</th>')
    			FileWriteLine($sHTMLfile, '		<th class="sortierbar">AVV</th>')
    			FileWriteLine($sHTMLfile, '		<th class="sortierbar">Teilnehmer NR</th>')
    			FileWriteLine($sHTMLfile, '		<th class="sortierbar">Teilnehmer Rolle</th>')
    			FileWriteLine($sHTMLfile, '		<th class="sortierbar">Bearbeitungsstatus</th>')
    			FileWriteLine($sHTMLfile, '		<th class="sortierbar">Dokumentenstatus</th>')
    			FileWriteLine($sHTMLfile, '		<th class="sortierbar">Formularstatus (vorher)</th>')
    			FileWriteLine($sHTMLfile, '		<th class="sortierbar">Layer (nachher)</th>')
    			FileWriteLine($sHTMLfile, '	</tr>')
    			FileWriteLine($sHTMLfile, '</thead>')
    			FileWriteLine($sHTMLfile, '<tbody>')
    		EndIf
    	EndIf
    EndFunc   ;==>_HTMLbauen
    Alles anzeigen

    Ab der Codezeile "If GUICtrlRead($idCheckbox01) = 4 Then" möchte ich die HTMLSeite nach der neuen Methode bestücken, in der Codezeile "
    ElseIf GUICtrlRead($idCheckbox01) = 1 Then" bestücke ich noch nach der alten Methode.

    Hier jetzt der gekürzte Block, wo ich die Datenbank abfrage und die HTMLSeite entsprechend weiter baue

    Spoiler anzeigen
    AutoIt
    Func _SQLAbfrage($SelectedDatabase, $URL)
    	Local $oErrorHandler = ObjEvent("AutoIt.Error", "_ErrFunc")
    
    
    	If GUICtrlRead($idRadio_5) = 1 Then ; Massensuche ist aktiviert
    
    
    		$file = FileOpen($sFileOpenDialog, 0)
    		$aDateiInArray = FileReadToArray($file)
    		If @error Then
    			MsgBox($MB_SYSTEMMODAL, "", "Fehler beim Einlesen der Textdatei! @error: " & @error) ; An error occurred reading the current script file.
    		EndIf
    
    
    		If $sReturnRadio = 'Nachweis' Then
    			If GUICtrlRead($idCheckbox01) = 4 Then ; Checkbox ist nicht aktiv, d.h. Suche nach Nachweisnummer
    				_SQL_Datei_bauen()
    				Local $sSQLDateien = FileRead($sFilePath)
    				Local $SQLQuery = _MSSQL_Query($sqlCon, "SELECT NACHWEIS_ID, NACHWEISNR, NACHWEISTYP, RELEVANT, GUELTIG_VON, GUELTIG_BIS, ENTSORGUNGSMENGE_MAX, ENTSORGUNGSMENGE_AKT, ABFALLSCHLUESSEL, TEILNEHMER_ID, BEARBEITUNGSSTATUS, DOKUMENTENSTATUS, FORMULARSTATUS, LAST_LAYER_NAME FROM NACHWEIS where NACHWEISNR in " & $sSQLDateien)
    				If @error Then MsgBox($MB_SYSTEMMODAL, "COM Error1", "@error is set to COM error number." & @CRLF & "@error = 0x" & Hex(@error), 1)
    				$aSQLQueryErgebnis = $SQLQuery.GetRows
    
    
    				$PGGroesseTeilabschnitte = (100 / $PGAnzahlTeilabschnitte)
    				Local $sMyArray = UBound($aSQLQueryErgebnis, 1)
    				$PGProzentTeilabschnitt = ($PGGroesseTeilabschnitte / UBound($aSQLQueryErgebnis, 1))
    
    
    				If Not IsArray($aSQLQueryErgebnis) Then
    					ConsoleWrite("Keine Daten in " & $SelectedDatabase & " gefunden" & @CRLF)
    					GUICtrlSetData($sLabel06, "Gefundene Datensätze bei " & $SelectedDatabase & ": " & $sMyArray)
    					$PGUebertrag = $PGUebertrag + $PGGroesseTeilabschnitte
    					GUICtrlSetData($PGLeiste, $PGUebertrag)
    					GUISetState(@SW_SHOW)
    				Else
    					GUICtrlSetData($sLabel06, "Gefundene Datensätze bei " & $SelectedDatabase & ": " & $sMyArray)
    					GUISetState(@SW_SHOW)
    					For $i = 0 To UBound($aSQLQueryErgebnis) - 1 ; Hier könnte man auch $arDatenbanken[0] statt UBound($arDatenbanken) -1 verwenden, da die Anzahl dort geführt wird
    						$myCounter = $myCounter + 1
    						$PGUebertrag = $PGUebertrag + $PGProzentTeilabschnitt
    						FileWriteLine($sHTMLfile, '	<tr>')
    						FileWriteLine($sHTMLfile, '		<td>' & $myCounter & '</td>') ; Nummer
    						FileWriteLine($sHTMLfile, '		<td>' & $SelectedDatabase & '</td>') ; Datenbank
    						FileWriteLine($sHTMLfile, '		<td>' & $aSQLQueryErgebnis[$i][0] & '</td>') ; Nachweis ID
    						FileWriteLine($sHTMLfile, '		<td>' & $aSQLQueryErgebnis[$i][1] & '</td>') ; Nachweis NR
    						FileWriteLine($sHTMLfile, '		<td>' & $aSQLQueryErgebnis[$i][2] & '</td>') ; Nachweis Typ
    
    
    						If $aSQLQueryErgebnis[$i][3] = "0" Then ; Relevant
    							FileWriteLine($sHTMLfile, '		<td>Nein</td>') ;Nein
    						Else
    							FileWriteLine($sHTMLfile, '		<td>Ja</td>') ; Ja
    						EndIf
    
    
    						$CreateATTime = $aSQLQueryErgebnis[$i][4] ; Gültig von als Unixzeit
    						_unix2win($CreateATTime) ; Übergabe Unixzeit
    						FileWriteLine($sHTMLfile, '		<td>' & $datum & '</td>') ; Gültig von als Windowszeit
    
    
    						$CreateATTime = $aSQLQueryErgebnis[$i][5] ; Gültig bis als Unixzeit
    						_unix2win($CreateATTime) ; Übergabe Unixzeit
    						FileWriteLine($sHTMLfile, '		<td>' & $datum & '</td>') ; Gültig bis als Windowszeit
    
    
    						FileWriteLine($sHTMLfile, '		<td>' & $aSQLQueryErgebnis[$i][6] & '</td>') ; Entsorgungsmenge Max
    						FileWriteLine($sHTMLfile, '		<td>' & $aSQLQueryErgebnis[$i][7] & '</td>') ; Entsorgungsmenge Aktuell
    						FileWriteLine($sHTMLfile, '		<td>' & $aSQLQueryErgebnis[$i][8] & '</td>') ; Abfallschlüssel
    
    
    
    
    						Local $SQLQueryTeilnehmer = _MSSQL_Query($sqlCon, "SELECT BEHOERDLICHE_NUMMER, TEILNEHMERROLLE_ID FROM TEILNEHMER where TEILNEHMER_ID = " & $aSQLQueryErgebnis[$i][9])
    						$aSQLQueryTeilnehmerErgebnis = $SQLQueryTeilnehmer.GetRows
    						For $j = 0 To UBound($aSQLQueryTeilnehmerErgebnis) - 1
    							_TeilnehmerRollenIDFinden($aSQLQueryTeilnehmerErgebnis[$j][1])
    							FileWriteLine($sHTMLfile, '		<td>' & $aSQLQueryTeilnehmerErgebnis[$j][0] & '</td>') ; Teilnehmer NR
    							FileWriteLine($sHTMLfile, '		<td>' & $sTeilnehmerrolle & '</td>') ; Teilnehmer Rolle
    						Next
    
    
    						FileWriteLine($sHTMLfile, '		<td>' & $aSQLQueryErgebnis[$i][10] & '</td>') ; Bearbeitungsstatus
    						FileWriteLine($sHTMLfile, '		<td>' & $aSQLQueryErgebnis[$i][11] & '</td>') ; Dokumentenstatus
    						FileWriteLine($sHTMLfile, '		<td>' & $aSQLQueryErgebnis[$i][12] & '</td>') ; Formularstatus
    						FileWriteLine($sHTMLfile, '		<td>' & $aSQLQueryErgebnis[$i][13] & '</td>') ; Lastlayer Name
    
    
    						GUICtrlSetData($PGLeiste, $PGUebertrag)
    						GUISetState(@SW_SHOW)
    					Next
    				EndIf
    			EndIf
    		EndIf
    
    
    	Else ; Einzelsuche ist aktiv
    
    
    		If $sReturnRadio = 'Nachweis' Then
    			If GUICtrlRead($idCheckbox01) = 4 Then ; Checkbox ist nicht aktiv, d.h. Suche nach Nachweisnummer
    				Local $SQLQuery = _MSSQL_Query($sqlCon, "SELECT NACHWEIS_ID, NACHWEISNR, NACHWEISTYP, RELEVANT, GUELTIG_VON, GUELTIG_BIS, ENTSORGUNGSMENGE_MAX, ENTSORGUNGSMENGE_AKT, ABFALLSCHLUESSEL, TEILNEHMER_ID, BEARBEITUNGSSTATUS, DOKUMENTENSTATUS, FORMULARSTATUS, LAST_LAYER_NAME FROM NACHWEIS where NACHWEISNR like '%" & GUICtrlRead($sInput01) & "%';")
    				If @error Then MsgBox($MB_SYSTEMMODAL, "COM Error1", "@error is set to COM error number." & @CRLF & "@error = 0x" & Hex(@error), 1)
    				$aSQLQueryErgebnis = $SQLQuery.GetRows
    				;_ArrayDisplay($aSQLQueryErgebnis, "")
    				$PGGroesseTeilabschnitte = (100 / $PGAnzahlTeilabschnitte)
    				Local $sMyArray = UBound($aSQLQueryErgebnis, 1)
    				$PGProzentTeilabschnitt = ($PGGroesseTeilabschnitte / UBound($aSQLQueryErgebnis, 1))
    
    
    				If Not IsArray($aSQLQueryErgebnis) Then
    					ConsoleWrite("Keine Daten in " & $SelectedDatabase & " gefunden" & @CRLF)
    					GUICtrlSetData($sLabel06, "Gefundene Datensätze bei " & $SelectedDatabase & ": " & $sMyArray)
    					$PGUebertrag = $PGUebertrag + $PGGroesseTeilabschnitte
    					GUICtrlSetData($PGLeiste, $PGUebertrag)
    					GUISetState(@SW_SHOW)
    				Else
    					_ArrayToClip($aSQLQueryErgebnis) ; Array wird in die Zwischenablage geschrieben
    					Local $sZwischenAblage1 = ClipGet() ; Zwischenablage wir in Variable geschrieben
    					Local $sZwischenAblage2 = StringRegExpReplace($sZwischenAblage1, '[|]', @TAB) ; | wird gegen @TAB ausgetauscht
    					FileWrite($sInputfile, $sZwischenAblage2)
    
    
    					GUICtrlSetData($sLabel06, "Gefundene Datensätze bei " & $SelectedDatabase & ": " & $sMyArray)
    					GUISetState(@SW_SHOW)
    				EndIf
    		EndIf
    	EndIf
    	FileClose($sInputfile)
    	Return $myCounter
    	Return $PGUebertrag
    EndFunc   ;==>_SQLAbfrage
    Alles anzeigen

    Im Block "If GUICtrlRead($idRadio_5) = 1 Then ; Massensuche ist aktiviert" erstelle ich herkömmlich die HTML Seite, im Block " Else ; Einzelsuche ist aktiv" dann wieder optimiert.


    Gruß und Danke für die Hilfe


    C4F

  • Array vorne erweitern

    • Code4Fun
    • 6. Februar 2017 um 16:31

    Ok Ok, der Titel ist jetzt .... etwas komisch.

    Am besten ich fange mal vorne an. Aktuell habe ich ein Script, welches sich der Reihe nach durch unterschiedliche Datenbanken anmeldet, dort immer den gleichen SQL Select ausführt. Das Ergebnis steckt dann ja in einem Array. Zusätzlich habe ich noch einen Counter laufen. Mit der Information "Counter", "Datenbank" und Array baue ich eine HTML Seite zusammen. Bei ca. 10000 Datensätzen dauert das leider eine gewisse (zu lange) Zeit.

    Jetzt habe ich herausgefunden, wie ich mit einem JavaScript die HTML Seite sehr viel schneller aufbauen kann. Dazu lade ich das Array komplett in die Zwischenablage, verändere dort noch Strings (aus "|" wird ein @TAB) und speichere das mit FileWrite in eine Textdatei. Diese Textdatei wird dann von dem JavaScript ausgelesen und baut dann die HTML Seite auf. Geht im Vergleich zur ersten Methode sauschnell.

    Da ich jetzt nicht mehr Zeilenweise durch das Array gehe um die HTML Seite zu generieren, suche ich eine Möglichkeit, das Array in der Zwischenablage "vorne" zu erweitern. Schön wäre es, wenn ich dort die Zeilennummern (Counter) noch angezeigt bekomme. Was aber wichtiger wäre, sind die Datenbanken, d.h. ich finde ja eventuell in unterschiedlichen Datenbanken Informationen und muss dann in der HTML optisch darstellen, aus welcher Datenbank der Datensatz gefunden wurde.

    Das Array, welches in die Zwischenablage kommt und dort dann noch Stringmanipuliert wurde, sieht z.B. so aus:

    Code
    ID	EN-SN NR	TYPE	RELEVANT
    70269	ENBASCK09066	EN	1
    60193	ENBASCK09005	EN	0
    143906	ENBASCK09050	EN	1
    1626	ENBASCK09033	EN	1

    Ziel wäre dann sowas

    Code
    Counter	DB	ID	EN-SN NR	TYPE	RELEVANT
    1	DB1	70269	ENBASCK09066	EN	1
    2	DB1	60193	ENBASCK09005	EN	0
    3	DB2	143906	ENBASCK09050	EN	1
    4	DB3	1626	ENBASCK09033	EN	1


    Leider habe ich keine Ahnung, wie ich hier rausgehen soll. Ziel muss halt sein, das es schneller geht, als Zeilenweise die HTML Datei aufzubauen.

    Gruß und Dank

    C4F

  • Hilfe bei Erstellung von Tabulator getrennter Textdatei

    • Code4Fun
    • 6. Februar 2017 um 09:50

    Guten Morgen,

    ich muss eine Tabulator getrennte Textdatei erstellen, habe jedoch Probleme damit.

    Anbei mal der Code, wie ich das machen möchte

    AutoIt
    FileWriteLine($sInputfile, 'NR' & "{TAB}")
    FileWriteLine($sInputfile, 'DB' & "{TAB}")
    FileWriteLine($sInputfile, 'ID' & "{TAB}")

    Leider erhalte ich hier eine Textdatei mit folgendem Inhalt, d.h es steht das Wort "{TAB}" in der Textdatei


    NR{TAB}
    DB{TAB}
    ID{TAB}

    Muss ich hier eventuell ein "Send" mit einbauen?

    Gruß und Danke

    C4F

    Nachtrag: Lösung hier gefunden: Filewrite sendet statt einem tab nur {tab}

  • Brauche Alternative zu StringIsAlNum für Bindestrich

    • Code4Fun
    • 31. Januar 2017 um 16:22

    Hallo chesstiger, vielen Dank. Hat funktioniert.

  • Brauche Alternative zu StringIsAlNum für Bindestrich

    • Code4Fun
    • 31. Januar 2017 um 15:44

    Hallo zusammen,

    in meinem Beispielscript verwende ich in Zeile 3 StringIsAlNum. Leider ist das nicht ganz das, was ich brauche. Der String soll die Zeichen 0 bis 9, a-z, A-Z sowie den Bindestrich "-" und öäü und ÄÖÜ enthalten können.
    Leider gibt es mit dem Bindestrich Probleme, da dieser mit StringIsAlNum nicht abbildbar ist.

    Spoiler anzeigen
    AutoIt
    If $sReturnRadio = 'Nachweis' Then
    		If GUICtrlRead($idCheckbox01) = 4 Then ; Checkbox ist nicht aktiv, d.h. Suche nach Nachweisnummer
    			If StringIsAlNum($sReturnOutput) Then
    ;~ 			MsgBox($MB_SYSTEMMODAL, "", "Gut")
    				Return 1 ; Erfolgreich
    			Else
    				Local $iResponse = MsgBox(16, "Falsche Eingabe", "Die eingegebene Nachweis Nummer " & $sReturnOutput & " enthält nicht zugelassene Zeichen!")
    				Return 0 ;Fehler
    ;~ 			Exit Run(@ScriptFullPath)
    			EndIf
    			If $iInputLaenge > "12" Then
    				Local $iResponse = MsgBox(16, "Falsche Eingabe", "Die eingegebene Nachweis Nummer hat " & $iInputLaenge & " Zeichen!" & @CRLF & "Es sind maximal 12 Zeichen erlaubt.!")
    				Return 0 ;Fehler
    ;~ 			Exit Run(@ScriptFullPath)
    			EndIf
    		Else
    			Return 1 ; Erfolgreich
    		EndIf
    	EndIf
    Alles anzeigen

    Was kann ich hier als Alternative nehmen?

    Gruß C4F

  • Skript nach Stringüberprüfung weiter laufen lassen

    • Code4Fun
    • 23. Januar 2017 um 11:30

    Kaum hatte ich Zeilen geschrieben, ist es mir auch eingefallen. Es gibt einfach Tag, da steht man auf der Leitung.

    Nochmals vielen Dank alpines, mir ist damit sehr geholfen.

  • Skript nach Stringüberprüfung weiter laufen lassen

    • Code4Fun
    • 23. Januar 2017 um 11:24

    Guten Morgen und Danke für das Beispielscript. Habe das jetzt mal entsprechend bei mir eingebaut. Es gibt jetzt aber noch folgendes Problem. Ich drücke ja $hButton1. Dann werden die Radiobuttons ausgelesen und danach dann _InputAuslesen(). Hier wird dann z.B. ein Return 0 gesetzt, d.h. in der If Abfrage geht es weiter mit _GuiReset(). Das funktioniert auch wunderbar. Allerdings befinde ich mich ja immer noch im gedrückten $hButton1 Modus, d.h. es geht dann weiter mit _HTMLbauen() und _DBAbfragen.

    Was muss man denn eingeben, damit $hButton1 verlassen wird?

    Spoiler anzeigen
    AutoIt
    While 1
    	$msg = GUIGetMsg()
    
    
    	Switch $msg
    		Case $GUI_EVENT_CLOSE
    			_MSSQL_End($sqlCon)
    			GUIDelete()
    			Exit
    
    
    		Case $hButton1
    			_RadioButtonAuslesen()
    			If _InputAuslesen() = 1 Then
    ;~ 				MsgBox(0,0, "Suche erfolgreich.")
    				;Andere GUIs zeigen oder Sachen erledigen
    			Else
    				_GuiReset()
    			EndIf
    			_HTMLbauen()
    			_DBAbfragen()
    
    
    		Case $idRadio_1
    			GUICtrlSetState($sInput01, $GUI_ENABLE)
    			GUISetState(@SW_SHOW)
    
    
    		Case $idRadio_2
    			GUICtrlSetState($sInput01, $GUI_ENABLE)
    			GUISetState(@SW_SHOW)
    
    
    		Case $idRadio_3
    			GUICtrlSetState($sInput01, $GUI_ENABLE)
    			GUISetState(@SW_SHOW)
    	EndSwitch
    WEnd
    Alles anzeigen
  • Skript nach Stringüberprüfung weiter laufen lassen

    • Code4Fun
    • 23. Januar 2017 um 08:24

    Hallo alpines,

    sorry, jetzt stehe ich gerade voll auf dem Schlauch. Kannst Du mir bitte ein kleines Beispielscript posten (muss nichts mit meinem zu tun haben, nur damit ich verstehe, was du meinst). Danke

    Nachtrag um 10:40 Uhr:
    Habe es jetzt so gelöst (zwar nicht schön, aber funktioniell)

    Spoiler anzeigen
    AutoIt
    Func _InputAuslesen()
    	$sReturnInput = GUICtrlRead($sInput01)
    	ClipPut($sReturnInput)
    	Local $iInputLaenge = StringLen($sReturnInput)
    
    
    	If $sReturnRadio = 'Übernahmeschein' Then
    		If StringIsDigit($sReturnInput) = 1 Then
    ;~ 			MsgBox(0, "Zahl", $sReturnInput & " ist eine Zahl")
    		Else
    			Local $iResponse = MsgBox(16, "Fehler", $sReturnInput & " ist keine Zahl")
    			Exit Run(@ScriptFullPath)
    		EndIf
    
    
    		If $iInputLaenge > "14" Then
    			Local $iResponse = MsgBox(16, "Falsche Eingabe", "Die eingegebene UNS Nummer hat " & $iInputLaenge & " Zahlen!" & @CRLF & "Es sind maximal 14 Zahlen erlaubt.!")
    			Exit Run(@ScriptFullPath)
    		EndIf
    	EndIf
    
    
    	If $sReturnRadio = 'Begleitschein' Then
    		If StringIsDigit($sReturnInput) = 1 Then
    ;~ 			MsgBox(0, "Zahl", $sReturnInput & " ist eine Zahl")
    		Else
    			Local $iResponse = MsgBox(16, "Fehler", $sReturnInput & " ist keine Zahl")
    			Exit Run(@ScriptFullPath)
    		EndIf
    
    
    		If $iInputLaenge > "14" Then
    			Local $iResponse = MsgBox(16, "Falsche Eingabe", "Die eingegebene BGS Nummer hat " & $iInputLaenge & " Zahlen!" & @CRLF & "Es sind maximal 14 Zahlen erlaubt.!")
    			Exit Run(@ScriptFullPath)
    		EndIf
    	EndIf
    
    
    	If $sReturnRadio = 'Nachweis' Then
    		If StringIsAlNum($sReturnInput) Then
    ;~ 			MsgBox($MB_SYSTEMMODAL, "", "Gut")
    		Else
    			Local $iResponse = MsgBox(16, "Falsche Eingabe", "Die eingegebene Nachweis Nummer " & $sReturnInput & " enthält nicht zugelassene Zeichen!")
    			Exit Run(@ScriptFullPath)
    		EndIf
    
    
    		If $iInputLaenge > "12" Then
    			Local $iResponse = MsgBox(16, "Falsche Eingabe", "Die eingegebene Nachweis Nummer hat " & $iInputLaenge & " Zeichen!" & @CRLF & "Es sind maximal 12 Zeichen erlaubt.!")
    			Exit Run(@ScriptFullPath)
    		EndIf
    	EndIf
    EndFunc   ;==>_InputAuslesen
    Alles anzeigen
  • Skript nach Stringüberprüfung weiter laufen lassen

    • Code4Fun
    • 20. Januar 2017 um 16:52

    Abbrechen will ich gar nicht. Wenn die MsgBox kommt (ich will hier nur eine OK Schaltfläche sehen), soll beim drücken von OK zurück zur GUI geschaltet werden, damit folgendes Fenster wieder erscheint:

    Gruß C4F

  • Skript nach Stringüberprüfung weiter laufen lassen

    • Code4Fun
    • 20. Januar 2017 um 15:35

    Hallo alpines,

    erst mal vielen Dank für die Unterstützung. Ja, das Prinzip habe ich verstanden, aber ich baue das glaube an der falschen Stelle ein. Ich poste jetzt mal ein paar Code Snipsel, vielleicht kannst Du mir sagen, wo dass dann rein muss. In Zeile 26 wird die besagte Schaltfläche gedrückt. Aktuell habe ich die Do...Until Schleife in der Funktion _InputAuslesen eingebaut, ich glaube aber, dass das falsch ist. Wäre hier für Hilfe sehr dankbar.

    Gruß C4F

    Spoiler anzeigen
    AutoIt
    #Region ; GUI erstellen
    $hGUI = GUICreate("Dokumente finden - Version: " & $sVersion, $hGUIBreite, $hGUIHoehe, -1, -1) ; GUI mit Überschrift
    $sLabel01 = GUICtrlCreateLabel("Suche ", 10, 27)
    
    
    GUICtrlCreateGroup("Dokumentenart", 50, 0, 135, 100)
    GUIStartGroup()
    $idRadio_1 = GUICtrlCreateRadio("Nachweis", 60, 25, 120, 20)
    $idRadio_2 = GUICtrlCreateRadio("Begleitschein", 60, 50, 120, 20)
    $idRadio_3 = GUICtrlCreateRadio("Übernahmeschein", 60, 75, 120, 20)
    $sLabel02 = GUICtrlCreateLabel("Nr.:", 200, 25)
    $sInput01 = GUICtrlCreateInput("", 230, 22, 120, 20)
    GUICtrlSetState($sInput01, $GUI_DISABLE)
    $hButton1 = GUICtrlCreateButton("suchen", 360, 21, 120, 22, BitOR($GUI_SS_DEFAULT_BUTTON, $BS_DEFPUSHBUTTON))
    $sLabel03 = GUICtrlCreateLabel("aktuelle DB: ", 200, 80, 250)
    GUISetState(@SW_SHOW)
    #EndRegion ; GUI erstellen
    
    
    While 1
    	$msg = GUIGetMsg()
    
    
    	Switch $msg
    		Case $GUI_EVENT_CLOSE
    			_MSSQL_End($sqlCon)
    			GUIDelete()
    			Exit
    		Case $hButton1
    			_RadioButtonAuslesen()
    			_InputAuslesen()
    			_HTMLbauen()
    			_DBAbfragen()
    		Case $idRadio_1
    			GUICtrlSetState($sInput01, $GUI_ENABLE)
    			GUISetState(@SW_SHOW)
    
    
    		Case $idRadio_2
    			GUICtrlSetState($sInput01, $GUI_ENABLE)
    			GUISetState(@SW_SHOW)
    
    
    		Case $idRadio_3
    			GUICtrlSetState($sInput01, $GUI_ENABLE)
    			GUISetState(@SW_SHOW)
    
    
    	EndSwitch
    WEnd
    
    
    Func _RadioButtonAuslesen()
    	If GUICtrlRead($idRadio_1) = 1 Then
    		$sReturnRadio = 'Nachweis'
    	EndIf
    
    
    	If GUICtrlRead($idRadio_2) = 1 Then
    		$sReturnRadio = 'Begleitschein'
    	EndIf
    
    
    	If GUICtrlRead($idRadio_3) = 1 Then
    		$sReturnRadio = 'Übernahmeschein'
    	EndIf
    EndFunc   ;==>_RadioButtonAuslesen
    
    
    Func _InputAuslesen()
    	Do
    		$sReturnInput = GUICtrlRead($sInput01)
    		Local $iInputLaenge = StringLen($sReturnInput)
    
    
    		If $sReturnRadio = 'Übernahmeschein' Then
    			If StringIsDigit($sReturnInput) = 1 Then
    ;~ 			MsgBox(0, "Zahl", $sReturnInput & " ist eine Zahl")
    			Else
    				Local $iResponse = MsgBox(53, "Fehler", $sReturnInput & " ist keine Zahl")
    				If $iResponse = 2 Then Exit
    			EndIf
    
    
    			If $iInputLaenge > "14" Then
    				Local $iResponse = MsgBox(53, "Falsche Eingabe", "Die eingegebene UNS Nummer hat " & $iInputLaenge & " Zahlen!" & @CRLF & "Es sind maximal 14 Zahlen erlaubt.!")
    				If $iResponse = 2 Then Exit
    			EndIf
    		EndIf
    
    
    		If $sReturnRadio = 'Begleitschein' Then
    			If StringIsDigit($sReturnInput) = 1 Then
    ;~ 			MsgBox(0, "Zahl", $sReturnInput & " ist eine Zahl")
    			Else
    				Local $iResponse = MsgBox(53, "Fehler", $sReturnInput & " ist keine Zahl")
    				If $iResponse = 2 Then Exit
    			EndIf
    
    
    			If $iInputLaenge > "14" Then
    				Local $iResponse = MsgBox(53, "Falsche Eingabe", "Die eingegebene BGS Nummer hat " & $iInputLaenge & " Zahlen!" & @CRLF & "Es sind maximal 14 Zahlen erlaubt.!")
    				If $iResponse = 2 Then Exit
    			EndIf
    		EndIf
    
    
    		If $sReturnRadio = 'Nachweis' Then
    			If StringIsAlNum($sReturnInput) Then
    ;~ 			MsgBox($MB_SYSTEMMODAL, "", "Gut")
    			Else
    				Local $iResponse = MsgBox(21, "Falsche Eingabe", "Die eingegebene Nachweis Nummer " & $sReturnInput & " enthält nicht zugelassene Zeichen!")
    				If $iResponse = 2 Then Exit
    			EndIf
    
    
    			If $iInputLaenge > "12" Then
    				Local $iResponse = MsgBox(53, "Falsche Eingabe", "Die eingegebene Nachweis Nummer hat " & $iInputLaenge & " Zeichen!" & @CRLF & "Es sind maximal 12 Zeichen erlaubt.!")
    				If $iResponse = 2 Then Exit
    			EndIf
    		EndIf
    	Until $iResponse = 10 ;
    EndFunc   ;==>_InputAuslesen
    Alles anzeigen
  • Skript nach Stringüberprüfung weiter laufen lassen

    • Code4Fun
    • 20. Januar 2017 um 14:39

    Hallo,

    Ok, die Themenüberschrift ist etwas ... komisch.

    Folgende Frage. Ich habe ein Script, welches eine Inputbox hat. Wenn ich dann via Schaltfläche das Script starte, wird als erstes der Inhalt der Inputbox überprüft. Wenn dieser nicht korrekt ist, zeige ich eine MsgBox an und beende aktuell mit exit. Ich würde es gerne ab so haben, das ich die MsgBox mit OK betätige, die Inputbox geleert wird und man gleich einen weiteren Versuch mit korrekten Daten unternehmen kann (also nicht das Script nochmals komplett neu starten muss).

    Danke für eure Gedankenanstöße
    C4F

  • FotoSort

    • Code4Fun
    • 12. Mai 2016 um 12:24

    Hallo, bin gerade über diese Anwendung gestolpert. Wollte das Script mit der 3.3.14.2 kompilieren, bekomme aber diverse Fehler angezeigt. Habe die FotoSort.au3 von hier genommen.

  • Priorität von HotKeySet

    • Code4Fun
    • 12. Mai 2016 um 08:21

    An euch Alle:

    VIELEN DANK - Es läuft alles wie gewünscht

    Thema wird geschlossen

  • Priorität von HotKeySet

    • Code4Fun
    • 11. Mai 2016 um 16:57

    Also aktuell habe ich es mit HotKeySet gelöst und muss sagen, es läuft bisher ohne Probleme und sauber. Jetzt hätte ich nur noch eine kleine Frage. Sozusagen das i-Tüpfelchen auf der Torte.

    Ist Situation:

    • Anwendung A (z.B. ein Browser) ist im Fokus
    • Anwendung B (mein Programm) schlummert im Tray
    • Anwendung C wird durch Anwendung B bedient.

    Wenn ich in Anwendung A arbeite, dann z.B. F1 drücke, wird die Funktion ausgeführt. Hierbei bekommt Anwendung C den Fokus (auch wenn diese versteckt läuft). Ich muss jetzt wieder mit der Maus in Anwendung A klicken, damit ich weiter arbeiten kann.

    Gibt es eine Möglichkeit, das ich in Anwendung B am Anfang der Funktion das Betriebssystem frage, welche Anwendung (in diesem Fall Anwendung A) gerade den Fokus hat, diesen dann in einer Variablen speichere, meine eigentliche Funktion ausführe und am Ende der Anwendung A wieder den Fokus zurück gebe?

    Danke für eure Antworten

  • Priorität von HotKeySet

    • Code4Fun
    • 11. Mai 2016 um 12:13

    Habe gerade mal das Beispiel aus der Hilfe getestet. Die GUI muss im Fokus stehen, sonst geht es leider nicht. Allerdings habe ich auch noch einen zweiten Test gemacht. Ob das Ergebnis richtig von mir interpretiert wird, weiß ich nicht, aber mitteilen möchte ich es.

    Vor längerer Zeit habe ich schon eine andere Anwendung gemacht, wo ich mit F3 und F4 Tasten gearbeitet habe. Die neue Anwendung mit F1 bis F5 lässt zur Zeit nur Messageboxen erscheinen. Die alte Anwendung lässt bei F3 auch eine Messagebox erscheinen, wenn eine gewisse Bedingung nicht vorhanden ist, d.h. hinter F3 können 2 unterschiedliche Messageboxen erscheinen. Wenn ich jetzt die alte Anwendung starte und danach die neue Anwendung, dann bekomme ich bei F3 die Messagebox der alten Anwendung (da diese vermutlich vorher sich bei Windows "registriert"). Wenn ich beide Anwendungen beende, dann erst die neue Anwendung starte und danach die alte Anwendung, bekomme ich bei F3 die neue Messagebox angezeigt.

    D.h. wenn ich meine Anwendung vor allen anderen Anwendungen starte, sollte ich doch gute Chancen haben, das meine F1 - F5 Belegung akzeptiert wird, oder?

  • Priorität von HotKeySet

    • Code4Fun
    • 11. Mai 2016 um 11:34

    Danke erst mal an alle für eure Antworten.

    An autoBert noch eine Frage zu folgender Aussage

    Zitat von autoBert

    Mit Gui könntest du GUISetAccelerators verwenden, diese Acceleratorkeys sind nur gültig wenn die GUI aktiv ist.

    Wenn ich der Anwendung eine GUI verpasse, was ja kein Problem ist, muss diese GUI (wenn Sie aktiv ist) dann im Fokus sein, oder kann die auch minimiert in der Taskleiste liegen?

  • Hauptanzeige unter Windows 10 ermitteln

    • Code4Fun
    • 11. Mai 2016 um 09:46

    Hallo Espyre,

    vielen Dank - Perfekt

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™