Daten in Datagrid anhängen

Startseite Foren Deutsches LiveCode-Forum Daten in Datagrid anhängen

Ansicht von 3 Antwort-Themen
  • Autor
    Beiträge
    • #13902
      wupp66
      Teilnehmer

      Hallo liebe Livecode Gemeinde,

      ich möchte ein Telefonbuch programmieren, indem der User selber die Daten eingeben kann.
      Leider schreibt mein Script, die daten hinter dem ersten Eintrag, statt darunter.
      Hier das Script:

      on mouseup
      put the dgdata of grp „TGrid“ on card „TelefonGrid“ into tArray
      put the keys of tArray into tkeys
      put the num of lines of tkeys into tAnzahl
      put tAnzahl into fld „Anzeige“
      if tAnzahl = 0 then
      put fld „Fname“ &tab& fld „FVorname“ &tab& fld „FMobil“ &tab& fld „FTelefon“ &tab& fld „FEMail“ & return into tDaten
      else
      put the dgText of grp „TGrid“ on card „TelefonGrid“ into Tdaten
      set the dgData of group „TGrid“ on card „TelefonGrid“ to empty
      put fld „Fname“ &tab& fld „FVorname“ &tab& fld „FMobil“ &tab& fld „FTelefon“ &tab& fld „FEMail“ & return after tDaten
      end if
      set the dgText of grp „TGrid“ on card „TelefonGrid“ to TDaten
      put empty into fld „FName“
      put empty into fld „FVorname“
      put empty into fld „FMobil“
      put empty into fld „FTelefon“
      put empty into fld „FEMail“
      end mouseup

      Was mache ich falsch ?

      Wünsche noch einen schönen Abend
      Andreas

    • #13910
      Klaus Major
      Verwalter

      Hallo Andreas,

      Du machst es Dir unnötig schwer! 🙂
      Offenbar ist Deine Bedingung niemals 0, sondern eher EMPTY,
      daher kommt kein CR (Return) in Deine Daten!

      Und „Adressen“ immer mit OF angeben:
      btn 2 OF cd 3 OF stack „xyz“

      Mach es so, the DGDATA benötigen wir nicht:

      on mouseup
         
         ## So etwas nur EINMAL tippen, Variablen kosten nix!
         put fld "Fname" & tab & fld "FVorname" & tab & fld "FMobil" & tab & fld "FTelefon" & tab & fld "FEMail" into tDaten
         put the dgtext of grp "TGrid" OF card "TelefonGrid" into tDGDaten
         
         ## Nun checken:
         ## Keine Daten vorhanden
         if tDGData = EMPTY then
            put tDaten into tDGDaten
         else
      
            ## Daten vorhanden, also anhängen
            put CR & tDaten AFTER tDGDaten
         end if
         set the dgText of grp "TGrid" OF card "TelefonGrid" to tDGDaten
      
         ## JETZT wäre der ideale Zeitpunkt, um die Anzeige zu aktualisieren.
         ## Deine Lösung hinkte immer einen Datensatz hinterher! :-)
         put the num of lines of tDGDaten into fld "Anzeige"
      
         put empty into fld "FName"
         put empty into fld "FVorname"
         put empty into fld "FMobil"
         put empty into fld "FTelefon"
         put empty into fld "FEMail"
      end mouseup

      Gruß

      Klaus

    • #13927
      wupp66
      Teilnehmer

      Danke Klaus, genau so sollte das sein.
      Die Abfrage ob 0 Datensätze vorhanden sind, trifft genau einmal zu,
      nämlich dann wenn das DataGrid noch leer ist und ich dachte
      das ich dann „into“ Daten brauche statt „after“. Sobald dann der erste Satz
      im Datagrid war, hätte ich dann die weiteren Datensätze mit after angehängt.
      So war zumindest meine Überlegung.
      Das ich es mir auch so einfach machen konnte kam mir gar nicht in den Sinn 🙂
      Denke halt kompliziert.
      Danke nochmal für die schnelle Hilfe

      Lieben Gruß
      Andreas

    • #13929
      Klaus Major
      Verwalter

      Falls es Dich tröstet, DataGrids SIND nun mal die komplexesten Dinger in Livecode! 🙂

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