Daten in Datagrid weiter nutzen?

Startseite Foren Deutsches LiveCode-Forum Daten in Datagrid weiter nutzen?

  • Dieses Thema hat 12 Antworten und 2 Teilnehmer, und wurde zuletzt aktualisiert vor 6 Jahren von Wolli.
Ansicht von 12 Antwort-Themen
  • Autor
    Beiträge
    • #2844
      Wolli
      Teilnehmer

        Hallo,

        ich arbeite gerade an einer APP, die Daten in SQLite schreibt. Diese Daten z.B. Ortsname lese ich dann aus SQLite in eine Datagrid-Tabelle ein. Jetzt sollen diese Daten z.B. der Ortsname mit Mausklick weiter verwendet werden, z.B. um in ein vorhandenes Pull-Down-Menü automatisch eingelesen zu werden. Wie mache ich das in Datagrid? Ich möchte also ein „aktives“ und variables Pull-Down-Menü erstellen. Oder kann ich die „neuen“ Daten aus SSQLite direkt in das Pull-Down-Menü schreiben, um sie dort zu nutzen?

        Kann mir jemand einen Tipp geben?

        Herzliche Grüße

      • #2853
        Klaus Major
        Administrator

          Hi Wolli,

          bin mir nicht sicher, ob ich genau verstehe, was Dein Problem ist.

          Selbstredend kannst Du Daten aus einer SQLite Datenbank verwenden, wie Du es möchtest.
          Einen Menübutton „füllst“ Du über seine „text“ Property:

          ## SQL: select „ortsname“ from adressen
          ## put revDataFromQuery(,,tConnectionId,tSQL) into tOrtsnamen
          ## sort tOrtsnamen
          set the text of button „popup buton mit ortsnamen“ to tOrtsnamen

          Meinst Du das?

          Gruß

          Klaus

        • #2861
          Wolli
          Teilnehmer

            Hallo Klaus,

            hat wunderbar funktioniert. Hier das Script.

            global gConnID
            on mouseUp
            connectToDB
            put „select distinct name from reisen“ into tQuery
            put revDataFromQuery(tab,return,gConnID,tQuery) into tRecords
            sort tRecords
            closeDB gConnID
            set the Text of button „Pulldown_1“ to tRecords
            end mouseUp

            —Bis hierher funktioniert alles gut!

            on menuPick pChosenItem

            if pChosenItem is „Borg 2018“ then go to card „eingabeseite“
            else if pChosenItem is „Büsum 2012“ then go to card „eingabeseite“
            else if pChosenItem is „Dannenberg 2015“ then go to card „eingabeseite“
            else if pChosenItem is „Holland 2017″ then go to card „eingabeseite“

            Ab hier habe ich wieder Probleme! Kannst Du mir hier auch weiterhelfen?

            —wie erreiche ich das „automatische“ Einsetzen der Variablen „name“ in die Befehlszeile? Beim Anklicken von z.B. Holland 2017 sollte die Seite „eingabeseite“ aufgerufen werden und „Holland 2017″ in ein Feld auf dieser „eingabeseite“ als Text „automatisch“ eingetragen werden.

            end menuPick

            Vielen lieben Dank

            Wolli

          • #2863
            Wolli
            Teilnehmer

              Hallo Wolli,

              wenn Du Deinen Beitrag als E-Mail schreibst, erreicht er automatisch mich und kommt nicht ins Forum. 🙂

              Am besten wäre es, Du postest die Nachricht noch einmal richtig ins Forum.
              Ansonsten denke ich, Du suchst nach so etwas:
              else if pChosenItem is „Holland 2017″ then

              go to card „eingabeseite“

              put pChosenItem into field „meinFeld“ of card „eingabeseite“

              end if

              Grüße
              Hauke

            • #2865
              Wolli
              Teilnehmer

                Hallo Hauke,

                danke für den Hinweis. Ich werde es posten.

                So meinte ich es allerdings nicht. Das Problem ist, dass ja z.B. „Holland 2017″ erst bei der Eingabe durch den Nutzer erzeugt wird und das Script daher eine „allgemeine Formulierung“ bräuchte.

                Vielen Dank für die schnelle Antwort.

                Wolli

              • #2869
                Klaus Major
                Administrator

                  Hi Wolli,

                  kurzer Hinweis zur Effektivität. „Menupick“ handler sind übersichtlicher, wenn man nicht IF THEN ELSE… nimmt, sondern SWITCH CASE…. Wenn Sie mal schauen möchten:

                  on menupick pChosenItem
                     switch pChosenItem
                        case "Borg 2018"
                        case "Büsum 2012"
                        case "Dannenberg 2015" 
                        case "Holland 2017" 
                           go to card "eingabeseite"
                           break
                        case "Sonstwas"
                           ## ...
                           break
                     end switch
                  end menupick

                  Leider habe ich Dein eigentliches Problem noch nicht genau verstanden.
                  Kannst Du bitte mal ein Beispiel geben?

                  Gruß

                  Klaus

                • #2877
                  Wolli
                  Teilnehmer

                    Hallo Klaus,
                    ich versuche es mal mit einem Beispiel:
                    – der Nutzer startet die APP das erste Mal, die Datenbank ist leer. Über einen Button „neuer Eintrag“ legt er dann einen ersten Namen z.B. „Test-01″ an. Die Daten werden mit zusätzlichen Einträgen in der Datenbank abgelegt und dann automatisch bei einem Pulldown-Menü (Button „vorhandene Einträge“) eingefügt und sortiert.
                    – über den Button „neuer Eintrag“ kann er jetzt beliebig viele neue Namen anlegen, z.B. „Test-02″ oder „Test-03″ etc.. Diese werden in der Datenbank automatisch abglegt und mit einer ID versehen.
                    – wird die APP nun genutzt, hat der Nutzer zwei Möglichkeiten:
                    1. er klickt auf den Button „neuer Eintrag“, um einen neuen Namen anzulegen
                    oder
                    2. er klickt auf den Button „vorhandene Einträge“ und findet im Pulldown-Menü alle Namen, z.B. „Test-01″ und „Test-02″ sortiert vor. Zum Laden von z.B. „Test-01″ inclusive der zusätzlichen Daten von der Datenbank (SQL) klickt er dann einfach auf den Namen, es öffnet sich eine neue Seite und er kann die Daten bearbeiten, wie ändern, ergänzen, löschen etc.

                    Das funktioniert mit dem Script oben bis hierher auch einwandfrei!
                    on menuPick pChosenItem
                    if pChosenItem is „Test-01“ then go to card „eingabeseite“
                    else if pChosenItem is „Test-02“ then go to card „eingabeseite“

                    Mein Problem:
                    Die Namen „Test-01“ und „Test-02″ habe ich beim Programmieren in das Script geschrieben. Da diese Namen ja aber erst vom Nutzer angelegt werden, müssten sie „automatisch“ in das Script geschrieben werden, bzw. es müsste einen allgemein gültigen Platzhalter geben.
                    on menuPick pChosenItem
                    if pChosenItem is „Platzhalter?“ then go to card „eingabeseite“
                    else if pChosenItem is „automatisch-eintragen?“ then go to card „eingabeseite“

                    Kannst Du mir hier helfen oder bin ich auf dem völlig falschem Weg?
                    Herzliche Grüße
                    Wolli

                  • #2879
                    Klaus Major
                    Administrator

                      Hi Wolli,

                      bin immer noch nicht sicher, ob ich Dich richtig verstehe, aber es sieht so aus, als solltest Du eine so genannte „Lookup table“ managen. Entweder in einer Custom Porperty oder Variable oder meintwegen auch ein verstecktes Feld.

                      Das bedeutet, Du verwaltest eine Sammlung von „Paaren“, die Du immer direkt nach Eingabe eines Names des User aktualisieren müsstest:
                      Vom User eingegebener Text TAB (oder Komma) Zielkarte
                      Dito Nummer 2 TAB eingabeseite2
                      Usereintrag3 TAB eingabekarte3

                      Dann könntest Du so etwas in das Menu schreiben:

                      on menupick tItem
                        ## Ich verwende hier eine custom property des Stacks:
                        put the cLookUpTable of this stack into tLU
                        set itemdel to TAB
                        put lineoffset (tItem & TAB,tLU) into Zeilennummer
                        put item 2 of line ZeilenNummer into ZielKarte
                        go cd Zielkarte
                      end menupick

                      Verstehst Du das Prinzip?
                      Oder habe ich das wieder völlig falsch verstanden? 😀

                      Oder ist die Lösung Dienes Problems vielleicht dieses simple Skript:

                      on menupick wasauchimmer
                         ## wir gehen hier IMMEr zu der Karte:
                         go cd "eingabekarte"
                      end wasauchimmer

                      Man weiß es nicht… 😉

                      Gruß

                      Klaus

                    • #2881
                      Wolli
                      Teilnehmer

                        Hallo Klaus,

                        ich glaube, ich habe mich immer noch nicht richtig verständlich gemacht. Vielleicht ist mein Problem ja gar keins oder so banal, dass Du es nicht erkennen kannst. Vielen lieben Dank für Deine Geduld. Ich probiere jetzt noch mal ein wenig – mit Hilfe Deiner Hinweise.
                        Vielleicht kommt mir ja Dir Erleuchtung! Falls nicht, meld ich mich wieder – wenn ich darf!

                        Herzliche Grüße
                        Wolli

                      • #2883
                        Klaus Major
                        Administrator

                          Falls nicht, meld ich mich wieder – wenn ich darf!

                          Nein, das möchte ich nicht! 😀

                          Mal eine Frage von mir, vielleicht begreife ich es dann:
                          Was genau soll passieren, wenn der User irgendeinen Deiner Menüpunkte aufruft:
                          Immer das Selbe, egal, WAS gewählt wurde?
                          Oder unterschiedliche Aktionen, je nachdem, WAS (welchen Menüpunkt) der User ausgewählt hat?

                        • #2885
                          Wolli
                          Teilnehmer

                            Wenn der User einen der Menüpunkte im Pulldown-Menü aufruft soll immer die gleiche Card „Eingabeseite“ geöffnet werden, aber auf dieser Card sollte in einem Feld der jeweilige (unterschiedliche) Name des Menüpunktes eingetragen sein, sozusagen als „Überschrift“.

                            Beispiel:

                            A. Menüpunkt „Test-01“ klicken – Card „Eingabeseite“ aufrufen – auf der Card „Test-01“ in ein Field schreiben.

                            B. Menüpunkt „Test-02“ klicken – Card „Eingabeseite“ aufrufen – auf der Card „Test-02“ in ein Field schreiben.

                            C. usw.

                          • #2887
                            Klaus Major
                            Administrator

                              Aha! Aber das hat Hauke doch oben schon angedeutet!?

                              on menupick tWhich
                                go cd "eingabekarte"
                              
                                ## Falls es sich immer um das selbe Feld handeln sollte:
                                put tWhich into fld "Dein Feldname hier..."
                              end menupick

                              Falls es sich NICHT immer um das selbe Feld auf der Karte „eingabekarte“ handeln sollte,
                              bitte noch mal Bescheid geben. 🙂

                            • #2950
                              Wolli
                              Teilnehmer

                                Hallo Klaus,

                                vielen Dank nochmals – jetzt funktioniert es.
                                Hier das Script:

                                >>on menuPick pChosenItem
                                go cd „eingabeseite“
                                put pChosenItem into field „nameAktuell“ of card „eingabeseite“
                                end menuPick<<

                                Jetzt wollte ich mir das mal im Simulator ansehen, dabei gleich ein neues Problem:
                                der Simulator startet, das „Smartphone“ wird sichtbar, dann aber kein Erfolg. Abbruch mit folgender Meldung: Unable to start simulation: timed out waiting for device to start.

                                Mein System:

                                macOS High Sierra Version 10.13.1
                                LC Version 8.1.7
                                X-Code Version 9.0.1

                                Hast Du eine Idee?

                                HG
                                Wolli

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