Datagrid – auslesen

Startseite Foren Deutsches LiveCode-Forum Datagrid – auslesen

Ansicht von 17 Antwort-Themen
  • Autor
    Beiträge
    • #2570
      AnHa
      Teilnehmer

      Hallo Zusammen,

      und schon kommt die nächste Frage (peinlich).

      Wie kann ich aus einem Datagrid Daten einer Line in ein Field übergeben.
      Gerne würde ich in diesem Field die Artikelnummer eingeben. Nach Eingabe sollte sich der Artikel mit Bezeichnung etc. automatisch vervollständigen.

      Danke

      Andreas

    • #2572
      Klaus Major
      Verwalter

      Keine Bange, Datagrids sind nun mal die kompliziertesten Objekte in LC überhaupt!
      Wahrscheinlich suchen sich Anfänger das wohl immer zum Einstieg aus!? 😀

      Möchtest Du Daten aus einer gerade aktuellen (ge-hiliteten) Zeile auslesen?
      Oder ganz generell?

    • #2574
      AnHa
      Teilnehmer

      Wahrscheinlich hast du recht. Aber wenn es nach den Datagrids einfacher wird
      ist das ja umso besser…..!

      Im Endeffekt generell.

      Evtl. kannst du mir beide Möglichkeiten aufzeigen (falls nicht zu viel Aufwand für dich)?

      Danke

    • #2576
      Klaus Major
      Verwalter

      Hallo Andreas,

      aber gerne doch! 🙂

      Alle Daten am Stück:

      ## Als TAB und CR getrennter Text:
      put the dgtext of grp „whatever“ into tTextData

      ## Als ARRAY auslesen
      put the dgdata of grp „whatever“ into tBigArray

      Format des Arrays:
      tBigArray[1][„Name der Spalte 1“]
      tBigArray[1][„Name der Spalte 2“]
      tBigArray[1][„Name der Spalte 3“]
      ## etc.
      ## bis N = Anzahl Zeilen im Datagrid:
      tBigArray[N][„Name der Spalte 1“]
      tBigArray[N][„Name der Spalte 2“]
      ## etc.

      Aktuelle Zeile auslesen:

      ## Welche Zeile ist ausgewählt?
      put the dghilitedline of grp „whatever“ into AktuelleZeile

      ## Daten dieser Zeile auslesen, immer als ARRAY:
      put the dgDataOfLine[AktuelleZeile] into tAktuellesArray

      Format dieses Arrays:
      tAktuellesArray[„Name der Spalte 1“]
      tAktuellesArray[„Name der Spalte 2“]
      tAktuellesArray[„Name der Spalte 3“]
      ## etc…

      Gruß

      Klaus

    • #2578
      AnHa
      Teilnehmer

      Danke. Setzte ich dieses Skript im Field? mit MouseUp?
      Das ist mir noch nicht ganz klar.

      Muss das Buch von Hauke Fehr doch schneller durcharbeiten :o)

    • #2580
      hauke
      Verwalter

      Da der Verlag mir für mein Buch nicht mehr Seiten gewährt hat, komme ich im Buch leider nicht bis zum DataGrid 🙂

      Das wäre was für Buch 2 – aber Du kannst auch gerne nochmal den Artikel in diesem Blog zum Thema DataGrid lesen – da erfährst Du auch die Grundlagen!

      Hauke

    • #2582
      Klaus Major
      Verwalter

      Danke. Setzte ich dieses Skript im Field? mit MouseUp?
      Das ist mir noch nicht ganz klar.

      Kommt darauf an, wann und wo Du das machen möchtest.
      Tippe auf einen Button, aber ich kenne auch Deine Anwendung nicht…

      Beschreibe doch mal eben, was Du genau machen möchtest.

    • #2584
      AnHa
      Teilnehmer

      Ich möchte gerne Felder einfügen. In diesen möchte ich die Artikelnummer tippen.
      Das Feld sollte nach Eingabe der Artikelnummer die kommplette Bezeichnung aus dem Datagrid mit übernehmen. Hier kommen noch Preise etc. hinzu.
      Im Grunde soll es ein Tool zur Angebotsschreibung werden wenn es fertig ist.

    • #2586
      Klaus Major
      Verwalter

      OK, dann würde ich eventuell einen Button vorschlagen neben dem Feld mit der Artikelnummer.

      Ansonsten könntest Du ein Skript für das Feld schreiben, was ausgelöst wird, wenn Du in dem Feld RETURN oder ENTER eingibst.

      on returninfield
        ### Dein Code, der Daten aus dem Datagrid holt, hier...
      end returninfield

      Oder:

      on enterinfield
        ### Dein Code, der Daten aus dem Datagrid holt, hier...
      end enterinfield

      Wenn Du beides haben willst, kannst Du so etwas ins Skript schreiben:

      on returninfield
        ### Dein Code, der Daten aus dem Datagrid holt, hier...
      end returninfield
      
      on enterinfield
        ### Mach das Selbe wie bei RETURNINFIELD:
        returninfield
      end enterinfield

      Gruß

      Klaus

    • #2592
      AnHa
      Teilnehmer

      Hallo Klaus,

      danke für deine Antwort. Ich erhalte aber folgenden Fehler in Zeile:

      put the dgDataOfLine[AktuelleZeile] into tAktuellesArray
      field „auswahl“: compilation error at line 8 (Expression: bad factor), char 5

      Hier das Skript in meinem Field „auswahl“

      on returninfield
      ### Dein Code, der Daten aus dem Datagrid holt, hier…

      ## Welche Zeile ist ausgewählt?
      put the dghilitedline of grp „text“ into AktuelleZeile

      ## Daten dieser Zeile auslesen, immer als ARRAY:
      put the dgDataOfLine[AktuelleZeile] into tAktuellesArray

      ##Format dieses Arrays:
      tAktuellesArray[„Teil“]
      tAktuellesArray[„Bezeichnung“]
      tAktuellesArray[„Bezeichnung 2“]
      tAktuellesArray[„Bezeichnung 3“]
      tAktuellesArray[„Bezeichnung 4“]
      tAktuellesArray[„Mengeneinheit“]
      tAktuellesArray[„Bruttopreis“]
      ## etc…
      end returninfield

      DANKE

      Andreas

    • #2594
      Klaus Major
      Verwalter

      Hi andreas,

      passiert mir auch oft, es fehlt die genaue Beschreibung (wessen dgdataofline!):

      ...
      put the dgDataOfLine[AktuelleZeile] OF GRP "text" into tAktuellesArray
      ...

      Gruß

      Klaus

    • #2596
      AnHa
      Teilnehmer

      Hallo Klaus,

      ok. Fehler ist weg. Ich verstehe noch nicht ganz deine Aussage

      ##Format dieses Arrays:
      tAktuellesArray[„Teil“]
      tAktuellesArray[„Bezeichnung“]
      tAktuellesArray[„Bezeichnung 2“]
      tAktuellesArray[„Bezeichnung 3“]
      tAktuellesArray[„Bezeichnung 4“]
      tAktuellesArray[„Mengeneinheit“]
      tAktuellesArray[„Bruttopreis“]

      Wie darf ich das verstehen? Das erschliesst sich mir noch nicht so wirklich.
      Daten werden ausgelesen und in Array übergeben.

      Wie lese ich dann die ganze Zeile genau in das Field ein.

      Sorry :o)
      ## etc…

    • #2598
      Klaus Major
      Verwalter

      Achso, Du benötigst die gesamte Zeile, sorry, hatte ich falsch verstanden.
      In dem Fall:

      ...
      ## Welche Zeile ist ausgewählt:
      put the dghilitedline of grp "text" into AktuelleZeile
      
      ## Nun extrahieren wir die ganze Zeile aus dem TEXT des Datagrids:
      put the dgtext of grp "text" into AlleDaten
      put line AktuelleZeile of AlleDaten into fld "wo auch immer..."
      ## oder AFTER field...
      ...

      Gruß

      Klaus

    • #2600
      AnHa
      Teilnehmer

      Works !!!

      Danke

    • #2602
      AnHa
      Teilnehmer

      Doch noch eine kleine letzte Frage.

      Welchen Befehl nehme ich, wenn die Zeile direkt nach Auswahl im Datagrid im Feld angezeigt werden soll. Also one retruninfield oder enterinfield.

      Danke für deine Geduld mit mir.

      Gruß

      Andreas

    • #2604
      Klaus Major
      Verwalter

      Hi andreas,

      schreibe ein Skript für die Datagrid Gruppe selber, NICHT IM Behaviour des Datagrids!

      on mouseup
         put the dghilitedline of me into tZeile
         put the dgtext of me into tData
         put line tZeile of tData into fld "wo auch immer..."
      end mouseup

      Gruß

      Klaus

    • #2606
      AnHa
      Teilnehmer

      Wunderbar !

      Danke Klaus

    • #2608
      Klaus Major
      Verwalter

      Warte, bis die Rechnung bei Dir eintrudelt! 😀

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