Listview-Datenbank v3

  • Hallo Oscar
    hab mir die Nacht mit deinem Script um die Ohren geschlagen, und versucht den Fehler zu finden.
    Ein Datensatz lässt sich eingeben, bei dem 2. Datensatz funktioniert die Eingabe der IP nicht mehr. Nimmt im Eingabefeld eine Vorbesetzung und speichert nicht
    Konnte den Fehler jedoch nicht beseitigen.

    Du hast da eine Idee ?

    Danke schon mal im Voraus

    Gruß

    Thomas

    • Offizieller Beitrag

    In der Funktion "_CloseInputGui" muss das Ende jetzt so aussehen:

  • Folgende Zeilen...

    AutoIt
    For $i = 0 To $iColCount - 1 ; alle Eingabefelder durchgehen
    		GUICtrlDelete($aidInput[$i]) ; die Eingabefelder und
    		GUICtrlDelete($aidLabel[$i]) ; die Label dazu loeschen
    	Next


    durch diese ersetzen...

    AutoIt
    For $i = 0 To $iColCount - 1 ; alle Eingabefelder durchgehen
    		If $i = 1 Then
    			_GUICtrlIpAddress_Destroy($aidInput[$i])
    		Else
    			GUICtrlDelete($aidInput[$i]) ; die Eingabefelder und
    		EndIf
    		GUICtrlDelete($aidLabel[$i]) ; die Label dazu loeschen
    	Next
  • Hallo Oscar,

    das ist ein sehr interessantes Script. Vielen Dank!

    (1)

    "Und zum Anderen die "Treffersuche" (Aufruf mit gedrückter Shift-Taste), hier wird ein extra Suche-Listview angezeigt, indem alle Suchtreffer aufgelistet sind (und nur diese)."

    "Zurück zum normalen Daten-Listview kommt man, wenn man die Suche mit leerem Eingabefeld startet."

    Ich komme von der Treffersuche (nur Fundstellen) nicht mehr zurück zu der kompletten Datenbank, auch wenn ich die Suche mit dem leeren Eingabefeld starte.


    Was tun?

    (2)

    Wenn ich in der „Treffersuche“ bin, also es werden nur die Fundstellen angezeigt, und ich klicke einen Eintrag an und dann auf den Button „Eintrag bearbeiten“, dann erscheint in der Vorgabe der erste Datensatz der Treffersuche und nicht der ausgewählte Datensatz.


    Kannst Du das korrigieren? Oder bediene ich das Tool falsch?

    (3)

    Ist es gewollt, dass die vorherigen Fundstellen hervorgehoben bleiben, auch wenn ein neuer Suchbegriff in der Standardsuche eingegeben wurde?

    (4)

    Ich starte das Programm. Ich lade die Datenbank. Als erste Suche gebe ich eine Treffersuche (also mit der Tastenkombination Umschalt Enter) ein.


    Die Fundstellen werden angezeigt, ich kann jedoch keinen über den Button „Eintrag bearbeiten“ bearbeiten.


    Kann es sein, dass die Funktion „Eintrag bearbeiten“ (noch) nicht in der Treffersuche funktioniert? Gerade die Treffersuche ist es, welches dieses Programm so interessant macht, da man alle Fundstellen auf einen Blick hat.

    Viele Grüße

  • Das zweite und dritte Input-Control habe ich mit $ES_NUMBER erweitert, weil man dort ja nur Zahlen eingeben soll.

    Hallo,

    vielleicht mag jemand mit in den Code schauen und dabei helfen, folgendes zu erreichen

    ... in Spalte 2 das jeweilige Programmicon als Icon im Listview anzeigen ( in Spalte 8 steht das entsprechende Fensterhandle ). Wie kann ich das Programmicon auslesen und im Listview anzeigen?

    ... per rechter Maustaste auf eine Zeile im Listview das Fenster laut Fensterhandle in Spalte 8 aktivieren.

    ... Spalte 2 und 3 von Oscars Script auf normalen Text - statt nummerisch setzen.

    ... Spalte 1 von Oscars Script auf nummerisch setzen.


    Hallo Oscar,

    (a)

    ich versuche seit ein paar Nächten die Spalten 2 und 3 so zu ändern, dass dort Text eingegeben werden kann. Ich habe einige Stellen geändert - siehe Code - aber das reicht scheinbar nicht.

    Vielleicht ist es eine gute Idee den Spaltentyp in eine Variable zu legen, damit andere Benutzer Dein Script universeller nutzen können - aber das ist wohl eine aufwendigere Sache.

    Daher hier nur die Frage, wie ich per Hand Spalten 2 und 3 als Text und 1 und 7 als Zahl nutzen kann.

    Ich habe das Script auf 8 Spalten erweitert ( das geht ) und ich möchte in den Spalten 1 und 7 ( also im Code dann 0 und 6 ) Zahlen eingeben. Das ist mir leider nicht gelungen.

    Spalten 2 und 3 werden nach wie vor als Zahl formatiert - Spalte 1 und 7 leider nicht ( meine Änderungen siehe oben im Code ).

    Es scheint noch eine weitere Stelle in Deinem Code zu geben, an der ich was ändern muss.

    (b)

    In Spalte 2 möchte ich gerne jeweils das Symbol einer Datei anzeigen, deren Fensterhandle ich habe.

    Wie kann ich die Icons unter Verwendung des Fensterhandles auslesen und in Dein Listview-Control in Spalte 2 einfügen?

    (c)

    Ich möchte durch die rechte Maustaste auf eine Zeile eine weitere Aktion ausführen.

    Wie kann ich dafür Dein Script an welcher Stelle erweitern?

    ( Ziel: ich möchte jenes Fenster aktiveren, dessen Fensterhandle in Spalte 8 gespeichert ist. )

    Vielen Dank :)

    3 Mal editiert, zuletzt von AutoMit (12. Juli 2018 um 02:14)

  • Hast du die Zeilen 24-26 schon angepasst?

    Global Const $iColCount

    Global Const $aHeader

    Global Const $aColJustify


    Zeile 347-349 in _SortListview() hast du bereits auskommentiert?

    ;~ If $iSortCol = 0 Then _SwitchDateForSort($aDatabase, $iSortCol) ; in Spalte 0 steht das Datum, deshalb nach yyyy.mm.dd wandeln

    ;~ _ArraySort($aDatabase, $iDescending, 0, 0, $iSortCol) ; die Datenbank sortieren

    ;~ If $iSortCol = 0 Then _SwitchDateForList($aDatabase, $iSortCol) ; nach dem Sortieren das Datum wieder nach dd.mm.yyyy wandeln


    Und hier noch ein sehr kurz gehaltenes Beispiel, wie du den Rest in etwa umsetzen kannst...

    2 Mal editiert, zuletzt von Bitnugger (12. Juli 2018 um 05:23)

  • Guten Morgen Bitnugger,

    vielen Dank für Deine Zeilen - das Problem mit den nummerischen Spalten konnte ich dank Deiner Hilfe lösen :)

    An den anderen beiden Ideen teste ich mich .... und versuche, Deinen Code zu verstehen.

    ... in Spalte 2 das jeweilige Programmicon als Icon im Listview anzeigen ( in Spalte 8 steht das entsprechende Fensterhandle ).

    Wie kann ich das Programmicon - ausgehend vom Fensterhandle - auslesen und im Listview anzeigen?

    ... Fortsetzung folgt ...

  • Poste doch bitte mal Dein ganzes Script.

    Dann kann man besser verstehen, was Du vorhast und kann besser helfen.

    Es gibt kein Script - das Script ist Deine Datenbank, die ich gerne erweitern möchte :)

    2 Sachen möchte ich integrieren ( das sind 2 unterschiedliche Datenbanken, die auf Deiner Original-Datenbank aufbauen ).

    (a) eine Programmliste mit Pfad und Programm-Icon

    (b) eine ToDo-Liste mit Aufgaben für jeden Tag

    Idee ToDo-Liste

    Ich kenne ältere Menschen, denen es sehr schwer fällt, einfache Tagesabläufe in der (richtigen) Reihenfolge abzuarbeiten.

    Ich möchte Deine Datenbank so ergänzen, dass daraus eine To-do-Liste (Checkliste mit Checkboxen) wird, die zu Tagesbeginn alle Aufgaben anzeigt (bei Programmstart wird einfach die Standardliste

    geladen) – und im Tagesverlauf nur die offenen ( Checkbox = true ) Aufgaben.

    Es gibt 5 Spalten:

    Checkbox

    Uhrzeit ( wann bzw. bis wann die Aufgabe erledigt werden soll )

    Aufgabe ( z.B. lüften )

    Dauer ( z.B. 10 Minuten )

    Hinweis ( z.B. Fensterstopper benutzen, damit das Fenster bei Wind nicht zuschlagen kann )

    Deine Datenbank lässt sich dank der Buttonleiste gut um Funktionen erweitern, die leicht ( von Älteren ) bedienbar sind.

    Da die Datenbank in einer ini-Datei vorliegt, ist sie leicht zu pflegen und zu modifizieren bzw. in der Reihenfolge gut änderbar.

    Beispiel Checkliste ( vereinfacht )

    Wecker ausmachen

    lüften

    Bett aufschlagen

    1 Glas Wasser trinken

    Medikamente nehmen ( blaue Schachtel )

    Fenster schließen

    … usw

    Die tägliche Abarbeitung und Erledigung vergleichbarer Punkte sind für die meisten Menschen in Fleisch und Blut übergegangen – im Alter oder bei Behinderung können diese verloren gehen.

    Wir haben das schon mit Papierlisten probiert – das funktioniert grundsätzlich bis auf den Punkt, dass die erledigten Punkte nicht ausgeblendet werden.

    Und es wird schnell unübersichtlich.

    Daher die Idee, als ich Deine Datenbank gesehen habe, Deine Datenbank um Checkboxen und diese Funktionalität zu erweitern.

    Wenn eine Aufgabe erledigt wurde, wird die Checkbox angeklickt, der erledigte Eintrag verschwindet optisch aus der Liste und der nächste ToDo-Punkt steht oben.

    Ein Zähler zeigt die offenen Aufgaben und die erledigten Aufgaben an ( jeweils auf einem Button in der Buttonleiste - grün = Anzahl erledigte Aufgaben, rot = Anzahl offener Aufgaben ... 2 Button, weil dahinter eine weitere Funktionalität liegen kann ). Es ist eine Motivation, wenn immer weniger Aufgaben an dem Tag offen sind.

    Im Detail - Programm-Icon

    (a) 1 weitere Spalte für ein Programm-Icon

    Ich habe den Pfad zu einer Datei, Beispiel:

    C:\Windows\notepad.exe

    In Spalte 3 steht dieser Pfad, in Spalte 2 soll das zugehörige Icon der notepad.exe zu sehen sein.

    Bei einem Icon sieht man schneller, welche Datei es ist.

    Im Detail - ToDo-Liste

    (b) Ich würde Dein Script gerne zu einer einfachen ToDo-Liste erweitern.

    In Spalte (1) sind Checkboxen.

    6 Weitere Button gibt es

    (1) zeige alle Zeilen mit Checkbox = "true"

    (2) zeige alle Zeilen mit Checkbox = "false"

    (3) für alle Zeilen Checkbox = true setzen

    (4) für alle Zeilen Checkbox = false setzen

    (5) Anzahl erledigte Aufgaben ( grüne Schriftfarbe - Counter Checkbox = false gesetzt )

    (6) Anzahl offener Aufgaben ( rote Schriftfarbe - Counter Checkbox = true )

    und weiter geht es bei 32 Grad im Zimmer dahin schmelzen :)

    Einmal editiert, zuletzt von AutoMit (3. August 2018 um 10:42)