Das Notes Forum
Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: W126 am 13.06.12 - 20:25:23
-
Moin, Moin,
wie so oft habe ich das Problem das ich nicht weiß wie ich es Notes sagen soll ;)
Ich möchte eine eMail-Adresse in ein anderes Textfeld kopieren.
Call uidoc2.GotoField( "hauptemail" )
Call uidoc2.SelectAll
Call uidoc2.Copy
Das Funktioniert mit jedem Inhalt, nur mit der Mail-Adresse bekomme ich diesen Fehler:
... wurde in keinem Adressbuch oder Domino-Verzeichnis gefunden. Wählen Sie 'Ok'.... (Anhang)
Der Fehler tritt nach der zweiten Zeile „SelectAll“ auf. Könnt ihr mir einen Lösungsweg zeigen?
Gruß Jörg
-
N'abend,
warum kopierst Du nicht via Backend ?
Die Meldung wird daher kommen, dass die Namensprüfung für das Feld aktiviert ist.
CU,
Axel
-
Irgendwas ist da faul. Am Code eh: Nimm das Feld2. Markiere den Inhalt. Bis jetzt ist gar nix passiert. Gar nix. Aber dann kommt es: Kopiere den Inhalt der Zwischenablage. Und was bitte ist in diesem Moment im Clipboard und wird da in das arme Feld2 geworfen? Woher kommt da eine UNID bzw. der Inhalt eines ganzen Dokuments?
Abgesehen vom logisch fehlerhaften Code: Bist Du etwas im ReadMode und hast gerade das ganze Dokument kopiert??
Bernhard
-
Danke für die schnelle Hilfe,
Während der Eingabe kopiere ich einige Daten aus anderen Dokumenten zusammen. Das funktioniert mit acht Felder bist dieser Fehler auftaucht. Nach dem ich den Fehler bestätigt habe, ist auch das Feld korrekt übernommen.
Dieser Code funzt wie gesagt mit acht anderen Felder…
Call uidoc2.GotoField( "KundenWaehrung" )
Call uidoc2.SelectAll
Call uidoc2.Copy
Call uidoc.GotoField( "formular_waehrung")
Call uidoc.Paste
Eine Namensprüfung ist ist nicht aktiv?!?
Jörg
-
Hallo Jörg,
sorry: Ich hatte zu schnell gelesen und neben dem Fussballspiel (ohne Fernseher derzeit, nur Liveticker, aber mehr als egal): Du machst ein Copy und kein Paste - das passt also.
Und eine Namensprüfung kann auch nicht stattfinden - Du machst da ja nix.
Mit der Fehlerzeile bist Du Dir sicher?
Dass der Client schreit, dass er in einem Namensfeld (?) eine UniversalID nicht kennt, kommt Dir aber nicht "spanisch" vor? Das müsste doch eigentlich ein Ansatz sein. Der Client denkt sich die an der Stelle ja nicht aus.
Kannst Du uns noch weitere Infos oder mehr vom Code zur verfügung stellen?
Bernhard
-
Ja, ich war auch mehr mit dem Spiel beschäftigt ;D
Der Fehler kommt auch auf einem anderen Client.
Ich kopiere die Daten, sobald das Feld verlassen wird. >Sub Exiting(Source As Field)<
Dim s As NotesSession
Dim ws As NotesUIWorkspace
Dim db As NotesDatabase
Dim doc As NotesDocument
Dim doc2 As NotesDocument
Dim uidoc As NotesUIDocument
Dim uidoc2 As NotesUIDocument
Set s = New NotesSession
Set ws = New NotesUIWorkspace
Set db = s.CurrentDatabase
Set uidoc = ws.CurrentDocument
Set doc = uidoc.Document
Set doc2 = db.GetDocumentByUNID (doc.kunde(0))
Set uidoc2 = ws.EditDocument(True, doc2)
Call uidoc2.GotoField( "KundenWaehrung" )
Call uidoc2.SelectAll
Call uidoc2.Copy
Call uidoc.GotoField( "formular_waehrung")
Call uidoc.Paste
.
.
.
.
Call uidoc2.GotoField( "hauptemail" )
Call uidoc2.SelectAll
Call uidoc2.Copy
Call uidoc.GotoField( "email")
Call uidoc.Paste
Call uidoc.Refresh
Call uidoc2.Refresh
Was gibt es sonst noch für Daten? Eine einfache Maske...
Jörg
-
???
Wo mein Fehler liegt? Keine Ahnung!
Ich habe alle Felder in eine neue Maske kopiert und schon gibt es keine Fehlermeldung mehr. Ich muss irgendwo noch ein LS oder eine Option gesetzt haben die mir dieses Problem auslöst...
Danke!!!
-
Axel fragte schon in #1, warum Du nicht über das Backend gehst. Das möchte ich nochmal aufgreifen.
Set s = New NotesSession
Set ws = New NotesUIWorkspace
Set db = s.CurrentDatabase
Set uidoc = ws.CurrentDocument
Set doc = uidoc.Document
Set doc2 = db.GetDocumentByUNID (doc.kunde(0))
doc.formular_waehrung = doc2.KundenWaehrung
doc.email = doc2.hauptemail
Da brauchst Du das Kundendokument nicht zu öffnen, auf dem Schirm springt nichts hin und her, das Script ist kürzer, der Benutzer braucht kein Bearbeitungsrecht auf dem Kundendokument, Du zerstörst dem Benutzer nicht unnötig den Inhalt seiner Zwischenablage usw..
Was ich auch nicht verstehe, ist, warum Du am Ende das Kundendokument refreshst. Du hast dort nichts verändert, nur gelesen, aber das würde eh wegfallen, wenn Du es über das Backend machst.
EDIT: Noch ein ganz wichtiger Punkt gegen Deine Vorgehensweise: Wenn zwei Benutzer die Aktion mit dem gleichen Kunden gleichzeitig durchführen und Dokument-Locking aktiviert ist, kann der zweite Benutzer das Kundendokument nicht in den Bearbeitenmodus bringen. Dann kracht es auf jeden Fall.
-
Moin, Moin,
der refresh ist überflüssig!
Wenn ihr mich so fragt, habe ich keine Antwort. Klar, im Backend wäre es einfacher. Ich werde das ganze nochmal komplett umstellen.
Danke!!!