über den Befehl create einen Datensatz in einer Untertabelle erstellen
Hallo - bin ein ziemlicher Ninox Neuling und hänge gerade an einem Problem.
Ich versuche mit einem Button (ist nur die Testanordnung) einen Datensatz in einer Untertabelle zu generieren.
let myNew := (create Zusatztermine);
myNew.(Text := "Automatisch generiert");
myNew.Webinare.(Nr := 66)
Wenn ich HÄNDISCH einen Datensatz (Zusatztermine ... ist eine Untertabelle von Webinare) erstelle wird er im jeweiligen "Webinare" Datensatz sauber dargestellt.
Wenn ich versuche ihn automatisch zu generieren ist es mir leider nicht möglich das Feld, dass die Verbindung des Datensatzes zwischen Webinare und Zusatztermine anzeigt, zu bestücken ... sieht dann so aus:
7 Antworten
-
Gelöst!!!
Offensichtlich hatte Stefan am Freitag genau die gleiche Frage :-)Auch von mir vielen Dank an Leonid!
LG
Wolfgang
-
Äh ... doch nur teilweise :-(
Wollte jetzt das Terminfeld in der Untertabelle mit einem Terminfeld aus der Haupttabelle bestücken ... funktioniert leider nicht
let me := this;
let myNew := (create Zusatztermine);
myNew.(Text := "Durchführung");
myNew.(Termin := Termin);
myNew.(Webinare := me)Ninox meckert zwar nicht ... aber der der Termin wird leider auch nicht ausgefüllt ...
-
Hallo Wofgang, man muss Ninox sagen, dass er den 'Termin' aus der Haupttabelle nehmen soll. Die ID der Haupttabelle hast du ja schon in der Variable 'me' gespeichert. Also (Rest wie gehabt):
myNew.(Termin := me.Termin);
-
Funktioniert super - Vielen Dank!!!!
-
Aber offensichtlich habe ich die Syntax noch nicht richtig verstanden.
Ich wollte jetzt die Anzahl der Zusatztermine anzeigenlet me := this;
alert(cnt(select Zusatztermine where Nr = me))Funktionert leider nicht :-(
-
Hallo Wolfgang, mit deinem Code versuchst du, die Tabelle 'Zusatztermine' nach Datensätzen zu filtern, welche dieselbe Nummer haben wie der aktuelle. Die 'Nr' ist aber in jeder Tabelle einmalig, die ID (Kombi aus Table und Record) sogar in der gesamten Datenbank. Der Ansatz ist also falsch, nicht die Syntax.
Wenn ich es richtig verstehe, dann willst du ja die Datensätze in 'Zusatztermine' zählen, die mit dem aktuell geöffneten Datensatz der Haupttabelle verknüpft sind. Das geht viel einfacher, denn bei verknüpften Tabellen benötigt man generell kein "select":
cnt(Zusatztermine)
Der Vollständigkeit halber: In der Cloud funktioniert das alert() nur mit Button, nicht in Triggern und Funktionen.
-
Ich hatte es dann so gelöst:
cnt(select Zusatztermine where Webinare.Nr = me.Nr)
hat funktioniert - ist aber natürlich nicht so elegant und einfach wie Deine Lösung - Vielen Dank dafür :-)
Content aside
- vor 4 JahrenZuletzt aktiv
- 7Antworten
- 1174Ansichten