Bei Klick - Datensätze anlegen.
Hallo.
Ich stehe auf dem Schlauch.
Es sind zwei Tabellen vorhanden:
Prüfeinheit_L und Prüfkriterium_L
Unter Prüfeinheit_L befinden sich die Prüfeinheiten:
Unter Prüfkriterium_L befinden sich die Prüfkriterien:
Unter Sprossen/ Stufen/Plattform natürlich andere Kriterien.
In einer weiteren Tabelle habe ich unter anderem die Registerkarte:
Pruefobjekte_Leiter
Hier befinden sich drin die Verknüpfung zu der Tabelle: Leiterkomponenten-Prüfung
Ich möchte nun über das Auswahlfeld die Prüfeinheiten wählen und bei KLICK auf HINZUFÜGEN soll er
in der Tabelle: Leiterkomponenten-Prüfung die Datensätze anlegen. Zum Beispiel bei der Auswahl HOLME dann 5 Datensätze (Einheit: Holme, Prüfkriterium: Verformung, Einheit: Holme, Prüfkriterium: Beschädigung usw....)
Bislang legt er mir bei Klick nur ein Datensatz mit dem ersten Kriterium (Verformung) an.
Hinter dem Button Übernehmen steht folgende Funktion:
let me := this;
for i in numbers('Prüfkriterien1') do
let newRecord := (create 'Leiterkomponenten-Prüfung');
newRecord.(
'Prüfobjekte-Leiter' := me;
Einheit := record('Prüfeinheit_L',i).'Prüfeinheit';
Kriterium := record('Prüfkriterium_L',i).'Prüfkriterium'
)
end
Bislang legt er bei der Auswahl von mehreren Einheiten auch beide an aber immer nur mit dem ersten in der Tabelle stehenden Kriterium und nicht mit allen.
Hat jemand eine Idee was hier fehlt und wie ich das umsetzen kann? Schon jetzt vielen Dank.
Viele Grüße, Jens
5 Antworten
-
Moin,
du brauchst zwei for-Schleifen.
Eine läuft durch die Mehrfachauswahl "Prüfkriterien1", die andere durch die zugehörigen Prüfkriterien zu den z.B. Holmen.
die zweite Schleife könnte so aussehen:
for i in numbers('Prüfkriterien1') do let newRecord := (create 'Leiterkomponenten-Prüfung'); let Pruefkriterien_L := select Prüfkriterien_L where Prüfeinheit = i; --- den Filter in der vorherigen Zeile natürlich genau anpassen, auf deine Struktur---; newRecord.( 'Prüfobjekte-Leiter' := me; Einheit := record('Prüfeinheit_L',i).'Prüfeinheit'); for j in Pruefkriterien_L do newRecord.(Kriterium := record('Prüfkriterium_L',j).'Prüfkriterium') end end
Könnte sein, dass ich nicht alles 100% korrekt geschrieben habe, aber die grundsätzliche Struktur sollte funktionieren.
-
so geht es auch nicht. Verstehe das nicht.
for i in numbers('Prüfeinheit') do let newRecord := (create 'Leiterkomponenten-Prüfung'); let Pruefkriterien_L := select 'Prüfeinheit_L' where 'Prüfeinheit' = i; --- den Filter in der vorherigen Zeile natürlich genau anpassen, auf deine Struktur---; newRecord.( 'Prüfobjekte-Leiter' := me; Einheit := record('Prüfeinheit_L',i).'Prüfeinheit'); for j in Pruefkriterien_L do newRecord.(Kriterium := record('Prüfkriterium_L',j).'Prüfkriterium') end end
puhhh
-
Hallo Zusammen.
Zur besseren Übersicht habe ich mal die gesamten Variablen zusammengestellt. Vielleicht ist da die Übersicht etwas einfacher und ihr findet den Fehler ?Tabelle
Felder
Bemerkung
Prüfobjekte-Leiter
Prüfeinheit
Greift auf die Tabellen Prüfeinheit_L und Prüfkriterium_L zu. Ein Feld mit mit Prüfkriterium befindet sich aber nicht in der Tabelle Prüfobjekte-Leiter
Prüfeinheit_L
Prüfeinheit
Prüfkriterium_L
Prüfkriterium
Leiterkomponenten-Prüfung
Tabelle die gefüllt werden soll
Prüfobjekte-Leiter
Tabelle in dem sich auch der Button befindet und mit der Tabelle Leiterkomponenten-Prüfung verknüpft ist.
Und hier der Code den ich versucht habe. Aber nichts passiert.
for i in numbers('Prüfeinheit') do let newRecord := (create 'Leiterkomponenten-Prüfung'); let Pruefkriterium_L := (select 'Prüfkriterium_L' where 'Prüfkriterium' = i); newRecord.( let me := 'Prüfobjekte-Leiter'; Kriterium := record('Prüfkriterium_L',i).'Prüfkriterium' ); for j in Pruefkriterium_L do newRecord.(Kriterium := record('Prüfkriterium_L',j).'Prüfkriterium') end end
Vielen lieben für Eure Hilfe.
Jens
-
Hallo nochmals.
Es lässt mir einfach keine Ruhe. Schlimm.
Habe aber das Gefühl, dass die Lösung nicht so weit entfernt ist.
Bin mir auch nicht sicher, ob ich nicht einfach eine neue Frage aufrufen soll. Aber ich versuche es mal so.ICH HABE DAS GEFÜHL, dass die zweite for-Schleife überhaupt nicht angesprochen wird.
Die erste soll die ausgewählte Prüfeinheit als neuen Datensatz anlegen. Deshalb der Bezug auf die Prüfeinheit. Zu einer Einheit gibt es mehrere Prüfkategorien. Die soll er eben alle anlegen.
Die zweite Schleife bezieht sich doch auf die Prüfkategorien. Also solange bis keine Kategorie zur ausgewählten Einheit vorhanden ist.
Mit diesem Script legt er aktuell ein Datensatz an (Einheit) ohne die Kategorie zu benennen.
Könnt ihr den Fehler erkennen? Ich hoffe es so sehr.
let me := this; for i in numbers('Prüfeinheiten') do let newRecord := (create 'Leiterkomponenten-Prüfung'); let Kriterien := (select 'Prüfkriterium_L' where 'Prüfkriterium' = i); newRecord.( 'Prüfobjekte-Leiter' := me; Einheit := record('Prüfeinheit_L',i).'Prüfeinheit' ); for j in Kriterien do newRecord.(Kriterium := record('Prüfkriterium_L',j).'Prüfkriterium') end end
Schon jetzt vielen vielen Dank für die Hilfe.
Viele Grüße, Jens
Content aside
- vor 2 MonatenZuletzt aktiv
- 5Antworten
- 59Ansichten
-
2
Folge bereits