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
        Administrator

          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
            Administrator

              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.