Seite 1 von 2

Datensätze anzeigen, vorwärts Blättern, rückw....

Verfasst: 12.06.2009 13:57
von AddMe
Hallo,

ich möchte ein Fenster erstellen, das zur Datenerfassung dient.
In diesem Fenster habe ich mehrere TextGadgets, die ich beim Starten des Formulars auf den letzten Datensatz bzw. auf den neu zu erfassenden Datensatz setzen möchte.
z. B. Name, Vorname, Strasse,... (als TextGadget).

Die Daten würde ich aus einer SQlite Datenbank holen.

In Access gibt es die Möglichkeit, diese Datensätze anzuspringen: vorwärts, rückwärts, erster Datensatz, letzter Datensatz und neuer Datensatz.

Gibt es sowas auch hier in PureBasic? Habe gesucht, aber nichts gefunden.

Wenn nicht, müsste man wohl Buttons für das Blättern verwenden. Beim Blättern müsste sich der Inhalt der TextGadgets ja auch ändern.

Weis jemand, wie das geht?? Wäre toll, wenn mir jemand zeigen könnte, wie das geht.

Schon mal vielen Dank.

Gruß
Michael

P.S. Nutze noch PB 4.30

Verfasst: 12.06.2009 14:42
von AND51
Du beschreibst gerade genau die Eigenschaften von LinkedLists in PureBasic.

Das sind "dynamische Arrays", denen man beliebig Felder (eigentlich eher Einträge) hinzufügen und löschen kann. Du kannst beliebig vor- und zurückblättern und auch springen.

Verfasst: 12.06.2009 14:58
von AddMe
Hallo AND51,

vielen Dank für Deine Antwort.
AND51 hat geschrieben:Du beschreibst gerade genau die Eigenschaften von LinkedLists in PureBasic.
Ich habe hier im Forum ein Bild gefunden, das zeigt, was ich meine:
Bild

Es geht um die Datensatzanzeige.

Hm, also, da es sowas anscheinend nicht als Controle gibt, müsste ich also Buttons benutzen.

Also, müsste ich die Daten aus der SQlite Tabelle per SQL auslesen, diese in eine LinkedList einfügen und anschließend mit der LinkedList diese in den einzelnen TextGadgets anzeigen?

Wie mache ich es denn, wenn ich einen neuen Datensatz erfassen will?
Hab ja dann nur exitierende Daten in der LinkedList.
Wenn ich dann einen vorhandenen Datensatz ändere, dann müsste ich den geänderten Datensatz in der LinkedList nehmen und per SQL in SQLite auch ändern.

Sorry, dass ich soviele Fragen stelle. Denke nur darüber nach, wie ich das umsetzten könnte.

Liege ich den schon mal ein bischen richtig??

Nochmals vielen Dank

Gruß
Michael

Verfasst: 12.06.2009 16:07
von Andesdaf
AddMe hat geschrieben:Wie mache ich es denn, wenn ich einen neuen Datensatz erfassen will?
Hab ja dann nur exitierende Daten in der LinkedList.
AddElement(LinkedList)?

Verfasst: 12.06.2009 16:13
von ts-soft
Nun hört doch mal bitte auf mit euer Linklist, er benötigt keine für seine
Fragestellung.

Er benötigt sowas wie ein Data-Control, das es in PB nicht gibt, muß er also
selber programmieren. Ein paar Buttons, die z.B. ans Ende der Datenbank
springen, oder zum nächsten Datensatz. Beim Wechsel wird normallerweise
auch gleich in der DB gespeichert. Ein Button, der die Texte entleert für
neuen Datensatz, der dann beim Wechsel wieder in der DB gespeichert wird.

Linklist ist nur am Thema vorbei.

Verfasst: 12.06.2009 16:16
von AND51
Du bist auf dem richtigen Weg.

Vor- und zurückspringen geht mit NextElement() und PreviousElement(), springen geht mit SelectElement() oder schneller mit ChangeCurrentElement().

Nachdem zum gewünschten Eintrag in der LinkedList geblättert wurde, kann er einfach ausgelesen werden:

Code: Alles auswählen

SetGadgetText(#Name, liste())
Statt für jedes Attribut (Name, Preis, Bestand, etc.) eine eigene LinkedList zu nehmen, solltest du eher auf Strukturen zurückgreifen. sie erleichtern das handling erheblich.

Normalerweise passt immer nur 1 Eintrag auf ein "Blatt" in der LinkedList: Entweder der Name, oder der Preis, oder der Bestand, etc. Strukturen ermöglichen es aber, mehrere Einträge auf ein solches Blatt zu schreiben.
Somit blätterst du nicht durch mehrere Listen, sondern hast eine Liste für alle Eigenschaften.

Hinzufügen zur Liste kannst du einen Eintrag mit AddElement() (wird an letzter Stelle eingefügt) oder InsertElement() (fügt ein Element auch irgendwo innerhalb der Liste ein).


// Edit
Oh, TS hab deinen Post nicht gesehen, haben wohl parallel geschrieben.
Also ich würde es per LinkedList machen und kenne keine anfängerfreundlicherere Alternative. Sollte deine Methode jedoch geeigneter sein, dann, bitte, übernimm du das hier. Aber dann komplett und nicht nur ein Stichwort.

Verfasst: 12.06.2009 16:21
von ts-soft
Es geht um eine Datenbank: SQL und nicht linklist!
Oder soll er den Inhalt der Datenbank erst in eine Linklist packen :freak:

Ein Data-Control möchte er nachstellen, das sollte wohl jeder kennen, gibts
in VB, Delphi und Co als fertiges Control.

Verfasst: 12.06.2009 16:51
von jojo1541
ts-soft hat geschrieben: Ein Data-Control möchte er nachstellen, das sollte wohl jeder kennen, gibts
in VB, Delphi und Co als fertiges Control.
Also in PB nicht.
Und das soll er sich als Anfänger grad mal so schnell hinprogrammieren? /:->
Ein paar Codebeispiele oder Denkansätze wären nicht schlecht für ihn.

Verfasst: 12.06.2009 16:56
von Andesdaf
Ich denke eine GUI wird er sich selbst zusammenbasteln können, es fehlt
bloß die Funktionalität, im Bereich Datenbanken kenne ich mich aber nicht
aus, und LinkedLists sind unerwünscht.

Verfasst: 12.06.2009 16:58
von ts-soft
Denkansätze sind in meinem ersten Thread. NextDatabaserow und
Firstdatabaserow mit einem Button verknüpfen und Texte aktualisieren kann
man alles der Hilfe entnehmen. Beispiel wäre in diesem Fall zu komplex, da
muß er wohl selber ran.

Also, Datenbank planen und erstellen, GUI planen und erstellen und dann
den Code schreiben geht dann fast von alleine.