Startseite › Foren › Deutsches LiveCode-Forum › Daten in Datagrid weiter nutzen?
Schlagwörter: Daten rückschreiben, Pull-Down-Menü, SQL
- Dieses Thema hat 12 Antworten und 2 Teilnehmer, und wurde zuletzt aktualisiert vor 5 Jahre, 3 Monaten von
Wolli.
-
AutorBeiträge
-
-
November 21, 2017 um 06:15 Uhr #2844
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
-
November 21, 2017 um 12:59 Uhr #2853
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
-
November 21, 2017 um 19:15 Uhr #2861
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
-
November 21, 2017 um 19:16 Uhr #2863
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″ thengo to card „eingabeseite“
put pChosenItem into field „meinFeld“ of card „eingabeseite“
end if
Grüße
Hauke -
November 21, 2017 um 19:17 Uhr #2865
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
-
November 21, 2017 um 19:35 Uhr #2869
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
-
November 22, 2017 um 12:28 Uhr #2877
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 -
November 22, 2017 um 12:54 Uhr #2879
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
-
November 22, 2017 um 15:38 Uhr #2881
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 -
November 22, 2017 um 15:41 Uhr #2883
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? -
November 22, 2017 um 16:59 Uhr #2885
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.
-
November 22, 2017 um 17:20 Uhr #2887
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. 🙂 -
November 25, 2017 um 21:00 Uhr #2950
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.1Hast Du eine Idee?
HG
Wolli
-
-
AutorBeiträge
- Du musst angemeldet sein, um auf dieses Thema antworten zu können.