Das Notes Forum
Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: skywook am 19.07.07 - 08:03:02
-
Hallo,
folgendes Script habe ich im QuerySave hinterlegt. Das aktuelle Doc soll übergeben werden:
Sub Querysave(Source As Notesuidocument, Continue As Variant)
Dim doc As NotesDocument
Set doc = source.Document
Call Steuerung(doc)
....
hier die Bibliothek:
Sub Steuerung(doc As NotesDocument)
.....
aber beim Speichern der Maske erhalte ich immer die Fehlermeldung:
Missing argument for: Steuerung
Für einen Tipp wäre ich dankbar.
-
Vermutlich existiert das NotesDocument noch nicht, weil es noch nicht gespeichert wurde. doc ist also leer.
-
das ist ein Cache-Problem, Du musst die Maske schließen und neu öffnen, dann geht das.
Bubble
-
@Driri: Das doc existiert auf jeden Fall - vollkommen egal, ob es schon mal gespeichert wurde oder nicht.
Auch, wenn dem nicht so wäre, würde das der Sub nichts machen - die bekommt ja ein gültiges Objekt mit dem Wert Nothing - es würde also erst in de Sub knallen.
Mein Tipp geht genau in die Richtung, die "Blase" schon genannt hat.
Bernhard
-
Wie, moment ? Wenn ich ein uidoc habe, das noch nicht gespeichert wurde, habe ich trotzdem schon ein Background Document ?
Oder schmeiß ich da gerade was durcheinander mit den Richtext-Geschichten ?
-
Klar hast Du dann schon ein Backend-Dokument. Das muss ja nicht zwingend und überhaupt gespeichert werden!
Du meinst sicher wirklich die RT-Problematik - das steht Dir im Backend immer erst nach der Speicherung auf Platte zur Verfügung.
Bernhard
-
Hi
Soll das heissen Du glaubst es ist nicht möglich einen Anhang in ein neu erstelltes Dokument einzufügen ohne das Dokument zuvor zu speichern oder wie soll ich das verstehen?
Gruss
Remo
-
Nein. Ich meinte das Problem, daß ich in einem noch nicht gespeicherten Dokumente nicht an das Richtextitem rankomme, sondern dafür erstmal das Dokument speichern muß.
-
Hi Driri
Also ich habe mal folgendes auf Button gelegt und kann da auf das Item zugreifen. Geht es dabei um so etwas?
Sub Click(Source As Button)
Dim ws As NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim doc As NotesDocument
Dim item As NotesItem
Dim rtitem As NotesRichTextItem
Set ws=New NotesUIWorkspace
Set uidoc=ws.CurrentDocument
Set doc=uidoc.Document
uidoc.Refresh True,True
Set item=doc.GetFirstItem("fdBody")
If item.Type=1 Then
Set rtitem=item
Print item.Name
End If
End Sub
Gruss
Remo
-
Hi
Gerade nochmal gecheckt, unglaublich aber der speichert das echt. Naja, das kann man mit SaveOptions ja noch abgewöhnen. Lotus Notes, mit genug darum herum arbeit geht ja praktisch alles. ;D
Gruss
Remo
-
Ne, ich meinte dann schon auf das RTF bzw. auf Inhalte des RTF zugreifen, z.B. EmbeddedObjects.
-
Hi
Habe das Teil ja und kann das extrahieren. Seh da kein Problem.
Sub Click(Source As Button)
Dim ws As NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim doc As NotesDocument
Dim item As NotesItem
Dim rtitem As NotesRichTextItem
Set ws=New NotesUIWorkspace
Set uidoc=ws.CurrentDocument
Set doc=uidoc.Document
uidoc.Document.SaveOptions="0"
uidoc.Refresh True
Set item=doc.GetFirstItem("fdBody")
If item.Type=1 Then
Set rtitem=item
Forall eo In rtitem.EmbeddedObjects
eo.ExtractFile Environ("Temp") & "\" & eo.Name
Print Dir(Environ("Temp") & "\" & eo.Name)
End Forall
End If
End Sub
Gruss
Remo
-
Sorry, aber ich kann das nicht nachstellen. Wenn ich ein neues Dokument habe, in das RTF ein Attachment packe, etc. und dann ohne zu speichern über Script versuche, auf das RTF zuzugreifen, ist das Objekt leer.
Das NotesDocument bekomme ich (wieder was gelernt ;)), aber das RichTextItem eben nicht.
-
Hi
Also wenn mein Code bei Dir nicht funktioniert, dann kann es echt nur an der Notes Version liegen (verwende 7.02). Mit der Version von Dir kann ich leider nicht testen (haben wir nicht mehr).
Gruss
Remo
-
Moment, Korrektur : Wenn ich deinen Code verwende, funktioniert es.
Jetzt würde mich aber doch mal interessieren, warum ich mit folgendem Code nicht an das Item herankomme :
Dim ws As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim doc As NotesDocument
Dim rtitem As NotesRichTextItem
Set uidoc = ws.CurrentDocument
Set doc = uidoc.Document
Set rtitem = doc.GetFirstItem("Body")
Damit hatte ich das probiert und dann halt im Debugger geschaut, ob rtitem sauber gesetzt wird. Aber auf dem Weg bleibt es eben leer.
-
uidoc.Document.SaveOptions="0"
uidoc.Refresh True
-
AAAAAH ! Ich bin heute nicht auf der Höhe. Das Problem war ein ganz anderes. Änderungen an RTF sind im Frontend erst nach Speichern und Neuöffnen des Background-Dokuments sichtbar. Das war das Problem.
Peinlich, peinlich. Gut, daß ich gleich Feierabend mache (http://i44.photobucket.com/albums/f8/littleblue71/smilies/thblushing.gif)