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
-
Mist ein Fehler ist mir bei der Beschreibung passiert. Die Tabelle Heißt "Diagramme" und die Untertabelle "801"...
-
hat keiner eine Idee?
-
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
-
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 -
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.
-
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
-
hallo Torsten,
mein Fehler, muss natürlich first vorne stehen.
Content aside
- vor 5 JahrenZuletzt aktiv
- 7Antworten
- 1754Ansichten