Bestimmten Datensatz in einer Untertabelle verändern
Ninox Profile

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:

Unbenannt 2

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

Unbenannt

Vielleicht könnt ihr mir helfen?

GrußMARCO

Ninox Profile

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

Ninox Profile

hat keiner eine Idee?

Ninox Profile

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

Ninox Profile

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

Ninox Profile

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.

Ninox Profile

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

Ninox Profile

hallo Torsten,

mein Fehler, muss natürlich first vorne stehen.

Antworten