Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: OCS am 23.10.03 - 09:22:23
-
hi leute,
wer mein letztes problem kennt, weiss warum die frage!
gibt es beim uidoc auch die möglichkeit, dieses als antwortdokument zu erstellen wie unten mit einem notesdokument?
Syntax beim NotesDocument:
-----------------------------------------------------
Set aktivdoc = New notesdocument (db)
Call aktivdoc.MakeResponse( cpdoc )
aktivdoc.Form = "aktion"
-----------------------------------------------------
Gruß Björn
-
Set notesUIDocument = notesUIWorkspace.ComposeDocument( [ server$ [, file$ [, form$ [, windowWidth# [, windowHeight# [, returnNotesUIDocument]]]]]] )
Set Activedoc=notesUIDoc.Document
Call aktivdoc.MakeResponse( cpdoc )
aktivdoc.Form = "aktion"
-
Set notesUIDocument = notesUIWorkspace.ComposeDocument( [ server$ [, file$ [, form$ [, windowWidth# [, windowHeight# [, returnNotesUIDocument]]]]]] )
Set Activedoc=notesUIDoc.Document
Call aktivdoc.MakeResponse( cpdoc )
aktivdoc.Form = "aktion"
danke, aber bis hierhin kam ich auch schon, die funktion "MakeResponse"
gibts bei uidoc nicht!
-
Dann studier den Code nochmal.
Set activedoc=NotesUIDoc.Document
das ist vom Typ NotesDocument, Zugriff auf das Backend-Dokument durch das UIDocument
-
Sicherheitshalber nach dem MakeResponse ein NotesDocument.Save und ein NotesUIDocument.Reload - nicht, daß später das UIDoc das Backend-Doc überschreibt und $Ref von uns geht ...
Bernhard
-
hört sich ja gut an, aber bei "Call aktivdoc.MakeResponse( cpdoc )" bleib ich mit object variable not set hängen, obwol ich das ja in der zeile vorher mit "Set activdoc=aktivuidoc.Document" mache!
-
Gibt es das cpdoc? Möglicherweise ist das nicht gesetzt. Weiss nicht genau, ob für ein MakeResponse uU auch schon vorher ein Save erforderlich ist (sollte zwar nicht, habe so ähnliches aber auch schon erlebt)
-
Und was spricht der Debugger ?
-
Hi,
in dem Code wird einmal Activedoc und einmal Aktivdoc verwendet, für eine von beiden Namen sollte man sich dann entscheiden ;)
-
Hast Du Option Declare gesetzt ?
-
Ok, das hab dann wohl ich verursacht, indem ich einen Codeverschnitt gemacht habe.
Das wäre aber sofort rausgekommen, wenn OCS
Option Declare
verwendenn würde. Bei mir bei Strafe verboten, das Ding nicht zu verwenden.
-
wie Du unten siehst, ist cpdoc ein dokument aus einer collection die ich vorher erstelle... das call aktivdoc.save (true, true) bringt auch nix!
Sub Initialize
'Variablen zum Schlüssel auslesen
Dim session As New NotesSession
Dim db As NotesDatabase
Dim workspace As New NotesUIWorkspace
Dim uidoc As notesuidocument
Dim aktivuidoc As notesuidocument
Dim cpdoc As NotesDocument
Dim uiview As NotesUIView
Dim aktivdocid As String
Dim kunde As String
'Aktivdb
Dim aktivdoc As notesdocument
'Variablen zu auslesen der Items im ausgewählten Checkpunkt
'Variablen in die die Items dann in umgewandelter Form geschrieben werden
Dim aunr As String
Dim posi As String
'Variablen um auf FridaAktiv zuzugreifen
Dim db_fri As notesdatabase
Dim view_fri As notesview
Dim collect_Fri As notesdocumentcollection
Dim doc_fri As NotesDocument
Dim temp As Variant
Dim adoc As Variant
Set db = session.CurrentDatabase
Set uiview = workspace.Currentview
Set collection = db.UnprocessedDocuments
Set cpdoc = collection.GetFirstDocument()
Call uiview.SelectDocument(cpdoc) ' Soll das aktuell ausgewählte Dokument in den Zugriff nehmen
Set aktivuidoc = workspace.ComposeDocument("OCS02/OCS GmbH","aktiv\fridaakt.nsf","aktion")
Set activdoc=aktivuidoc.Document 'Nach dieser Zeile springt er raus!
Call aktivdoc.save(True, True)
Call aktivdoc.MakeResponse( cpdoc )
aktivdoc.Form = "aktion"
End Sub
-
ähm bin noch nicht so sehr lang dabei, was meint ihr mit Option Declare ? ???
das mit dem activedoc ist mir aufgefallen, hab ich raus genommen!
achso, der debugger zeigt mir nach dem rausspringen an, das aktivdoc leer ist!
-
Option Declare erzwingt, daß alle Variablen und Objekte vor Verwendung deklariert werden müssen.
Bernhard
-
Hi,
also es ist sichergestellt, daß Du jetzt immer aktivdok benutzt ?
In deinem letzten Code war genau in der Zeile, wo der Debugger aussteigt immer noch activdoc, also mit c statt mit k.
Das würde auch erklären, warum aktivdoc leer ist, es wird ja nirgendwo gesetzt.
-
ok, nach option declar (danke Bernhard !!) bekomme ich immernoch den gleichen fehler an der gleichen stelle! :-[
-
SelectDocument kannst Du gleich mal entfernen, das wird gleich in der nächsten Zeile durch ComposeDocument überschrieben (es gibt nur ein einziges aktives UIDocument)
Dass da kein Backend-Dokument erzeugt wird, scheint merkwürdig. Wie steht das mit den Zugriffsrechten?
Was passiert, wenn Du aktivuidoc.save aufrufst?
Was steht denn in aktivuidoc.document drin, sobald er aussteigt?
-
Wenn Du form$ in den Maskeneigenschaften als Antwort einstellst, kannst Du Dir das ganze Backendgeraffel sparen, wenn Du das Ding mit
ws.ComposeDocument
aufrufst und das ganze aus dem Dokument antriggerst, zu dem Du die Antwort erstellen willst.
Andreas
-
das mit save war das problem, jetzt gehts!!! danke euch!!!! ;D
-
Hmm, gut geht es jetzt ..... ich hab doch schon recht früh was gebabbelt von speichern, aber dass es das frontend sein müssste .... war mir auch nicht klar.