Das Notes Forum

Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: TY am 08.04.13 - 11:15:56

Titel: Werte eines Kombinationsfeldes in ein anderes Feld übernehmen
Beitrag von: TY am 08.04.13 - 11:15:56
Hallo,

ich habe ein Problem bei der Werteübernahme aus einem Kombinationsfeld in ein anderes Textfeld. Die beiden Felder sind in einer Teilmaske. Im Kombinationsfeld lasse ich mir Werte aus einer View anzeigen. Das funktioniert auch. Jetzt möchte ich je nach Auswahl die Werte in ein weiteres Textfeld innerhalb der Teilmaske übernehmen. Dazu habe ich im Kombinationsfeld "KSTZusatz" in den Eigenschaften beim Reiter "Steuerung" -> "Formel für Auswahl verwenden" folgenden Code:

_KST := @GetField("Kostenstelle");
_Bezug1 := @GetField("Bezug1");
FIELD KSTZusatz:=KSTZusatz;       -> wird vermutlich nicht mehr benötigt
FIELD VersandText:=VersandText; -> wird vermutlich nicht mehr benötigt

_liste := @DbLookup("":"NoCache"; "":""; "vwKSTZusatz"; _KST; "Kostenstelle");
_Zusatz := @DbLookup("":"NoCache"; "":""; "vwKSTZusatz"; _KST; 2);
_RaumNr := @DbLookup("":"NoCache"; "":""; "vwKSTZusatz"; _KST; 3);

@SetField("KSTZusatz"; _RaumNr);  -> Das funktioniert

@SetField("VersandText"; _Zusatz); -> funktioniert nicht

Das Feld VersandText wird nicht aktualisiert und je nachdem welches @SetField ich zuerst setze wird nur das Kombinationsfeld KSTZusatz mit entsprechenden Werten gefüllt.
Kann man überhaupt ein anderes Feld aus den Eigenschaften heraus füllen?

Danke schonmal und
Gruß Jürgen


Titel: Re: Werte eines Kombinationsfeldes in ein anderes Feld übernehmen
Beitrag von: ascabg am 08.04.13 - 11:37:27
Hallo,

Schon mal nachgesehen, was die einzelnen LookUps zurueckliefern?


Andreas
Titel: Re: Werte eines Kombinationsfeldes in ein anderes Feld übernehmen
Beitrag von: dnotes am 08.04.13 - 12:00:15
Natürlich wird nur das Kombinationsfeld KSTZusatz mit entsprechenden Werten gefüllt und die zuletzt eingegebene Formel überschreibt alle anderen Formeln bei Dir.
Die Formel ist ja auch dafür gedacht die auswählbaren Werte in dem Feld zu berechnen.
Und nur dafür.

*Da muss man erst mal drauf kommen, an dieser Stelle so eine Formel einzugeben.
Da ist es dann auch ziemlich egal was die @DBLookups zurück geben.
Titel: Re: Werte eines Kombinationsfeldes in ein anderes Feld übernehmen
Beitrag von: TY am 08.04.13 - 12:21:40
@Andreas: Die LookUps geben die Werte so zurück, wie sie in der Ansicht stehen.

@dnotes: Mh, wie kann ich anders die Werte aus dem Feld KSTZusatz in das Feld VersandText übernehmen?
Titel: Re: Werte eines Kombinationsfeldes in ein anderes Feld übernehmen
Beitrag von: dnotes am 08.04.13 - 12:30:52
Indem Du im Feld  VersandText die Formel - Achtung -  KSTZusatz eingibst.
*Ich vermute mal, das Feld VersandText ist berechnet?
Ha, ein Dreher war drin
Titel: Re: Werte eines Kombinationsfeldes in ein anderes Feld übernehmen
Beitrag von: ascabg am 08.04.13 - 12:34:53
OK.

Koenne wir das Ganz nochmal von vorne aufloesen.

KSTZusatz ist ein Kombinationsfeld. Die waehlbaren Werte, werden wie 'eingelesen'?
Das Feld "VersandText" ist was fuer ein Feld? (Textfeld, Kombinationsfeld)

Welche Werte sollen in diesses Feld VersandText und wann uebernommen werden?


Andreas
Titel: Re: Werte eines Kombinationsfeldes in ein anderes Feld übernehmen
Beitrag von: TY am 08.04.13 - 13:15:38
Das Feld KSTZusatz ist ein Kombinationsfeld, Bearbeitbar. Hier lese ich über @DBLookup Werte aus einer Spalte einer Ansicht ein.
Das Feld VersandText ist ein Textfeld. Hier soll je nach Auswahl im Kombinationsfeld der entsprechende Text aus dem Kombinationsfeld rein. Das Feld VersandText habe ich auf Berechnet eingestellt.
Sobald sich die Auswahl in "KSTZusatz" ändert, soll sich auch der Text im Feld "VersandText" ändern.
Titel: Re: Werte eines Kombinationsfeldes in ein anderes Feld übernehmen
Beitrag von: dnotes am 08.04.13 - 13:18:24
Dann musst Du noch bei KSTZusatz einstellen "Refresh Fields on keyword change" oder wie das in Deutsch heisst.
Titel: Re: Werte eines Kombinationsfeldes in ein anderes Feld übernehmen
Beitrag von: ascabg am 08.04.13 - 13:37:31
Dann sei mir die folgende Frage gestattet.

Was wolltest Du dann mit der Formel, die Du zuerst geposted hast?

Mit der von dnotes beschriebenen Einstellung im Feld "KSTZusatz" und der Formel

@If(@Trim(KSTZusatz) != ""; KSTZusatz; "")

im berechneten Feld VersandText, solltest
Du doch das Ergebnis erhalten, welche Du willst. Im Feld VersandText wird der aktuell gewaehlte Wert aus dem
Feld KSTZusatz angezeigt.


Andreas
Titel: Re: Werte eines Kombinationsfeldes in ein anderes Feld übernehmen
Beitrag von: TY am 08.04.13 - 13:56:14
In dem Feld "VersandText" habe ich die Eigenschaften "Berechnet", "Berechnet zur Anzeige" und "Berechnet beim Anlegen" getestet. Aber es ändert sich nichts. "Refresh Fields on keyword change" würde ich gerne verwenden, aber wo stelle ich das ein?? Ich hatte auch die Formel aus KSTZusatz in VersandText eingegeben (mit der Wertzuweisung @SetField nach VersandText). Dann zeigt er mir in dem Feld den kompletten Inhalt des Kombinationsfeldes an und nicht nur den aktuell ausgewählten.
Und wenn ich einfach nur als Wert KSTZusatz eingebe oder @If(@Trim(KSTZusatz) != ""; KSTZusatz; ""), wird nichts mehr angezeigt. Mehr kann ich nicht eingeben, da es ein berechnetes Feld ist.
Die Werte in dem Kombinationsfeld kann ich beliebig auswählen, es ändert aber nicht den Wert im Feld "VersandText"  :(
Titel: Re: Werte eines Kombinationsfeldes in ein anderes Feld übernehmen
Beitrag von: ascabg am 08.04.13 - 14:12:42
Na in den Eigenschaften des Feldes KSTZusatz.
(siehe Screenshot)


Andreas
Titel: Re: Werte eines Kombinationsfeldes in ein anderes Feld übernehmen
Beitrag von: TY am 08.04.13 - 14:27:43
Ja super. War etwas blind ..... Auf jeden Fall funktioniert es jetzt. Allerdings wird beim ersten Aufruf im Feld "VersandText" noch nichts angezeigt, obwohl in KSTZusatz schon ein Wert steht. Gibt es da auch noch eine Einstellung?
Titel: Re: Werte eines Kombinationsfeldes in ein anderes Feld übernehmen
Beitrag von: TY am 08.04.13 - 14:55:35
Die letzte Anforderung ist erst mal nicht ganz so wichtig.
Danke Euch für die Unterstützung

Gruß Jürgen
Titel: Re: Werte eines Kombinationsfeldes in ein anderes Feld übernehmen
Beitrag von: ascabg am 08.04.13 - 15:15:20
Wo kommt denn der Wert her, der beim Erstellen eines neuen Dokumentes im Feld "KSTZusatz" bereits angezeigt wird?


Andreas
Titel: Re: Werte eines Kombinationsfeldes in ein anderes Feld übernehmen
Beitrag von: TY am 08.04.13 - 16:02:44
Das Ganze ist eine Teilmaske, die als DialogBox aufgerufen wird sobald ein bestimmter Button gedrückt wird. In der Teilmaske ist ein Wert schon vorbelegt (Kostenstelle). Zu diesem Wert kann es mehrere Zusatzwerte geben, die in einer Ansicht aufgeführt sind. Mit Wert von "Kostenstelle" geht "KSTZusatz" über @DBLookup in die Ansicht und holt sich die dazugehörigen Zusatzwerte in das Kombinationsfeld. Noch zur Info: In der Ansicht ist die Spalte "Kostenstelle" kategorisiert.
Titel: Re: Werte eines Kombinationsfeldes in ein anderes Feld übernehmen
Beitrag von: Peter Klett am 08.04.13 - 16:34:01
In welcher Reihenfolge stehen die Felder? Notes rechnet, wie man liest, von links nach rechts und von oben nach unten.
Titel: Re: Werte eines Kombinationsfeldes in ein anderes Feld übernehmen
Beitrag von: TY am 08.04.13 - 16:48:58
Die Felder stehen in der Reihenfolge: Kostenstelle -> kategorisiert und aufsteigend sortiert, KSTZusatz -> aufsteigend sortiert.
Beim Aufruf der DialogBox steht im Kombinationsfeld KSTZusatz bereits der richtige Wert. Aber erst beim erneuten Auswählen wird das Feld "VersandText" gefüllt. Es wäre schön, wenn schon direkt beim Aufruf der DialogBox "VersandText" mit dem Wert aus "KSTZusatz" gefüllt würde.
Titel: Re: Werte eines Kombinationsfeldes in ein anderes Feld übernehmen
Beitrag von: Peter Klett am 08.04.13 - 16:57:21
Ich meinte nicht die Reihenfolge in der Ansicht, sondern in der Teilmaske. Ich vermute, das KSTZusatz unterhalb von VersandText steht und daher gerechnet wird, bevor KSTZusatz befüllt wird.

Wenn Du die Reihenfolge in der Teilmaske nicht ändern kannst / willst, aktualisiere das Dokument im PostOpen (in Formelsprache sowas wie @Command ([ViewRefreshFields]), in Script NotesUIDocument.Refresh)
Titel: Re: Werte eines Kombinationsfeldes in ein anderes Feld übernehmen
Beitrag von: TY am 08.04.13 - 17:13:45
Ach so, danke  :) Nee, das Feld "VersandText" steht ganz unten in der Teilmaske. Werde aber die Formel im PostOpen testen.
Titel: Re: Werte eines Kombinationsfeldes in ein anderes Feld übernehmen
Beitrag von: TY am 08.04.13 - 17:23:08
Ah, wenn ich in PostOpen folgendes eingebe:

@SetField("VersandText"; @GetField("KSTZusatz"));
@Command([ViewRefreshFields])

Dann funktioniert es.

Vielen Dank nochmal :)