Datagrid mitlinks auf anderes Datagrid

Startseite Foren Deutsches LiveCode-Forum Datagrid mitlinks auf anderes Datagrid

Ansicht von 7 Antwort-Themen
  • Autor
    Beiträge
    • #47593
      wupp66
      Teilnehmer

        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

         

      • #47594
        Klaus Major
        Administrator

          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

        • #47596
          wupp66
          Teilnehmer

            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

          • #47597
            wupp66
            Teilnehmer

              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

            • #47599
              Klaus Major
              Administrator

                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

              • #47600
                wupp66
                Teilnehmer

                  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

                   

                • #47604
                  Klaus Major
                  Administrator

                    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

                  • #47608
                    wupp66
                    Teilnehmer

                      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

                  Ansicht von 7 Antwort-Themen
                  • Du musst angemeldet sein, um auf dieses Thema antworten zu können.