Kurzzeitig mehrere Verknüpfungen zu Untertabelle per Script
Hallo liebe Comunity,
ich benötige für die Erstellung eines Reports kurzzeitig mehrere Verknüpfungen zu einer Tabelle die für diesen Zweck als Untertabelle 'Messungen Messmittel' arrangiert ist.
Ich führe bei Kunden Messungen durch und dokumentiere in meiner Tabelle 'Messungen' die Ergebnisse.
Dafür verwende ich Messmittel die in der Tabelle 'Messmittel' verwaltet werden. Für jedes Messmittel gibt es eine Datei 'Kalibrierprotokoll' die ich als Anlage für die Reports 'Messungen' benötige.
Die Kalibrierprotokolle möchte ich in jeder Messung verwenden können, deshalb fällt eine dauerhafte Verknüpfung aus.
Daher wähle ich die 'Messmittel' die ich für die Messung verwende über ein dynamisches Auswahlfeld 'Auswahl Messmittel' aus, um die Datensatznummern die benötige festzulegen.
Über welchen Befehl kann ich denn jetzt in der Rückverknüpfung die passenden Datensätze in 'Messmittel' verknüpfen?
Eine Neuanlage mit den Inhalten der selectierten Datensätze über create funktioniert ohne Probleme:
let my := this;
let MM := numbers('Auswahl Messmittel');
do as server
for i in MM do
let myMA := record(Messmittel,number(i));
let new := (create 'Messungen Messmittel');
new.(Hersteller := myMA.Hersteller);
new.(Typ := myMA.text(Typ));
new.(Seriennummer := myMA.text(Seriennummer));
new.('Letzte Kalibrierung' := myMA.format(date(last('Kalibrierung Messmittel'.'Datum + Uhrzeit')), "DD.MM.YYYY"));
new.('Messungen' := my)
end
end;
Aber ich will ja nur die vorhanden Datensätze verknüpfen und nach dem Print wieder entknüpfen.
Das hier klappt nicht:
let my := this;
let MMV := 'Messungen Messmittel';
let MM := numbers('Auswahl Messmittel');
do as server
for i in MM do
let myMA := record(Messmittel,number(i));
MMV.('Messungen Messmittel' := myMA.my)
end
end
Danke im Voraus für die Hilfe!
Stefan
4 Antworten
-
Hab schon einen Fehler gefunden. Die Schleife muss natürlich in der Untertabelle 'Messungen Messmittel' laufen.
Wenn ich nicht einschränke werden mir schon mal alle Datensätze verknüpft:
do as server for i in select Messmittel do let my := this; i.('Messungen Messmittel' := my) end end
Wenn ich aber versuche auf die ausgewählten Datensatznummern zu beschränken passiert nichts:
let NM := numbers('thermologger Auswahl'.'Auswahl Messmittel'); do as server for i in select Messmittel where Nr = NM do let my := this; i.('Validierung RDG-E16' := my) end end
Hat jemand eine Idee?
-
Entschuldigung, falscher Verweis. Korrekt:
let NM := numbers('thermologger Auswahl'.'Auswahl Messmittel'); do as server for i in select Messmittel where Nr = NM do let my := this; i.('Messungen Messmittel' := my) end end
-
Hallo Stefan, ehrlich gesagt blicke ich angesichts der verschiedenen Code-Fragmente und Tabellen nicht so recht durch, was da nun genau auf welche Weise womit verknüpft ist bzw. werden soll. Grundsätzlich gilt: Eine Verknüpfung erfolgt immer auf der N-Seite. Unter diese Prämisse wage ich mal einen Schuss ins Blaue:
let my := this let NM := numbers('thermologger Auswahl'.'Auswahl Messmittel'); for i in NM do record('Messmittel', number(i)).'Messungen Messmittel' := my end
Falls das nicht weiterhilft, solltest du vielleicht noch mal das Datenmodell und die Aufgabenstellung etwas genauer beschreiben. Oder gleich die DB mit Demodaten zur Verfügung stellen.
-
Hallo planox,
ich hatte zwischenzeitlich so aufgelöst:
let my := this; let NM := numbers('thermologger Auswahl'.'Auswahl Messmitel'); do as server for i in NM do let myMA := record('Messmittel',number(i)); myMA.('Messungen Messmittel' := my) end end
Ist dann letztlich wohl diesele Lösung geworden mit Umweg über die Variable.
Vielen Dank noch für die Mühe!
Content aside
- vor 2 JahrenZuletzt aktiv
- 4Antworten
- 110Ansichten
-
2
Folge bereits