Domino 9 und frühere Versionen > ND6: Entwicklung

Lotus Script Anfängerproblem...

<< < (8/8)

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