Wie kann ich den Feldwert einer Maske in eine andere übernehmen? Habs mit GetField versucht ist aber gescheitert.
Feldwert einer Maske in eine andere übernehmen
- Elfriede
- Erledigt
-
-
Beim Erstellen eines neuen Dokumentes ?
Dann musst du nur die Eigenschaft der Form mit dem du das neue Dokument erstellst so einstellen das Formeln Werte aus dem gewählten Dokument übernehmen aktiviert ist.
In dem Feld wo du den Wert übernehmen willst dann einfach als Vorgabeformel den Namen des Feldes des gewählten DokumentesWillst du die Werte nachträglich übernehmen, dann kannst du die Funktion @GetDocField verwenden sofern du die DocID des Dokumentes hast aus dem du den Wert haben willst
-
beim erstellung oder nachträglich ?
-
Der Wert kommt aus einem bereits gespeicherten Dokument.
Ich hab versucht mit folgender Formel den Wert auszulesen - ohne Erfolg.
Field Name:=@GetDocField(ID;p_name)ID = DocID des bereits gespeicherten Dokuments
p_name = Feldwert aus dem bereits gespeicherten Dokument der übernommen werden soll. -
Wo genau führst du diese Formel aus ?
-
Postopen der Maske, in der das Feld Name gefüllt werden soll. Allerdings stimmt auch irgendwas mit der Formel nicht, ich bekomme immer den Fehler: "Kein Haupt- oder Auswahlausdruck in Formel"
-
Der code muss wie folgt lauten
Field tName:=@GetDocField(ID;p_name)
@setField("Name";"tName") -
Da liegt schon das Problem.
Mit der FIELD Formel änderst du Werte im Backend. Da dein Dokument aber nach dem Öffnen schon im Frontend angezeigt wird wird der Wert dort nicht geändert.
Entweder du arbeitest mit entsprechenden UI Befehlen oder du musst das Backenmd Doc nochmals mit dem Frontend Doc Synchronisieren -
Also heißt das wiederum ein Script für das Maskenereignis schreiben oder?
-
Ja, oder du trägst das mit UI Befehlen direkt in das Feld ein
-
Wie funktioniert das mit den UI Befehlen? Hab noch nie was davon gehört.
-
@Commands können dafür verwendet werden:
@Command([GotoField];Feldname);
@Command([EditInsertText];Text); -
Irgendwas stimmt an der Formel nicht. Ich habe dieses [GotoField] auch nicht in der Hilfe gefunden.
-
hei0t das nicht EditGotoField ?
-
ich habe die Formel geändert, nun kommt folgender Fehler
"@Befehle und andere UI Funktionen sind in diesem Kontext nicht erlaubt!" -
Das muss EditGotoField heissen, nicht nur GotoField.
Hab ich versehentlich unterschlagen -
Also ich hab das gerade mal ausprobiert.
Wenn ich folgende Formel im PostOpen habe dann wird das Feld problemlos mit dem Wert gefüllt:
@Command([EditGotoField];"fd_Test");
@Command([EditInsertText];"Hallo"); -
Ja, inzwischen hats auch geklappt ich hab es ins falsche Ereignis gelegh. Allerdings besteht immernoch das Problem, das ich den Wert eines Feldes aus einer anderen Maske nicht auslesen kann!
EditInsertText, ist lediglich ein Text aber kein Wert aus einem anderen Feld! -
Tja, dann mußte du das wert(chen) erst holen.
Wenn du den dokument ID hast, dann kannst du mittels DBLookup den wert holen, und in einen variabele speichern, und dann mit den bereits erwähnten möglichkeiten schreiben, in der UI..
Sonnst kannst du es mittels FIELD statement und viewrefreshfields ebenso versuchen.Mir ist aber immer noch nicht klar wann genau du das machen möchtest.. und ob es benutzer abhängig ist oder von einen andere vorgabe, ach je, vielleicht muß ich den thread doch nochmal von vorne lesen.
-
Dann beschreib doch mal wie das Dokument ausgewählt wird von dem du den Wert übernehmen willst