Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: Katja_S am 13.07.05 - 11:50:01

Titel: Input-Felder mit Informationen aus anderem Dokument füllen
Beitrag von: Katja_S am 13.07.05 - 11:50:01
Hallo zusammen,

ich hab folgendes Szenario: Innerhalb meiner Web-DB kann der User auf den Link "neuer Antrag" klicken. Daraufhin öffnet sich ein Formular, was entsprechend ausgefüllt werden soll (soll erst gespeichert werden, wenn der User auf einen Button klickt). Einige Felder dieses Formulars sollen automatisch ausgefüllt werden. Diese Informationen liegen in einem anderen Dokument der gleichen DB.

Wie kann ich es schaffen, diese Informationen aus dem anderen Dokument zu holen und in das Formular zu speichern?

Ich habe mir überlegt, einen Agenten zu schreiben, der mit dann die DocUNID zurück und ich dadurch  mit @GetDocField auf die Werte zugreifen kann. Ich weiß aber nicht, wann und wie ich diesen Agenten starten soll. Habt ihr eine Idee?
Titel: Re: Input-Felder mit Informationen aus anderem Dokument füllen
Beitrag von: macchina am 13.07.05 - 12:28:28
Hallo!

Ich würde das mittels Form-Event "WebQueryOpen" machen. In diesem Event kannst Du einen Agent angeben, der Dir die gewünschten Felder befüllt.

LG Ernstl
Titel: Re: Input-Felder mit Informationen aus anderem Dokument füllen
Beitrag von: Katja_S am 13.07.05 - 13:38:50
Daran hab ich auch gedacht, nur kann ich mit dem WebQueryOpen nix printen...

rein theoretisch müsste ich den value mittels Formelsprache setzten, aber da müsste ich mit der Formelsprache erstmal auf das andere Dokument kommen...

irgendwie komm ich heut nicht auf den richtigen weg...:-(
Titel: Re: Input-Felder mit Informationen aus anderem Dokument füllen
Beitrag von: umi am 13.07.05 - 13:42:52
Du brauchst Ja nichts zu printen...
Im Webqueryopen kannst Du auf den DocumentContext der Notessession zugreifen. Dies entspricht dem Dokument, bevor es an den Browser geschickt wird. D.h. Du hast das Notesdokument zur Verfügung und kannst es normal abfüllen.

gruss
umi
Titel: Re: Input-Felder mit Informationen aus anderem Dokument füllen
Beitrag von: Katja_S am 13.07.05 - 13:46:50
Aber ich kann greif ja mit dem documentContext lediglich auf die cgi-variablen zu, oder?

könnte ich da die cgi-variable request_content manipulieren? weil in der befinden sich ja alle Feldnamen und deren Werte...das wäre natürlich dann ideal.
Titel: Re: Input-Felder mit Informationen aus anderem Dokument füllen
Beitrag von: umi am 13.07.05 - 14:05:21
Nein, Du greifst beim DocumentContext auf das Dokument zu. Du kannst normal via
document.Feldname=Wert
Die Feldwerte setzen.

gruss
umi
Titel: Re: Input-Felder mit Informationen aus anderem Dokument füllen
Beitrag von: Katja_S am 13.07.05 - 14:16:25
Das hab ich grad mal ausprobiert. Aber er schreibt den Wert nicht in das Feld.

Code
Sub Initialize
	Dim session As New NotesSession
	Dim doc As NotesDocument
	
	Set doc = session.DocumentContext
	
	doc.reqVacPersNo = "174"	
End Sub

Und der Agent wird im WebQueryOpen-Ereignis aufgerufen. Kann es vielleicht sein, dass es daran liegt, weil ich Teilmasken mit einbinde und das Feld "reqVacPersNo" in einer Teilmaske enthalten ist? Oder woran könnte das liegen?

Gruß Katja
Titel: Re: Input-Felder mit Informationen aus anderem Dokument füllen
Beitrag von: umi am 13.07.05 - 14:25:19
Komisch,  habs gerade überprüft. Und bei mir scheint sogar mit Subforms zu funktionieren.
Wird der Agent auch ausgeführt?

gruss
umi
Titel: Re: Input-Felder mit Informationen aus anderem Dokument füllen
Beitrag von: Katja_S am 13.07.05 - 14:28:52
woran sehe ich denn, ob der Agent aufgerufen wird?

WebQueryOpen:
    @Command([ToolsRunMacro]; "(openTestProfile)")

Irgendwie hat das mit dem DocumentContext noch nie bei mir geklappt. Ich versteh es nicht...

Titel: Re: Input-Felder mit Informationen aus anderem Dokument füllen
Beitrag von: macchina am 13.07.05 - 14:32:21
Hallo!

Wo ich immer mit den WebQuery-Agents reintappe, ist die Ziel-Eigenschaft des Agents "alle ausgewählten Dokumente". Vergesse regelmäßig auf "Keines" umzustellen.
Weiß jetzt leider nicht, wie das im englischsprachigen Designer heißt.

LG Ernstl
Titel: Re: Input-Felder mit Informationen aus anderem Dokument füllen
Beitrag von: Katja_S am 13.07.05 - 14:33:59
Der Agent ist bei mir auf "Keines" eingestellt. Sollte also nicht daran liegen.
Titel: Re: Input-Felder mit Informationen aus anderem Dokument füllen
Beitrag von: umi am 13.07.05 - 14:36:05
Im Log.nsf ist auch nichts auffaelliges zu finden?
Titel: Re: Input-Felder mit Informationen aus anderem Dokument füllen
Beitrag von: Katja_S am 13.07.05 - 15:13:32
Das war ein guter Vorschlag....

Agent 'openTestProfile' error: Illegal use of PROPERTY

Habt ihr eine Idee?

Gruß
katja
Titel: Re: Input-Felder mit Informationen aus anderem Dokument füllen
Beitrag von: macchina am 13.07.05 - 15:21:59
Hallo!

Du hast nicht zufällig folgendes im Agent:

doc.reqVacPersNo(0) = "174"

   anstatt

doc.reqVacPersNo = "174"


Sowas z.B. generiert diesen Error.

LG Ernstl
 
Titel: Re: Input-Felder mit Informationen aus anderem Dokument füllen
Beitrag von: Katja_S am 13.07.05 - 15:27:32
hab beide Varianten ausgetestet und bei beiden kommt der Fehler....ich verzweifle langsam... :-:
Titel: Re: Input-Felder mit Informationen aus anderem Dokument füllen
Beitrag von: Glombi am 13.07.05 - 15:28:45
Poste doch mal den kompletten Code, nur damit wir sicher gehen.

Bitte nicht die Version mit doc.reqVacPersNo(0) = "174"


Andreas
Titel: Re: Input-Felder mit Informationen aus anderem Dokument füllen
Beitrag von: Katja_S am 13.07.05 - 15:54:15
Agent "openTestProfile"

Code
Sub Initialize
	Dim session As New NotesSession
	Dim doc As NotesDocument
	
	Set doc = session.DocumentContext
	
	doc.reqVacPersNo = "174"		
End Sub

In der Maske "HolidayRequest" wird im QueryOpen-Ereignis mein Agent aufgerufen:
Code
@Command([ToolsRunMacro]; "(openTestProfile)")

Die Maske "HolidayRequest" besteht aus mehreren Teilmasken, unter anderem der Teilmaske "webRequestEdit". Innerhalb dieser Teilmaske befindet sich das Feld "reqVacPersNo".

Mehr Code ist es nicht...

Gruß Katja
Titel: Re: Input-Felder mit Informationen aus anderem Dokument füllen
Beitrag von: Katja_S am 13.07.05 - 16:10:32
Also der Fehler erscheint zwar nicht mehr im log.nsf, aber trotzdem wird der Feldwert nicht geschrieben...
Titel: Re: Input-Felder mit Informationen aus anderem Dokument füllen
Beitrag von: macchina am 13.07.05 - 16:15:05
Zitat
In der Maske "HolidayRequest" wird im QueryOpen-Ereignis mein Agent aufgerufen:

Ich nehme an Du meintest WebQueryOpen ?

Titel: Re: Input-Felder mit Informationen aus anderem Dokument füllen
Beitrag von: Katja_S am 13.07.05 - 16:31:59
ups...ja, webQueryOpen...die hitze..*grins*
Titel: Re: Input-Felder mit Informationen aus anderem Dokument füllen
Beitrag von: Glombi am 13.07.05 - 17:31:53
Ich habe es probiert (den Code per Copy-Paste in den Web Agenten eingefügt). Es funktioniert tadellos !

Andreas
Titel: Re: Input-Felder mit Informationen aus anderem Dokument füllen
Beitrag von: Katja_S am 14.07.05 - 08:40:03
Guten Morgen zusammen,

nach dem es bei zwei Leuten funktioniert hat, muss es ja auch irgendwie bei mir gehen. Hab jetzt noch mal meine Maske angeschaut. Und dort lag mein Fehler...echt...zu doof...Hab nämlich dort als value einen Berechneten Text, der mir dann den value genau dann überschreibt, wenn die action="new" ist. Das war immer der Fall, also wurde der Wert, den der webQueryOpen-Agent geschrieben hat, immer wieder durch einen leeren String ersetzt...Zu doof aber auch..

Vielen Dank für eure Unterstützung!!

Gruß Katja