Startseite › Foren › Deutsches LiveCode-Forum › Datagrid mitlinks auf anderes Datagrid
- Dieses Thema hat 7 Antworten und 2 Teilnehmer, und wurde zuletzt aktualisiert vor 2 Jahren, 1 Monat von
wupp66.
-
AutorBeiträge
-
-
Februar 2, 2023 um 13:33 Uhr #47593
Hallo zusammen,
GGibt es die Möglichkeit, aus einem Datagrid, eine Spalte mit Strassen namen, die andere Spalte mit Haltestellen gefüllt, die Haltestellen in einem zweiten datagrid Anzeige zu lassen. Das zweite datagrid würde die Haltestellen und die dazugehörigen Linien erfassen.
Ich möchte wenn ich eine Strasse suche, das mir die nächste Haltestelle angezeigt wird, und falls dann gewünscht, das ich auf die Haltestelle klicken und mir dann die Linien die dort abfahren angezeigt werden.
Mit lieben Gruß
Andreas
-
Februar 2, 2023 um 14:29 Uhr #47594
Hi Andreas,
so etwas ist sicher möglich, aber für eine idee müsste ich wissen, wie und wo genau die Daten vorliegen. Gib mal bitte ein Beispiel.
Wir müssten auf jeden Fall einen Anhaltspunkt (Relation!) in den Daten haben, um mit FILTER oder LINEOFFSET zu arbeiten. Eigentlich ist sowas ein Fall für eine relationale (sic!) Datenbank wie SQLite.
Gruß
Klaus
-
Februar 4, 2023 um 07:53 Uhr #47596
Hallo Klaus,
ich dachte mich zwei Datagrid Tabellen habe. Die erste Tabelle mit zwei Spalten, Strassenname und Haltestelle, die zweite Tabelle auch mit zwei Spalten, Haltestelle und Linien.
Ich wollte ganz gerne, wenn ich eine Strasse suche, das mir die passende Haltstelle angezeigt wird. Das klappt auch bei mir.
Ich suche praktisch jetzt eine Lösung, indem ich dann nur auf die mir angezeigte Haltestelle klicken muss, das diese als Suche für die Zweite Tabelle übernommen wird und mir dann die Linien angezeigt werden, die diese Haltestelle anfahren.
Lieben Gruß
Andreas
-
Februar 4, 2023 um 08:03 Uhr #47597
on Mouseup
put empty into tSuche
put empty into tArray
put empty into tKeys
put empty into tAnzahl
put the fld „EingabeStrasse“ into tSuche
put empty into tAnzeige
put the dgText of grp „StrassenDaten“ of card „StrassenGrid“ into tListe
filter tListe with „*“ & tSuche & „*“
put tListe into fld „Ausgabe“
end Mouseup
so sieht die Abfrage der ersten Tabelle aus
-
Februar 4, 2023 um 12:28 Uhr #47599
Moin andreas,
hm, die Vorgehensweise ist doch genau wie in Deinem beispiel?
Nur, daß Du bei tListe dann die gewünschte Spalte (TAB getrennt!) mit den Linien extrahieren musst.
Oder habe ich Dich falsch verstanden?
Gruß
Klaus
-
Februar 4, 2023 um 19:58 Uhr #47600
Moin Klaus,
nein das hast du schon richtig verstanden, ich habe nur noch nie eine Datagrid Tabelle und die Daten mit tab ausgelesen. Hast du vielleicht ein beispiel wie ich da vorgehen kann. Wenn ich dann die Haltestelle aus der ersten Tabelle in einer Variable speichern kann, konnte ich damit ja die zweite Tabelle abfragen.
lieben Gruß Andreas
-
Februar 5, 2023 um 12:00 Uhr #47604
Hi Andreas,
naja, TAB getrennte Daten sind keine große Sache, pro „Datensatz“ eine Zeile, also CR getrennt.
Innerhalb einer Zeile sind die Daten dann per TAB(ulator) getrennt.
Hier ein kurzes Beispiel:
———————————–
Spalte1_1 TAB Spalte1_2 TAB Spalte1_3… etc
Spalte2_1 TAB Spalte2_2 TAB Spalte2_3… etc
Spalte3_1 TAB Spalte3_2 TAB Spalte3_3… etc
…
Um daraus Daten dann zu extrahieren:
…
## Itemdelimiter setzen:
set itemdel to TAB
answer item 3 of line 2 of TabGetrennteDaten
## Ergibt -> Spalte2_3
…
OK, hier einige Datagrid Basics. Innerhalb eines Datagrids wird IMMER mit einem Array gearbeitet, aber dazu kommen wir vielleicht später mal.
1. Die ausgewählte Zeile eines datagrids ermitteln:
put the dgHilitedLines of grp „dein datagrid“ into Zeilennummer
## Ergibt die Nummer der ausgewählten Zeile in DG
## Falls MEHRFACHAUSWAHL (mulztiple lines) angekreuzt ist,
## liefert das eine Komma getrennte Liste der Zeilen -> z.B. 2,6,42
2. Die Daten in einer bestimmten Zeile auslesen:
put the dgDataOfLine[zeilennummer] into InhaltDerZeile
Liefert den gesamten Inhalt (TAB getrennt) der gewünschten Zeile
Dann kannst Du daraus die gewünschte Spalte extrahieren wie im obigen Beispiel.
3. Nun alles zusammen, um bei Deinem Beispiel zu bleiben:
...
## Welche Zeile ist ausgewählt:
put the dghilitedlines of grp "dein Datagrid 1" into tZeile
put the dgDataOfLine[tZeile] into Strasse_Haltestelle
## Itemdelimiter setzen, der bleibt so bis zum Ende des Handlers, oder wir ihn erneut setzen!
set itemdel to TAB
## Angenommen Deine erste Spalte hier ist der Strassenname:
put item 1 of Strasse_Haltestelle into tHaltestelle
## Inhalt des zweiten DGs holen:
put the dgText of grp "StrassenDaten" of card "StrassenGrid" into tListe
filter tList with ("*" & tStrasse & "*")
answer "Linie(n):"&& item 2 of tListe
...
Du musst natürlich noch ein wenig „error checking“ betreiben, z.B. ob tListe leer ist etc. aber das ist es im Groben und Ganzen. Bei Fragen bitte fragen! 🙂
Gruß
Klaus
-
Februar 5, 2023 um 19:27 Uhr #47608
Hallo Klaus,
Danke genau das ist es was ich gebraucht habe, so kann ich das Datagrid auslesen. Das mit dem Tab hatte ich versucht und hinbekommen, nur wußte ich nicht, wie ich dann die einzelnen spalten auslesen und eventuell einer Variablen zuweisen kann. Jetzt ist es mir klar geworden, danke für deine ausführliche Antwort.
Ich gebe dir natürlich auch gerne Bescheid wenn alles so funktioniert hat, wie ich es mir gedacht habe.
Lieben Gruß
Andreas
-
-
AutorBeiträge
- Du musst angemeldet sein, um auf dieses Thema antworten zu können.