Bibliothek

  • 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
    [autoit]


    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 , 8)
    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 , 8)
    $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)

    [/autoit] [autoit][/autoit] [autoit]

    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

    [/autoit] [autoit][/autoit] [autoit]

    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

    [/autoit] [autoit][/autoit] [autoit][/autoit]

    Edit: Kleine korrektur - damit funktionierts jetzt endlich auch mit der akt. Autoit-Version.

    mfg
    trallala

    • Offizieller Beitrag

    Hallo!

    Ich habe die Entwicklung dieses Skriptes lange Zeit begleitet. Was herausgekommen ist, ist eine schöne Demonstration, was AutoIt in Zusammenarbeit mit SQLite zu leisten im Stande ist.
    Wer SLQite verwenden will, sollte hier ruhig mal einen Blick in den Quelltext werfen. Da das Projekt nicht übermäßig komplex ist, kann man da sicher Gewinn draus ziehen.

    Zu schade, dass ich keine Bücher mag ;)

    Weiter so, trallala!

    Prost Kaffee,
    peethebee

  • Hi,

    ich kann peethebee nur zustimmen. Das Skript zeigt auf einfache Weise, was alles mit GUI's und SQLite Möglich ist. Könnte mir vorstellen, dass man das Programm für ein Tutorial gut nutzen könnte.

    Ich habe zwar Bücher... soll auch schonmal beim lesen erwischt worden sein ;) aber wirklich verwenden werde ich das Programm wohl auch nicht. Bei mir dürfen die blättrigen Gesellen nur in Regalen verstauben ;)

    es schrieb...
    der jonk

  • heyho =)

    1) Ich find das Programm super

    2) was mann vll verbessern könnte, ist das das Programm im hintergrund läuft und am rück gabe tag etwas macht, zb ne msgbox :D

    Für vergessliche menschen hilfreich :schild4:

  • Also ich fidne das supie.

    Habe so viele Bücher, das ich nie weiß wo die stehen oder wer die gerade hat.

    Vorschlag: Eine Regalbezeichnung. Ich habe drei regale mit jeweils sechs Fächer. Wenn man jetzt eingeben könnte (Beispiel) "Regal 5/ Fach 3" , wäre ich die erste, die ihre Bücher alle in die Datenbank packt. Wäre wirklich supermegagenial um nicht zu sagen "A. T. G." wie die Kids heute sagen ;)

    LG, Lina.

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl

  • Zitat

    um nicht zu sagen "A. T. G." wie die Kids heute sagen

    Frage 1:
    Was ist 'A.T.G.'? - Ich höre bei Kids immer nur 'das ist ja krass' ......


    Sorry, ist hier 'off-topic' aber ich antworte ja auf den oberen Beitrag.....

    daher Frage 2:
    habe ich richtig gepostet oder hätte ich alles mit Link in 'Off-Topic' setzen sollen?

    Viele Grüße
    Carsten

  • ist schön gemacht, nur hätte ich keine Lust mehr meine ganzen Bücher zu katalogisieren - es sind zu viele

    naja vielleicht mal wenn mir wirklich langweilig ist XD

  • Zitat

    Original von Carsten
    [Frage 1:
    Was ist 'A.T.G.'? - Ich höre bei Kids immer nur 'das ist ja krass' ......

    Naja die Kids sagen doch "Affen Titten Geil", wobei die oftmals gar nicht wissen, was sie da sagen.

    Gruß, Lina.

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl

    Einmal editiert, zuletzt von Alina (1. Oktober 2007 um 13:02)