Domino 9 und frühere Versionen > ND6: Entwicklung
Lotus Script Anfängerproblem...
Silent_Bob:
Ich wusste nicht, dass das jetzt ein extrem Problematischer Fall ist.
Ich versuch mich jetzt lieber Stück für Stück an kleineren Problemen. Überprüfen auf die Korrektheit eines eingegebenen Strings oder so...
dgerhardt:
--- Zitat von: Silent_Bob am 23.02.06 - 16:25:33 ---Stimmt. Ob man jetzt SaveOptions="1" setzt, oder
Call doc.RemoveItem( "SaveOptions" ).
geht beides, und kommt auch aufs selbe raus.
Allerdings hat die ganze Choose noch einen Schönheitsfehler: Es wird nur ein Anhang in dem Feld zugelassen, alle weiteren Anhänge, die man evtl. noch da einfügen möchte, werden in einem seperaten bereich unter der Maske abgelegt.... !?
--- Ende Zitat ---
Also der Schönheitsfehler liegt wohl darin, daß bei einem neuen Doc noch kein RT-Feld im Backend vorhanden ist. Es ist zwar in der Maske, aber dadurch, das diese ja noch nicht gespeichert wurde, gibt es das Objekt (Feld) noch nicht im Backend. Deshalb bekommst Du auch mit "GetFirstItem" die Fehlermeldung "Object variale not set". Mit der Eigenschaft doc.isnewnote kann man abfragen, ob es sich um ein neues Doc handelt.
If doc.isnewnote then
Set anhang = New NotesRichTextItem(doc, "anhang")
else
Set anhang = doc.GetFirstItem("anhang")
End If
und...
Der Befehl "Call doc.Removeitem("SaveOptions")" ist nur dann möglich/sinnvoll, wenn dieses Feld auch nicht in der Maske vorhanden ist.
Ansonsten wird jedesmal beim Ausführen des Scriptes ein neues Feld namens "anhang" erzeugt, welches dann unterhalb der Maske angezeigt wird.
Probiers mal aus...
p.s. Es stimmt: RT-Felder sind im Scriptbereich wirklich schwierig. Aber du solltest in Deinen Selbsversuchen ruhig mehr damit machen. Versuche doch mal eine Tabelle oder formatierten Text in ein RT-Feld zu bringen. Gerade für Mailversand durch Agenten (z.B. Reminderfunktionen) ist das sehr wichtig.
VIEL ERFOLG
Selin:
Hallo zusammen,
ich habe das Script mal auf meiner Anwendung ausprobiert.
Die Maske, in der ich das ausführe ist vom typ "Rückantwort"
Wenn ich dieses Script über eine Schaltfläche ausführe, speichert er mir das eigenständiges Dokument ab und nicht unter dem Hauptdokument.
Wenn ich die Maske speicher, ohne den Knopf zu klicken, macht er das ganz normal zuordnen.
Woran kann das liegen?
danke + Gruß
Selin
koehlerbv:
Welchen Code hast Du ausprobiert??
Wenn Du irgendwo das Dokument im Backend speicherst, ist das Verhalten normal: Die Eigenschaft "Antwort" oder "Rückantwort" ist eine reine Frontend-Eigenschaft einer Maske, und im Backend musst Du logischerweise selbst für diese Eigenschaft sorgen.
NotesDokument.MakeResponse ist Dein Freund.
Bernhard
Selin:
Hallo Bernhard,
dieses Script habe ich bei mir eingefügt:
Sub Click(Source As Button)
Dim workspace As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim doc As NotesDocument
Dim Anhang As NotesRichTextItem
Dim datei As Variant
Set uidoc = workspace.CurrentDocument
Set doc = uidoc.Document
Set Anhang = New NotesRichTextItem(doc, "Anhang")
datei = workspace.OpenFileDialog( True, "Vorlagen", "*.dot", "C:\hallo.dot" )
If Isempty(datei) Then Exit Sub
Call uidoc.GotoField("Anhang")
If anhang.type = 1 Then
Call Anhang.EmbedObject( EMBED_Attachment, "", datei(0))
Call Anhang.Update
doc.SaveOptions = "0"
Call UiDoc.Close(True)
Dim NewUiDoc As NotesUIDocument
Set NewUiDoc = workspace.EditDocument(True, doc)
Delete uidoc 'Referenz auf das alte Frontend-Dokument löschen
Set Doc = NewUiDoc.Document
doc.SaveOptions = "1"
End If
End Sub
werde mir mal die Methode MakeResponse anschauen...
danke
Navigation
[0] Themen-Index
[*] Vorherige Sete
Zur normalen Ansicht wechseln