2

Nested Array erstellen in der Form [[51.12344,34.876342],[26.987430,45.123459]]

Manchmal werden von Drittanbieterprogrammen Daten in Form eines nested Arrays verlangt.
Ninox ist leider nicht in der Lage, diese simpel mit der Arrayfunktion zu erstellen.
Es ist jedoch dank Leo's findiger Eingebung möglich, dennoch ein nested Array mit Ninox Bordmitteln zu erstellen.

Ich Gehe hier von 2 Locations aus, aus denen die Koordinaten als nested Array versand werden sollen.

Hier das Beispielscript.
let myArr := [{
            key: [lat_1, long_1]
        }, {
            key: [lat_2, long_2]
        }];
let myArr2 := for i in myArr do
        i.key
    end;
formatJSON(myArr2)

Das Ergebnis dieses Scripts sieht wie folgt aus:

[[52.55837726356497,13.339076042175293],[13.803751949709243,100.58085322380066]]

 

In der angehängten Beispiel-DB kann es nachvollzogen werden.

3 Antworten

null
    • Stefan_Mann
    • vor 1 Jahr
    • Gemeldet - anzeigen

    Hallo Uwe,

    ich benötige ein solches nested Array für die Übergabe an Carbone.

    Die Daten stehen in einer Untertabelle mit zwei Datenfeldern,  "Art" = Auswahlfeld und  "Text" = Textfeld.

    Jetzt soll das Ergebnis nach der Spalte "Art" gruppiert als JSON übergeben werden, wobei jede "Art"  natürlich nur einmal gezogen wird und der Text des Auswahlfeldes übergeben wird. Darunter soll der "Text" als Subarray für die verschachtelte Tabelle übergeben werden.

    Carbone hat dafür diese Beispiel:

    [ { brand: "Toyota", models: [{ size: "Prius 2" }, { size: "Prius 3" }] }, { brand: "Tesla", models: [{ size: "S" }, { size: "X" }] } ];

    das Ergebnis würde ich mir in meinem Fall so vorstellen: [text(Art) [ Text ]], ich verzweifle aber an den Schleifen die für die Abholung der Daten nötig sind.

    Kannst Du mir da helfen?

     

    Viele Grüße, Stefan

      • Michi.1
      • vor 1 Jahr
      • Gemeldet - anzeigen

      hab null Ahnung ob das ein Ansatz ist. Von Leo.  Holt mir aus allen dmfa die Werte und geupiert sie nach dem jeweiligen dmfa.

      delete (select Printtabelle);
      do as server
          let me := this;
          let myNameSpace := ["Buffet", "Beilagen", "Salatbar", "Dessert", "Snacks", "Getränke"];
          let myValueSpace := ['Buffet auswahl', 'Buffet beilagen wählen', 'Salatbar auswahl', 'Dessert auswahl', 'Snack auswahl', 'Getränke wählen'];
          let myTableSpace := ["Buffet", "'Beilagen für Buffet'", "Salatbar", "Dessert", "Snacks ", "'Getränke'"];
          let myPos := 1;
          for i in range(cnt(myNameSpace)) do
              let new := (create Printtabelle);
              new.(Dashboard := me);
              new.(Pos := myPos);
              new.(Gruppe := item(myNameSpace, i));
              new.(Hinweise := join(for j in numbers(item(myValueSpace, i)) do
                      text(eval(---
      record({ item(myTableSpace, i) },{ j })."___________________________________"
                      ---, me))
                  end, "
      ") +
                  "
      ");
              new.(Bezeichnung := join(for j in numbers(item(myValueSpace, i)) do
                      " • " +
                      text(eval(---
      record({ item(myTableSpace, i) },{ j }).Position
                      ---, me))
                  end, "
      ") +
                  "
      ");
       

      • UweG
      • vor 1 Jahr
      • Gemeldet - anzeigen

       
      Hallo Stefan, ein Array kann nicht aus unterschiedlichen Datentypen bestehen.
      Deine Schreibweise hat nichts mit dem obigen Beispiel zu tun.
      Hast du mal in Carbone Studio mit einer Templatevorlage deine Datenkonististenz getestet?
      Anbei das zum Carbone Beispiel zugehörige Template für Carbone Studio zum testen. Du kannst ja dann in Studio die Daten so anpassen, wie sie deiner Meinung nach dargestellt werden sollen um einfach mal zu sehen, wie die Schreibweise der zu übermittelnden Daten auszusehen hat.
      Deine im Kommentar angeführte Schreibweise wird immer einen Fehler erzeugen und entspricht auch nicht dem Carbone Beispiel. Wenn du ein stimmiges Ergebnis erhält, kannst du das posten, damit ich verstehe, was du genau übertragen haben möchtest. Weil das, kann ich momentan noch nicht nachvollziehen.
       

Content aside

  • 2 „Gefällt mir“ Klicks
  • vor 1 JahrZuletzt aktiv
  • 3Antworten
  • 103Ansichten
  • 3 Folge bereits