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
        Administrator

          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
            Administrator

              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
                Administrator

                  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
                  Administrator

                    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
                      Administrator

                        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
                          Administrator

                            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
                              Administrator

                                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
                                    Administrator

                                      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
                                        Administrator

                                          Warte, bis die Rechnung bei Dir eintrudelt! 😀

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