Hallo,
heute habe ich eine "Bibliothek" fertig gestellt - das Projekt hatte ich vor 10 Jahren schon einmal unter Dos mit CA-Clipper 5.2 auf die Beine gestellt und nun weitgehend in Autoit nachgebaut.
Zur Beschreibung:
Mit diesem Programm kann man seine Bücher verwalten. Es besteht die Möglichkeit Datensätzte direkt für's Archiv oder den Verleih zu speichern. Die Daten können Jederzeit umgespeichert werden - Archiv/Verleih und umgekehrt. Einfache Menü-führung: Eingaben, Suchen, Archiv- und Verleih-Übersicht. Löschen und Editieren ist per Doppel-Click in den Entsprechenden Listen möglich.
Bibliothek V 1.0.1
Spoiler anzeigen
Opt("GUIOnEventMode", 0)
#NoTrayIcon
#include <GuiListView.au3>
#include <GUIConstants.au3>
#include "SQLite.au3"
#include <Date.au3>
Global $ListView
$datei1 = @ScriptDir & "\bibliothek.db"
$a_Status = ""
$b_Status = ""
$i_Status = ""
$s_Status = ""
$v_Status = ""
$i_Bearbeiten = ""
;--- Haupt-Menue
;
$Haupt_Menue = GUICreate("", 580, 488, -1, -1);--> ,$WS_POPUPWINDOW,$WS_EX_TOOLWINDOW)
GUISetBkColor(0x004A6F)
$Menue1 = GUICtrlCreateGroup("", 8, 4, 564, 474)
$LabelEins = GUICtrlCreateLabel("",16,30,554,20,$SS_CENTER)
GUICtrlSetData ($LabelEins, "Bibliothek V 1.0.1 (C)2008 by Trallala")
GUICtrlSetFont($LabelEins, 10, 400, 0, "")
GUICtrlSetColor($LabelEins, 0xC0C0FF)
GUICtrlCreateLabel("Neue Bücher",100,120,250,20)
GUICtrlSetFont(-1, 12, 400, 0, "")
GUICtrlSetColor(-1, 0xC0C0FF)
$Eingabe = GUICtrlCreateButton("Eingeben",420, 120, 60, 20)
GUICtrlCreateLabel("Nummer, Titel, Autor, Jahrgang",100,170,300,20)
GUICtrlSetFont(-1, 12, 400, 0, "")
GUICtrlSetColor(-1, 0xC0C0FF)
$Suche = GUICtrlCreateButton("Suchen",420, 170, 60, 20)
GUICtrlCreateLabel("Archiv-Übersicht",100,220,250,20)
GUICtrlSetFont(-1, 12, 400, 0, "")
GUICtrlSetColor(-1, 0xC0C0FF)
$Archiv = GUICtrlCreateButton("Archiv",420, 220, 60, 20)
GUICtrlCreateLabel("Verleih-Übersicht",100,270,220,20)
GUICtrlSetFont(-1, 12, 400, 0, "")
GUICtrlSetColor(-1, 0xC0C0FF)
$Verleih = GUICtrlCreateButton("Verleih",420, 270, 60, 20)
GUICtrlCreateLabel("Gesamt-Übersicht",100,320,220,20)
GUICtrlSetFont(-1, 12, 400, 0, "")
GUICtrlSetColor(-1, 0xC0C0FF)
$Gesamt = GUICtrlCreateButton("Gesamt",420, 320, 60, 20)
GUICtrlCreateLabel("Programm verlassen",100,370,320,20)
GUICtrlSetFont(-1, 12, 400, 0, "")
GUICtrlSetColor(-1, 0xC0C0FF)
$Beenden = GUICtrlCreateButton("Beenden",420, 370, 60, 20)
$Stelle = 0
$Treffer = 0
GUISetState()
;
; --- Eingabe-Menue
;
$Eingabe_Menue = GUICreate("", 580, 488, -1, -1); --> ,$WS_POPUPWINDOW,$WS_EX_TOOLWINDOW)
GUISetBkColor(0x004A6F)
$Menue2 = GUICtrlCreateGroup("", 8, 4, 564, 474)
$LabelEins = GUICtrlCreateLabel("",16,30,554,20,$SS_CENTER)
GUICtrlSetData ($LabelEins, "Bibliothek V 1.0.1 (C)2008 by Trallala")
GUICtrlSetFont($LabelEins, 10, 400, 0, "")
GUICtrlSetColor($LabelEins, 0xC0C0FF)
$i_Bearbeiten = GUICtrlCreateLabel("",115,110,100,20)
GUICtrlSetFont(-1, 10, 400, 0, "")
GUICtrlSetColor(-1, 0x0FFCA00)
GUICtrlCreateLabel ("Nummer", 115,140,100,20)
GUICtrlSetFont(-1, 10, 400, 0, "")
GUICtrlSetColor(-1, 0xC0C0FF)
$i_Nr = GUICtrlCreateEdit("", 215, 140, 70, 20,BitOR($ES_NUMBER,$ES_AUTOVSCROLL,$ES_WANTRETURN))
GUICtrlSetLimit ($i_Nr ,
GUICtrlCreateLabel ("Titel", 115,170,100,20)
GUICtrlSetFont(-1, 10, 400, 0, "")
GUICtrlSetColor(-1, 0xC0C0FF)
$i_Titel = GUICtrlCreateEdit("", 215, 170, 250, 20,BitOR($ES_AUTOVSCROLL,$ES_WANTRETURN))
GUICtrlSetLimit ($i_Titel , 40)
GUICtrlCreateLabel ("Autor", 115,200,100,20)
GUICtrlSetFont(-1, 10, 400, 0, "")
GUICtrlSetColor(-1, 0xC0C0FF)
$i_Autor = GUICtrlCreateEdit("", 215, 200, 125, 20,BitOR($ES_AUTOVSCROLL,$ES_WANTRETURN))
GUICtrlSetLimit ($i_Autor, 20)
GUICtrlCreateLabel ("Jahrgang", 115,230,100,20)
GUICtrlSetFont(-1, 10, 400, 0, "")
GUICtrlSetColor(-1, 0xC0C0FF)
$i_Jahrgang = GUICtrlCreateEdit("", 215, 230, 35, 20,BitOR($ES_NUMBER,$ES_AUTOVSCROLL,$ES_WANTRETURN))
GUICtrlSetLimit ($i_Jahrgang, 4)
GUICtrlCreateLabel ("Stelle:", 115,260,100,20)
GUICtrlSetFont(-1, 10, 400, 0, "")
GUICtrlSetColor(-1, 0xC0C0FF)
GUIStartGroup()
$Check_Verleih = GUICtrlCreateCheckbox("Archiv", 215, 260, 60, 20)
GUICtrlSetFont(-1, 10, 400, 0, "")
GUICtrlSetColor(-1, 0xA0DC00)
$Label_Verleih1 = GUICtrlCreateLabel ("Ausgeliehen an:", 115,290,100,20)
GUICtrlSetFont(-1, 10, 400, 0, "")
GUICtrlSetColor(-1, 0xC0C0FF)
$i_wer = GUICtrlCreateEdit("", 215, 290, 125, 20,BitOR($ES_AUTOVSCROLL,$ES_WANTRETURN))
GUICtrlSetLimit ($i_wer , 20)
$Label_Verleih2 = GUICtrlCreateLabel ("Ausgabe:", 115,320,100,20)
GUICtrlSetFont(-1, 10, 400, 0, "")
GUICtrlSetColor(-1, 0xC0C0FF)
$i_date1 = GUICtrlCreateDate ("", 215,320,80,20,$WS_TABSTOP)
$Label_Verleih3 = GUICtrlCreateLabel ("Rückgabe:", 115,350,100,20)
GUICtrlSetFont(-1, 10, 400, 0, "")
GUICtrlSetColor(-1, 0xC0C0FF)
$i_date2 = GUICtrlCreateDate ("", 215,350,80,20,$WS_TABSTOP )
;
$i_Status = GUICtrlCreateLabel ("", 115,400,235,20)
GUICtrlSetFont(-1, 10, 400, 0, "")
GUICtrlSetColor(-1, 0xFEADD1)
;
$Eingabe_Loeschen = GUICtrlCreateButton("Löschen",265, 440, 60, 20)
$Eingabe_Speichern = GUICtrlCreateButton("Speichern",375, 440, 60, 20)
$Eingabe_Aendern = GUICtrlCreateButton("Ändern",375, 440, 60, 20)
$Eingabe_Abbruch = GUICtrlCreateButton("Abbruch",485, 440, 60, 20)
;
;--- Such-Menue
;
$Such_Menue = GUICreate("", 580, 488, -1, -1); --> ,$WS_POPUPWINDOW,$WS_EX_TOOLWINDOW)
GUISetBkColor(0x004A6F)
$Menue3 = GUICtrlCreateGroup("", 8, 4, 564, 474)
$LabelEins = GUICtrlCreateLabel("",16,30,554,20,$SS_CENTER)
GUICtrlSetData ($LabelEins, "Bibliothek V 1.0.1 (C)2008 by Trallala")
GUICtrlSetFont($LabelEins, 10, 400, 0, "")
GUICtrlSetColor($LabelEins, 0xC0C0FF)
GUICtrlCreateLabel("Suche nach:",115,150,80,20)
GUICtrlSetFont(-1, 10, 400, 0, "")
GUICtrlSetColor(-1, 0xFFCA00)
GUIStartGroup()
$radio_suche1 = GUICtrlCreateRadio ("Nummer", 115,180,100,20)
GUICtrlSetFont(-1, 10, 400, 0, "")
GUICtrlSetColor(-1, 0xC0C0FF)
GUICtrlSetState ($radio_suche1, $GUI_CHECKED)
$Suche_das = 1
$s_Nr = GUICtrlCreateEdit("", 215, 180, 70, 20,BitOR($ES_AUTOVSCROLL,$ES_WANTRETURN))
GUICtrlSetLimit ($s_Nr ,
$radio_suche2 = GUICtrlCreateRadio ("Titel", 115,210,100,20)
GUICtrlSetFont(-1, 10, 400, 0, "")
GUICtrlSetColor(-1, 0xC0C0FF)
$s_Titel = GUICtrlCreateEdit("", 215, 210, 250, 20,BitOR($ES_AUTOVSCROLL,$ES_WANTRETURN))
GUICtrlSetLimit ($s_Titel , 40)
$radio_suche3 = GUICtrlCreateRadio ("Autor", 115,240,100,20)
GUICtrlSetFont(-1, 10, 400, 0, "")
GUICtrlSetColor(-1, 0xC0C0FF)
$s_Autor = GUICtrlCreateEdit("", 215, 240, 100, 20,BitOR($ES_AUTOVSCROLL,$ES_WANTRETURN))
GUICtrlSetLimit ($s_Autor, 20)
$radio_suche4 = GUICtrlCreateRadio ("Jahrgang", 115,270,100,20)
GUICtrlSetFont(-1, 10, 400, 0, "")
GUICtrlSetColor(-1, 0xC0C0FF)
$s_Jahrgang = GUICtrlCreateEdit("", 215, 270, 35, 20,BitOR($ES_NUMBER,$ES_AUTOVSCROLL,$ES_WANTRETURN))
GUICtrlSetLimit ($s_Jahrgang, 4)
GUICtrlCreateLabel("Suche in:",115,300,80,20)
GUICtrlSetFont(-1, 10, 400, 0, "")
GUICtrlSetColor(-1, 0xC0C0FF)
$Check_Suche = GUICtrlCreateCheckbox("Archiv", 215, 300, 60, 20)
GUICtrlSetFont(-1, 10, 400, 0, "")
GUICtrlSetColor(-1, 0xA0DC00)
$Suche_Start = GUICtrlCreateButton("Suche",395, 440, 60, 20)
$Suche_Abbruch = GUICtrlCreateButton("Abbruch",485, 440, 60, 20)
;
;--- Archiv-Übersicht
;
$Archiv_Menue = GUICreate("", 580, 488, -1, -1)
GUISetBkColor(0x004A6F)
$Menue5 = GUICtrlCreateGroup("", 8, 4, 564, 474)
$LabelEins = GUICtrlCreateLabel("",16,30,554,20,$SS_CENTER)
GUICtrlSetData ($LabelEins, "Bibliothek V 1.0.1 (C)2008 by Trallala")
GUICtrlSetFont($LabelEins, 10, 400, 0, "")
GUICtrlSetColor($LabelEins, 0xC0C0FF)
GUICtrlCreateLabel("Archiv-Übersicht:",30,60,110,20)
GUICtrlSetFont(-1, 10, 400, 0, "")
GUICtrlSetColor(-1, 0xFFCA00)
$ListView1 = GUICtrlCreateListView("ID: |Nummer: |Titel: |Autor: |Jahrgang: ", 30, 90, 518, 320)
;
GUICtrlCreateLabel("Mit einem Doppel-Click auf den gewünschten Eintrag, können",30,420,400,20)
GUICtrlSetFont(-1, 10, 400, 0, "")
GUICtrlSetColor(-1, 0xC0C0C0)
GUICtrlCreateLabel("Daten geändert und gelöscht werden.",30,440,400,20)
GUICtrlSetFont(-1, 10, 400, 0, "")
GUICtrlSetColor(-1, 0xC0C0C0)
$Archiv_Abbruch = GUICtrlCreateButton("Abbruch",485, 440, 60, 20)
;
;--- Verleih-Übersicht
;
$Verleih_Menue = GUICreate("", 580, 488, -1, -1)
GUISetBkColor(0x004A6F)
$Menue6 = GUICtrlCreateGroup("", 8, 4, 564, 474)
$LabelEins = GUICtrlCreateLabel("",16,30,554,20,$SS_CENTER)
GUICtrlSetData ($LabelEins, "Bibliothek V 1.0.1 (C)2008 by Trallala")
GUICtrlSetFont($LabelEins, 10, 400, 0, "")
GUICtrlSetColor($LabelEins, 0xC0C0FF)
GUICtrlCreateLabel("Verleih-Übersicht:",30,60,110,20)
GUICtrlSetFont(-1, 10, 400, 0, "")
GUICtrlSetColor(-1, 0xFFCA00)
$ListView2 = GUICtrlCreateListView("ID: |Nummer: |Titel: |Autor: |Jahrgang: |Verleih: (Person) |Ausgabe: |Rückgabe: ", 30, 90, 518, 320)
;
GUICtrlCreateLabel("Mit einem Doppel-Click auf den gewünschten Eintrag, können",30,420,400,20)
GUICtrlSetFont(-1, 10, 400, 0, "")
GUICtrlSetColor(-1, 0xC0C0C0)
GUICtrlCreateLabel("Daten geändert und gelöscht werden.",30,440,400,20)
GUICtrlSetFont(-1, 10, 400, 0, "")
GUICtrlSetColor(-1, 0xC0C0C0)
$Verleih_Abbruch = GUICtrlCreateButton("Abbruch",485, 440, 60, 20)
;
;--- Archiv-Treffer
;
$A_treffer = GUICreate("", 580, 488, -1, -1)
GUISetBkColor(0x004A6F)
$Menue7 = GUICtrlCreateGroup("", 8, 4, 564, 474)
$LabelEins = GUICtrlCreateLabel("",16,30,554,20,$SS_CENTER)
GUICtrlSetData ($LabelEins, "Bibliothek V 1.0.1 (C)2008 by Trallala")
GUICtrlSetFont($LabelEins, 10, 400, 0, "")
GUICtrlSetColor($LabelEins, 0xC0C0FF)
GUICtrlCreateLabel("Archiv-Treffer:",30,60,110,20)
GUICtrlSetFont(-1, 10, 400, 0, "")
GUICtrlSetColor(-1, 0xFFCA00)
$ListView3 = GUICtrlCreateListView("ID: |Nummer: |Titel: |Autor: |Jahrgang: |Verleih: (Person) |Ausgabe: |Rückgabe: ", 30, 90, 518, 320)
;
GUICtrlCreateLabel("Mit einem Doppel-Click auf den gewünschten Eintrag, können",30,420,400,20)
GUICtrlSetFont(-1, 10, 400, 0, "")
GUICtrlSetColor(-1, 0xC0C0C0)
GUICtrlCreateLabel("Daten geändert und gelöscht werden.",30,440,400,20)
GUICtrlSetFont(-1, 10, 400, 0, "")
GUICtrlSetColor(-1, 0xC0C0C0)
$A_Abbruch = GUICtrlCreateButton("Abbruch",485, 440, 60, 20)
;
;--- Verleih-Treffer
;
$V_treffer = GUICreate("", 580, 488, -1, -1)
GUISetBkColor(0x004A6F)
$Menue8 = GUICtrlCreateGroup("", 8, 4, 564, 474)
$LabelEins = GUICtrlCreateLabel("",16,30,554,20,$SS_CENTER)
GUICtrlSetData ($LabelEins, "Bibliothek V 1.0.1 (C)2008 by Trallala")
GUICtrlSetFont($LabelEins, 10, 400, 0, "")
GUICtrlSetColor($LabelEins, 0xC0C0FF)
GUICtrlCreateLabel("Verleih-Treffer:",30,60,110,20)
GUICtrlSetFont(-1, 10, 400, 0, "")
GUICtrlSetColor(-1, 0xFFCA00)
$ListView4 = GUICtrlCreateListView("ID: |Nummer: |Titel: |Autor: |Jahrgang: |Verleih: (Person) |Ausgabe: |Rückgabe: ", 30, 90, 518, 320)
;
GUICtrlCreateLabel("Mit einem Doppel-Click auf den gewünschten Eintrag, können",30,420,400,20)
GUICtrlSetFont(-1, 10, 400, 0, "")
GUICtrlSetColor(-1, 0xC0C0C0)
GUICtrlCreateLabel("Daten geändert und gelöscht werden.",30,440,400,20)
GUICtrlSetFont(-1, 10, 400, 0, "")
GUICtrlSetColor(-1, 0xC0C0C0)
$V_Abbruch = GUICtrlCreateButton("Abbruch",485, 440, 60, 20)
;
;--- Gesamt-Übersicht
;
$Gesamt_Menue = GUICreate("", 580, 488, -1, -1)
GUISetBkColor(0x004A6F)
$Menue9 = GUICtrlCreateGroup("", 8, 4, 564, 474)
$LabelEins = GUICtrlCreateLabel("",16,30,554,20,$SS_CENTER)
GUICtrlSetData ($LabelEins, "Bibliothek V 1.0.1 (C)2008 by Trallala")
GUICtrlSetFont($LabelEins, 10, 400, 0, "")
GUICtrlSetColor($LabelEins, 0xC0C0FF)
GUICtrlCreateLabel("Gesamt-Übersicht:",30,60,110,20)
GUICtrlSetFont(-1, 10, 400, 0, "")
GUICtrlSetColor(-1, 0xFFCA00)
$ListView5 = GUICtrlCreateListView("ID: |Nummer: |Titel: |Autor: |Jahrgang: ", 30, 90, 518, 320)
;
GUICtrlCreateLabel("Mit einem Doppel-Click auf den gewünschten Eintrag, können",30,420,400,20)
GUICtrlSetFont(-1, 10, 400, 0, "")
GUICtrlSetColor(-1, 0xC0C0C0)
GUICtrlCreateLabel("Daten geändert und gelöscht werden.",30,440,400,20)
GUICtrlSetFont(-1, 10, 400, 0, "")
GUICtrlSetColor(-1, 0xC0C0C0)
$Gesamt_Abbruch = GUICtrlCreateButton("Abbruch",485, 440, 60, 20)
GUIRegisterMsg(0x004E, "_DoubleClickOnListView");Die Funktion wird bei einem Klick auf die GUI aufgerufen!
[/autoit] [autoit][/autoit] [autoit];
;
GUISetState($Haupt_Menue)
While 1
$msg = GuiGetMsg()
Select
Case $msg = $GUI_EVENT_CLOSE
_DoSQL("VACUUM Biblio1;", $datei1)
ExitLoop
;
;--- Eingabe-Menue - start mit Eingabe-Modus: Archiv
Case $msg = $Eingabe
;
GUICtrlSetData($i_Bearbeiten,"Eingabe:")
GUICtrlSetData($i_Nr,"")
GUICtrlSetData($i_Titel,"")
GUICtrlSetData($i_Autor,"")
GUICtrlSetData($i_Jahrgang,"")
GUICtrlSetData($i_wer,"")
GUICtrlSetState($Label_Verleih1, $GUI_HIDE)
GUICtrlSetState($i_wer, $GUI_HIDE)
GUICtrlSetState($Label_Verleih2, $GUI_HIDE)
GUICtrlSetState($i_date1, $GUI_HIDE)
GUICtrlSetState($Label_Verleih3, $GUI_HIDE)
GUICtrlSetState($i_date2, $GUI_HIDE)
GUICtrlSetState ($Check_Verleih, $GUI_UNCHECKED)
GUICtrlSetData($Check_Verleih,"Archiv")
GUICtrlSetState($Eingabe_Loeschen, $GUI_HIDE)
GUICtrlSetState($Eingabe_Aendern, $GUI_HIDE)
GUICtrlSetState($Eingabe_Speichern, $GUI_SHOW)
GUISetState(@SW_HIDE, $Haupt_Menue)
GUISwitch($Eingabe_Menue)
GUISetState()
;
;--- Checkbox endscheidet ob die Daten für's Archiv oder Verleih gespeichert werden.
Case $Msg = $Check_Verleih
;
If GUICtrlRead( $Check_Verleih) = 4 Then
GUICtrlSetData($Check_Verleih,"Archiv")
GUICtrlSetState($Label_Verleih1, $GUI_HIDE)
GUICtrlSetState($i_wer, $GUI_HIDE)
GUICtrlSetData($i_wer,"")
GUICtrlSetState($Label_Verleih2, $GUI_HIDE)
GUICtrlSetState($i_date1,$GUI_HIDE)
GUICtrlSetState($Label_Verleih3, $GUI_HIDE)
GUICtrlSetState($i_date2,$GUI_HIDE)
$Stelle = 0
Else
GUICtrlSetData($Check_Verleih,"Verleih")
GUICtrlSetState($Label_Verleih1, $GUI_SHOW)
GUICtrlSetState($i_wer, $GUI_SHOW)
GUICtrlSetState($Label_Verleih2, $GUI_SHOW)
GUICtrlSetState($i_date1, $GUI_SHOW)
GUICtrlSetState($Label_Verleih3, $GUI_SHOW)
GUICtrlSetState($i_date2, $GUI_SHOW)
$Stelle = 1
EndIf
;
;--- Eingaben speichern
Case $Msg = $Eingabe_Speichern
If GUICtrlRead($i_Nr) = "" Then
GUICtrlSetData($i_Status,"")
GUICtrlSetData($i_Status,"Bitte die Nummer eingeben!")
ElseIf GUICtrlRead($i_Nr) = "0" Then
GUICtrlSetData($i_Status,"")
GUICtrlSetData($i_Status,"Bitte die Nummer großer als 0 eingeben!")
ElseIf GUICtrlRead($i_Titel) = "" Then
GUICtrlSetData($i_Status,"")
GUICtrlSetData($i_Status,"Bitte den Titel eingeben!")
ElseIf GUICtrlRead($i_Autor) = "" Then
GUICtrlSetData($i_Status,"")
GUICtrlSetData($i_Status,"Bitte den Autor eingeben!")
ElseIf GUICtrlRead($i_Jahrgang) = "" Then
GUICtrlSetData($i_Status,"")
GUICtrlSetData($i_Status,"Bitte den Jahrgang eingeben!")
ElseIf GUICtrlRead($Check_Verleih) = 1 And GUICtrlRead($i_wer) = "" Then
GUICtrlSetData($i_Status,"")
GUICtrlSetData($i_Status,"Bitte Eingabe fortsetzen!")
Else
GUICtrlSetData($i_Status,"Einen Moment bitte ...")
Sleep(1000)
$is_Nr = _DoSQL('SELECT * FROM Biblio1 WHERE `Nummer`="' & GUICtrlRead($i_Nr) & '";', $datei1)
$weiter = 0
For $i = 1 To $is_Nr[0][1]
if $is_Nr[$i][1] = GUICtrlRead($i_Nr) Then
GUICtrlSetData($i_Status,"Diese Nummer wird bereits verwendet!")
Sleep(2000)
$weiter = 1
EndIf
Next
If $weiter = 0 Then
_speichern()
GUICtrlSetData($i_Status,"Daten wurden gespeichert!")
ElseIf $weiter = 1 Then
GUICtrlSetData($i_Status,"Bitte andere Nummer verwenden!")
EndIf
EndIf
;
Case $msg = $Eingabe_Aendern
_Aendern()
;
Case $Msg = $Eingabe_Loeschen
GUICtrlSetState($Eingabe_Loeschen, $GUI_HIDE)
_Loeschen()
;
; --- Such-Menue - start
Case $msg = $Suche
;
;
GUICtrlSetState($Check_Suche, $GUI_UNCHECKED)
GUICtrlSetData($Check_Suche,"Archiv")
GUISetState(@SW_HIDE,$Haupt_Menue)
GUISwitch($Such_Menue)
GUISetState()
;
; --- Was gesucht werden soll
Case $msg = $radio_suche1
GUICtrlSetData($s_Titel, "")
GUICtrlSetData($s_Autor, "")
GUICtrlSetData($s_Jahrgang, "")
$Suche_das = 1
Case $msg = $radio_suche2
GUICtrlSetData($s_Nr, "")
GUICtrlSetData($s_Autor, "")
GUICtrlSetData($s_Jahrgang, "")
$Suche_das = 2
Case $msg = $radio_suche3
GUICtrlSetData($s_Nr, "")
GUICtrlSetData($s_Titel, "")
GUICtrlSetData($s_Jahrgang, "")
$Suche_das = 3
Case $msg = $radio_suche4
GUICtrlSetData($s_Nr, "")
GUICtrlSetData($s_Titel, "")
GUICtrlSetData($s_Autor, "")
$Suche_das = 4
; --- Wo gesucht werden soll
Case $msg = $Check_Suche
If GUICtrlRead( $Check_Suche) = 4 Then
GUICtrlSetData($Check_Suche,"Archiv")
$Stelle = 0
Else
GUICtrlSetData($Check_Suche,"Verleih")
$Stelle = 1
EndIf
;
Case $msg = $Suche_Start
;
If $Stelle = 0 Then
GUISetState(@SW_HIDE,$Such_Menue)
GUISwitch($A_treffer)
GUISetState()
_GUICtrlListView_DeleteAllItems(ControlGetHandle("", "", $ListView3))
$x_Suche = _DoSQL("SELECT * FROM Biblio1 WHERE `Stelle`='0';",$datei1)
For $i = 1 To $x_Suche[0][0]
If $Suche_das = 1 And $x_Suche[$i][1] = GUICtrlRead($s_Nr) Then
$inhalt3 = $x_Suche[$i][0] & "|" & $x_Suche[$i][1] & "|" & $x_Suche[$i][2] & "|" & $x_Suche[$i][3] & "|" & $x_Suche[$i][4]
GUICtrlCreateListViewItem($inhalt3, $ListView3)
ElseIf $Suche_das = 2 And $x_Suche[$i][2] = GUICtrlRead($s_Titel) Then
$inhalt3 = $x_Suche[$i][0] & "|" & $x_Suche[$i][1] & "|" & $x_Suche[$i][2] & "|" & $x_Suche[$i][3] & "|" & $x_Suche[$i][4]
GUICtrlCreateListViewItem($inhalt3, $ListView3)
ElseIf $Suche_das = 3 And $x_Suche[$i][3] = GUICtrlRead($s_Autor) Then
$inhalt3 = $x_Suche[$i][0] & "|" & $x_Suche[$i][1] & "|" & $x_Suche[$i][2] & "|" & $x_Suche[$i][3] & "|" & $x_Suche[$i][4]
GUICtrlCreateListViewItem($inhalt3, $ListView3)
ElseIf $Suche_das = 4 And $x_Suche[$i][4] = GUICtrlRead($s_Jahrgang) Then
$inhalt3 = $x_Suche[$i][0] & "|" & $x_Suche[$i][1] & "|" & $x_Suche[$i][2] & "|" & $x_Suche[$i][3] & "|" & $x_Suche[$i][4]
GUICtrlCreateListViewItem($inhalt3, $ListView3)
EndIf
Next
$Treffer = 0
$Stelle = 0
$ListView = $ListView3
ElseIf $Stelle = 1 Then
GUISetState(@SW_HIDE,$Such_Menue)
GUISwitch($V_treffer)
GUISetState()
_GUICtrlListView_DeleteAllItems(ControlGetHandle("", "", $ListView4))
$x_Suche = _DoSQL("SELECT * FROM Biblio1 WHERE `Stelle`='1';",$datei1)
For $i = 1 To $x_Suche[0][0]
If $Suche_das = 1 And $x_Suche[$i][1] = GUICtrlRead($s_Nr) Then
$inhalt4 = $x_Suche[$i][0] & "|" & $x_Suche[$i][1] & "|" & $x_Suche[$i][2] & "|" & $x_Suche[$i][3] & "|" & $x_Suche[$i][4] & "|" & $x_Suche[$i][6] & "|" & $x_Suche[$i][7] & "|" & $x_Suche[$i][8]
GUICtrlCreateListViewItem($inhalt4, $ListView4)
ElseIf $Suche_das = 2 And $x_Suche[$i][2] = GUICtrlRead($s_Titel) Then
$inhalt4 = $x_Suche[$i][0] & "|" & $x_Suche[$i][1] & "|" & $x_Suche[$i][2] & "|" & $x_Suche[$i][3] & "|" & $x_Suche[$i][4] & "|" & $x_Suche[$i][6] & "|" & $x_Suche[$i][7] & "|" & $x_Suche[$i][8]
GUICtrlCreateListViewItem($inhalt4, $ListView4)
ElseIf $Suche_das = 3 And $x_Suche[$i][3] = GUICtrlRead($s_Autor) Then
$inhalt4 = $x_Suche[$i][0] & "|" & $x_Suche[$i][1] & "|" & $x_Suche[$i][2] & "|" & $x_Suche[$i][3] & "|" & $x_Suche[$i][4] & "|" & $x_Suche[$i][6] & "|" & $x_Suche[$i][7] & "|" & $x_Suche[$i][8]
GUICtrlCreateListViewItem($inhalt4, $ListView4)
ElseIf $Suche_das = 4 And $x_Suche[$i][4] = GUICtrlRead($s_Jahrgang) Then
$inhalt4 = $x_Suche[$i][0] & "|" & $x_Suche[$i][1] & "|" & $x_Suche[$i][2] & "|" & $x_Suche[$i][3] & "|" & $x_Suche[$i][4] & "|" & $x_Suche[$i][6] & "|" & $x_Suche[$i][7] & "|" & $x_Suche[$i][8]
GUICtrlCreateListViewItem($inhalt4, $ListView4)
EndIf
Next
$Treffer = 1
$Stelle = 1
$ListView = $ListView4
EndIf
;
;--- Archiv-Menue - start
Case $msg = $Archiv
;
GUISetState(@SW_HIDE,$Haupt_Menue)
GUISwitch($Archiv_Menue)
GUISetState()
_GUICtrlListView_DeleteAllItems(ControlGetHandle("", "", $ListView1))
$B_Archiv = _DoSQL("SELECT * FROM Biblio1 WHERE `Stelle`='0';",$datei1)
For $i = 1 To $B_Archiv[0][0]
$inhalt1 = $B_Archiv[$i][0] & "|" & $B_Archiv[$i][1] & "|" & $B_Archiv[$i][2] & "|" & $B_Archiv[$i][3] & "|" & $B_Archiv[$i][4]
GUICtrlCreateListViewItem($inhalt1, $ListView1)
Next
$Stelle = 0
$ListView = $ListView1
;
;--- Verleih-Menue - start
Case $msg = $Verleih
GUISetState(@SW_HIDE,$Haupt_Menue)
GUISwitch($Verleih_Menue)
GUISetState()
_GUICtrlListView_DeleteAllItems(ControlGetHandle("", "", $ListView2))
$B_Verleih = _DoSQL("SELECT * FROM Biblio1 WHERE `Stelle`='1';",$datei1)
For $i = 1 To $B_Verleih[0][0]
$inhalt2 = $B_Verleih[$i][0] & "|" & $B_Verleih[$i][1] & "|" & $B_Verleih[$i][2] & "|" & $B_Verleih[$i][3] & "|" & $B_Verleih[$i][4] & "|" & $B_Verleih[$i][6] & "|" & $B_Verleih[$i][7] & "|" & $B_Verleih[$i][8]
GUICtrlCreateListViewItem($inhalt2, $ListView2)
Next
$Treffer = 1
$Stelle = 1
$ListView = $ListView2
;
;--- Gesamt-Menue - start
Case $msg = $Gesamt
;
GUISetState(@SW_HIDE,$Haupt_Menue)
GUISwitch($Gesamt_Menue)
GUISetState()
_GUICtrlListView_DeleteAllItems(ControlGetHandle("", "", $ListView5))
$B_Gesamt = _DoSQL("SELECT * FROM Biblio1;",$datei1)
For $i = 1 To $B_Gesamt[0][0]
$inhalt5 = $B_Gesamt[$i][0] & "|" & $B_Gesamt[$i][1] & "|" & $B_Gesamt[$i][2] & "|" & $B_Gesamt[$i][3] & "|" & $B_Gesamt[$i][4]
GUICtrlCreateListViewItem($inhalt5, $ListView5)
Next
$Stelle = 0
$ListView = $ListView5
;--- ABBRUCH - zurück in's Hauptmenue
Case $msg = $Eingabe_Abbruch
GUICtrlSetData($i_Status,"")
GUISetState(@SW_HIDE, $Eingabe_Menue)
GUISwitch($Haupt_Menue)
GUISetState()
;
;
Case $msg = $Suche_Abbruch
$Stelle = 0
GUICtrlSetData($s_Status,"")
GUICtrlSetState ($Check_Verleih, $GUI_UNCHECKED)
GUISetState(@SW_HIDE, $Such_Menue)
GUISwitch($Haupt_Menue)
GUISetState()
Case $msg = $Archiv_Abbruch
$Stelle = 0
GUICtrlSetData($a_Status,"")
GUISetState(@SW_HIDE, $Archiv_Menue)
GUISwitch($Haupt_Menue)
GUISetState()
Case $msg = $Verleih_Abbruch
$Stelle = 0
GUISetState(@SW_HIDE, $Verleih_Menue)
GUISwitch($Haupt_Menue)
GUISetState()
;
Case $msg = $Gesamt_Abbruch
$Stelle = 0
GUISetState(@SW_HIDE, $Gesamt_Menue)
GUISwitch($Haupt_Menue)
GUISetState()
;
Case $msg = $A_Abbruch
$Stelle = 0
GUICtrlSetData($v_Status,"")
GUISetState(@SW_HIDE, $A_treffer)
GUISwitch($Haupt_Menue)
GUISetState()
Case $msg = $V_Abbruch
$Stelle = 0
GUISetState(@SW_HIDE, $V_treffer)
GUISwitch($Haupt_Menue)
GUISetState()
;
;--- BEENDEN - Beenden-Button
Case $msg = $Beenden
_DoSQL("VACUUM Biblio1;", $datei1)
ExitLoop
EndSelect
WEnd
;
;
;--- Eingabe (neue Daten speichern)
Func _Speichern()
Local $i_Buch
$i_Buch = _DoSQL("SELECT * FROM Biblio1;", $datei1)
_DoSQL("INSERT INTO Biblio1 (id, Nummer, Titel, Autor, Jahrgang, Stelle, weraus, vonwann, biswann) VALUES (NULL, '" & GUICtrlRead($i_Nr) & "', '" & GUICtrlRead($i_Titel) & "', '" & GUICtrlRead($i_Autor) & "', '" & GUICtrlRead($i_Jahrgang) & "', '" & $Stelle & "', '" & GUICtrlRead($i_wer) & "', '" & GUICtrlRead($i_date1) & "', '" & GUICtrlRead($i_date2) & "');", $datei1)
EndFunc
;
Func _Aendern()
If MsgBox(32+8192+4, "Ändern?", "Soll der Datensatz mit der " & @CRLF & "Nummer " & GUICtrlRead($i_Nr) & @CRLF & "wirklich geändert werden?") = 6 Then
_DoSQL("UPDATE Biblio1 SET Titel='" & GUICtrlRead($i_Titel) & "', Autor='" & GUICtrlRead($i_Autor) & "', Jahrgang='" & GUICtrlRead($i_Jahrgang) & "', Stelle= '" & $Stelle & "', weraus='" & GUICtrlRead($i_wer) & "', vonwann='" & GUICtrlRead($i_date1) & "', biswann='" & GUICtrlRead($i_date2) & "' WHERE `Nummer`='" & GUICtrlRead($i_Nr) & "';",$datei1)
EndIf
EndFunc
;
Func _Loeschen()
If MsgBox(32+8192+4, "Löschen?", "Soll der Datensatz mit der " & @CRLF & "Nummer " & GUICtrlRead($i_Nr) & @CRLF & "wirklich gelöscht werden?") = 6 Then
_DoSQL("DELETE FROM Biblio1 WHERE `Nummer`='" & GUICtrlRead($i_Nr) & "';",$datei1)
EndIf
;_DoSQL("VACUUM Biblio1;", $datei1)
EndFunc
;
; ---> gtaspider
Func _DoubleClickOnListView($hWndGUI, $MsgID, $wParam, $lParam);Die Eigentliche Funktion
Local $tagNMHDR, $event, $hwndFrom, $code
$tagNMHDR = DllStructCreate("int;int;int", $lParam)
If @error Then Return
$event = DllStructGetData($tagNMHDR, 3); Checkt wie das EVENT aussieht
$LVSRead = StringSplit(GUICtrlRead(GUICtrlRead($wParam)), "|")
If $Stelle = 0 Then
If $wParam = $ListView Then;Wenn der Klick auf das ListView ging..
If $event = $NM_DBLCLK Then;.. Wenn es ein DoppelKlick war
If $LVSRead[1] = '0' Then Return 0
; Hier kommt hin was er machen soll:
GUISetState(@SW_HIDE,$Archiv_Menue)
GUISwitch($Eingabe_Menue)
GUISetState()
GUICtrlSetData($i_Bearbeiten,"Ändern:")
$indiz = $LVSRead[1]
GUICtrlSetData($i_Nr,$LVSRead[2])
GUICtrlSetData($i_Titel,$LVSRead[3])
GUICtrlSetData($i_Autor,$LVSRead[4])
GUICtrlSetData($i_Jahrgang,$LVSRead[5])
GUICtrlSetState ($Check_Verleih, $GUI_UNCHECKED)
GUICtrlSetData($Check_Verleih,"Archiv")
GUICtrlSetState($Label_Verleih1, $GUI_HIDE)
GUICtrlSetState($i_wer, $GUI_HIDE)
GUICtrlSetState($Label_Verleih2, $GUI_HIDE)
GUICtrlSetState($i_date1,$GUI_HIDE)
GUICtrlSetState($Label_Verleih3, $GUI_HIDE)
GUICtrlSetState($i_date2,$GUI_HIDE)
GUICtrlSetState($Eingabe_Loeschen, $GUI_SHOW)
GUICtrlSetState($Eingabe_Speichern, $GUI_HIDE)
GUICtrlSetState($Eingabe_Aendern, $GUI_SHOW)
EndIf
EndIf
ElseIf $Stelle = 1 Then
If $wParam = $ListView Then;Wenn der Klick auf das ListView ging..
If $event = $NM_DBLCLK Then;.. Wenn es ein DoppelKlick war
If $LVSRead[1] = '0' Then Return 0
; Hier kommt hin was er machen soll:
GUISetState(@SW_HIDE,$Verleih_Menue)
GUISwitch($Eingabe_Menue)
GUISetState()
GUICtrlSetData($i_Bearbeiten,"Ändern:")
$indiz = $LVSRead[1]
GUICtrlSetData($i_Nr,$LVSRead[2])
GUICtrlSetData($i_Titel,$LVSRead[3])
GUICtrlSetData($i_Autor,$LVSRead[4])
GUICtrlSetData($i_Jahrgang,$LVSRead[5])
GUICtrlSetState ($Check_Verleih, $GUI_CHECKED)
GUICtrlSetData($Check_Verleih,"Verleih")
GUICtrlSetState($Label_Verleih1, $GUI_SHOW)
GUICtrlSetState($i_wer, $GUI_SHOW)
GUICtrlSetData($i_wer,$LVSRead[6])
GUICtrlSetState($Label_Verleih2, $GUI_SHOW)
GUICtrlSetState($i_date1, $GUI_SHOW)
GUICtrlSetData($i_date1,$LVSRead[7])
GUICtrlSetState($Label_Verleih3, $GUI_SHOW)
GUICtrlSetState($i_date2, $GUI_SHOW)
GUICtrlSetData($i_date2,$LVSRead[8])
GUICtrlSetState($Eingabe_Loeschen, $GUI_SHOW)
GUICtrlSetState($Eingabe_Speichern, $GUI_HIDE)
GUICtrlSetState($Eingabe_Aendern, $GUI_SHOW)
EndIf
EndIf
EndIf
$tagNMHDR = 0
$event = 0
$lParam = 0
EndFunc ;==>_DoubleClickOnListView
;
; ---> peethebee (Danke an jonk!)
Func _DoSQL($_SQL_Code, $cal_filename)
Dim $ret_array[250][15]
; Datenbank initialisieren und öffnen
;_SQLite_Startup (@ScriptDir & "\sqlite3.dll")
_SQLite_Startup ()
If @error > 0 Then
MsgBoX(0, "Meldung", "SQLite-DLL konnte nicht geladen werden")
Return 0
EndIf
; hier kann man einen Standardpfad festlegen
$dbname = $cal_filename
_sqLiTe_opEn ($dbname)
If @error > 0 Then
MsgBoX(0, "Meldung", $dbname & " konnte nicht geöffnet werden (Rechte?, Datei in Benutzung?)")
Return 0
EndIf
Dim $hQuery, $aRow
$iTmp = _SQlite_Query (-1, $_SQL_Code, $hQuery)
If Not $iTmp = $SQLITE_OK Then
MsgBoX(0, "Meldung", "SQLite-Befehl verursachte einen Fehler: " & $_SQL_Code)
EndIf
$num_results = 0
While _SQLite_FetchData ($hQuery, $aRow) = $SQLITE_OK
$num_results += 1
; Daten in Array kippen und dann zurückgeben (noch nicht getestet)
For $i = 0 To UBound($aRow) - 1
$ret_array[$num_results][$i] = $aRow[$i]
Next
WEnd
; Länge des Ergebnisses erfassen, Ergebnisse ab $ret_array[1]
$ret_array[0][0] = $num_results
$ret_array[0][1] = UBound($aRow)
$iTmp = _SQLite_Close ()
If Not $iTmp = $SQLITE_OK Then
MsgBoX(0, "Meldung", "Datenbank konnte nicht geschlossen werden.")
MsgBoX(0, "Meldung", "SQLite ErrCode: " & $iTmp)
MsgBoX(0, "Meldung", "SQLite ErrMsg: " & _SQLite_ErrMsg ())
Return 0
EndIf
_SQLite_Shutdown ()
Return $ret_array
EndFunc ;==>_DoSQL
; <---
; --- EOF
Edit: Kleine korrektur - damit funktionierts jetzt endlich auch mit der akt. Autoit-Version.
mfg
trallala