0

Bestimmten Datensatz in einer Untertabelle verändern

Hallo, jetzt habe ich auch mal eine Frage. Mein Projekt ist natürlich größer, aber am folgenden Problem hänge ich gerade).

Ich habe eine Tabelle namens "801". in dieser gibt es eine Untertabelle, die ich gerne mit Daten füllen möchte. Mein Problem ist, dass ich vor dem "Knopfdruck" noch nicht weiß, welche Spalte und welche Zeile:

 

Den Datensatz und das zugehörige Feld möchte ich mit folgendem Skript ansprechen - geht aber nicht :-( - was mache ich falsch?

 

Vielleicht könnt ihr mir helfen?

GrußMARCO

7 Antworten

null
    • Escher_Marco
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Mist ein Fehler ist mir bei der Beschreibung passiert. Die Tabelle Heißt "Diagramme" und die Untertabelle "801"...

    • Escher_Marco
    • vor 4 Jahren
    • Gemeldet - anzeigen

    hat keiner eine Idee?

    • Torsten_Stang.1
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo,

     

    1. mit "myMat" möchtest Du wohl eine Feldbezeichnung übergeben - das geht (leider) nicht. Du müsstest also hier für jeden möglichem Eintrag eine Bedingung hinterlegen.

     

    2. mit Deiner select-Anweisung zeigst Du für Ninox auch mit den gewählten Kriterien nicht auf genau einen Datensatz.

     

    Vielleicht so:

     

    let my := this;
    let myDate := Testdatum;
    let myMat := lower(Testmaterial);
    let myAnz := Testanzahl;
    let my801 := first(select '801' where Belegungsdatum = myDate and 'Diagramme' = my);
    if myMat = "abdichtung" then
       my801.Abdichtung := myAnz
    else
       if myMat = "asphalt" then
          my801.Asphalt := myAnz
       else
          if myMat = "beton" then
             my801.Beton := myAnz
          else
             .
             und so weiter und so fort :-)
             .
          end
       end
    end

     

    lg, Torsten

    • Leonid_Semik
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo Marco,

    Ninox kann die Feldnamen aus dem String nicht interpretieren. Man kann es so versuchen:

    ---

    let me:=this;
    let my801:='Be-Fläche 801'[Belegungsdatum=me.Testdatum];
    switch me.Testmaterial do
    case "Abdichtung":
    my801.Abdichtung:=me.Testanzahl
    case "Asphalt":
    my801.Asphalt:=me.Testanzahl
    case "Beton":
    my801.Beton:=me.Testanzahl
    case "Bodenausschub":
    my801.Bodenausschub:=me.Testanzahl
    ...
    ...
    ...

    end

    ---
    Leo

    • Escher_Marco
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Alles klar, das war mein Plan "B" (und so funktioniert es auch) - ich dachte es geht einfacher mit dem Feldnamen.

    Danke für das Feedback.

    • Torsten_Stang.1
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo nochmal,

     

    Schicker Code, Leo - aber unabhängig davon: funktioniert "let my801:='Be-Fläche 801'[Belegungsdatum=me.Testdatum]" tatsächlich? Ninox müsste hier doch eigentlich ein Array zurückgeben statt einer ID, schließlich könnte es (für Ninox) mehrere Datensätze mit dem gleichen Datum geben, oder?

     

    lg, Torsten

    • Leonid_Semik
    • vor 4 Jahren
    • Gemeldet - anzeigen

    hallo Torsten,

    mein Fehler, muss natürlich first vorne stehen.

Content aside

  • vor 4 JahrenZuletzt aktiv
  • 7Antworten
  • 1753Ansichten