Bei neuer Verknüpfung (Neuer Datensatz) Feldwerte übermitteln - ist das möglich!?
Hallo,
meine Haupttabelle ist die Tabelle 'Aufträge'. Eine weitere Tabelle, 'Tourenplan' ist damit verknüpft.
Sobald ich einen neuen Auftrag angelegt habe, muss ich diesen auch einer Tour zuordnen.
In vielen Fällen fällen existiert aber nach der Auftragsanlage noch gar keine Tour, deshalb benutze ich beim Verknüpfen also meist den "Plus"-Button.
Nun, was Aufträge und Touren zu 97% gemein haben ist das Datum. Nur wenn die Tour vor Mitternacht startet, aber der Auftrag erst nach 24 Uhr, also am nächsten Tag beginnt, stimmt das Datum nicht überein. Aber das ist ja wie gesagt die Ausnahme.
Es ist beim zuordnen jetzt in bisschen nervig zweimal über das korrekte Datum nachzudenken, und es hätte auch böse Folgen, wenn sich da einer in meinem Team "vertut".
Naja, sorry für meine Ausschweifung :-)
Die Frage ist, ob man (in meinem Fall das Datum) Feldwerte beim erstellen eines neuen Datensatzes über eine Verknüpfung übernehmen kann?
Danke für's durchlesen, und im Voraus noch mehr Dank für eine Lösung *grins*
Gruß,
Oliver M.
10 Antworten
-
Ich glaube das ist in der Befehls- und Sprachreferenz behandelt, wie man einen neuen Datensatz in der verknüpften Tabelle erzeugen kann. Dann kann man ja im Script auch gleich die gewünschten Felder dort entsprechend ausfüllen.
Hier der Auszug:
Create Records
With the create statement it’s possible to create new records for a table. The following example creates a new record for the table Person and stores a reference to that record in the variable p. It then assigns a Name to the newly created Person.let p := create Person;
p.Name := "Sarah Conner" -
Hallo Dirk,
danke für diesen Ansatz.
Torsten hatte mir bei einer ähnlichen Sache schon geholfen, da wollte ich Adressdaten in einen neuen Datensatz der gleichen Tabelle übertragen.
Ich habe jetzt rumprobiert, das geht auch zwischen verschiedenen Tabellen, schonmal sehr gut.
Es öffnet sich "nur" ein neuer Datensatz.
Ich wünsche mir aber gleichzeitig auch eine neue Verknüpfung, bzw genau das, was passiert wenn man beim verknüpfen auf das kleine 'Pluszeichen' klickt.
Hier der funktionierende Code für den neuen Datensatz (Button)let myFeld1 := Datum;
let myNew := (create Tourenplan);
myNew.(Datum := myFeld1);
let NeuDateNr := max((select Tourenplan).number(Nr));
openRecord(record(Tourenplan,NeuDateNr))
Gibt es jetzt evtl. noch einen Befehl zum verknüpfen!?
Gruß
Oliver M. -
Cheerio!
vorausgesetzt, der genannte Button kommt aus dem Datensatz der Tabelle "Aufträge", den Du im neuen Eintrag in "Tourenplan" verknüpfen willst, dann:
---
let myAuftrag := Nr;
let myFeld1 := Datum;
let myNew := (create Tourenplan);
myNew.(Datum := myFeld1);
myNew.('Aufträge' := myAuftrag);
let NeuDateNr := max((select Tourenplan).number(Nr));
openRecord(record(Tourenplan,NeuDateNr))
---lg, Torsten
-
Hallo Torsten,
vielen Dank, es wird bei mir aber noch ein Fehler angezeigt.
Ich habe den Button in der Tabelle 'Aufträge' angelegt. -
Moin!
... wie heißt denn in der Tabelle Tourenplan die Verknüpfung zur Tabelle 'Aufträge'??
lg, Torsten
-
Hi Torsten,
ich habe den Verdacht, dass du von einer umgekehrten Verknüpfung ausgehst!?
Hier habe ich den neuen Button 'Neue Tour anlegen' in der Tabelle Aufträge angelegt:
-
Hi Oliver,
ja, und Du willst doch die neu angelegte Tour mit dem Auftrag verknüpfen, oder?
Also deinem Screenshot nach:
myNew.('Verknüpfte Aufträge' := myAuftrag);
lg, Torsten
-
Hallo Torsten,
ich möchte aus einem vorhandenen Auftrag heraus, direkt einen neuen Datensatz in der Tabelle 'Tourenplan' erstellen.
Also genau das verhalten, wenn ich bei meiner "Tour Verknüpfung" auf das Pluszeichen drücke.
Es entsteht dann ein neuer Datensatz im Tourenplan, der in dem Moment aber auch schon mit der Tabelle 'Aufträge' verknüpft ist.Naja, und dann sollte das Datum vom Auftrag in den neuen Tourenplan Datensatz übernommen werden, das leistet das Pluszeichen ja dann erstmal nicht.
Hier die aktuelle Fehlermeldung:
-
Hallo Oliver,
mea culpa - so sollte es wie gewünscht klappen:
---
let myAuftrag := Nr;
let myFeld1 := Datum;
let myNew := (create Tourenplan);
myNew.(Datum := myFeld1);
Tourenplan := myNew;
let NeuDateNr := max((select Tourenplan).number(Nr));
openRecord(record(Tourenplan,NeuDateNr))
---zumindest tut's unter https://www.dropbox.com/s/rym000q3ds5bgcd/AuftragTour.ninox?dl=0 ;-)
lg, Torsten
-
Hallo Torsten,
erstmal vielen Dank für die viele Mühe und die Testdatenbank!
Ich habe länger suchen müssen warum es bei mir nicht ging, wie immer war es nur eine Kleinigkeit.
Es muss einfach nur 'Tour Verknüpfung' im Code stehen.So funzt das jetzt wirklich Klasse, mein User-Team wird sich freuen.
Nochmals vielen Dank!
...und bis zur nächsten Frage :-)
Gruß
Oliver M.
Content aside
- vor 6 JahrenZuletzt aktiv
- 10Antworten
- 5132Ansichten