Hallo,
ich eigne mir gerade die Basics von LotusScript an und ein Beispiel in einem LotusScript-Buch, das schon etwas älter ist, will einfach nicht funktionieren:
Sub Click(Source As Button)
Dim ns As New NotesSession
Dim ws As New NotesUIWorkspace
Dim db As NotesDatabase
Set db = ns.CurrentDatabase
Dim doc As NotesDocument
Set doc = New NotesDocument(db)
doc.form = "FormOne"
doc.FieldOne = "Created by View ActionScript"
doc.SaveTrue, True
Messagebox "New doc created, shouldn't be visible"
ws.ViewRefresh
Messagebox "New doc should now be visible"
End Sub
Sowohl bei die Methode "form" als auch "FieldOne" wurden bei mir beim Abtippen nicht automatisch angezeigt.
Beim Ausführen der Anwendung bekomme ich die Fehlermeldung "Illegal Use of Property".
Was genau mache ich falsch?!
Danke, im Voraus!
Liebe Grüße
Giordano
1) "Form" und "FieldOne" sind keine Methoden, sondern Attribute bzw. Felder in der Notes-Diktion
2) "Save" wäre eine Methode ("SaveTrue" allerdings nicht), die man dann aber auch entsprechend aufrufen muss
Call doc.Save( True, True )
Die von Dir verwendete Syntax
wirft natürlich einen Fehler, steht so aber auch sicher nicht in dem Buch.
Trotzdem kann ich nirgends erkennen, was bei meiner Anwendung eingeblendet werden soll nach dem ich das NotesUIWorkspace refreshe!
Meinst Du jetzt das Doc oder die Messagebox ?
Nein, das neu erstelle Dokument meine ich.
Ich habe es mal mit der längeren Methode versucht. Da passiert auch nichts.
Sub Click(Source As Button)
Dim ns As New NotesSession
Dim ws As New NotesUIWorkspace
Dim db As NotesDatabase
Set db = ns.CurrentDatabase
Dim doc As NotesDocument
Set doc = New NotesDocument(db)
'doc.form = "FormOne"
'doc.FieldOne = "Created by View ActionScript"
Dim item As NotesItem
Set item = doc.ReplaceItemValue _
( "FormOne", "Created by View ActionScript" )
item.IsSummary = True
doc.Save True, True
Messagebox "New doc created, shouldn't be visible"
ws.ViewRefresh
Messagebox "New doc should now be visible"
End Sub
Liebe Grüße
Giordano
Was du da programmiert hat ist eine Aktion die von einer Ansicht aus aufgerufen werden soll.
So erste Frage. Hast du den Code auch in eine Aktion verpackt?
Ja, ich habe das in einem Button gepackt, wobei der Code nach dem Klick auf den Button ausgeführt wird.
Zweite Frage. Rufst du das auch von der Ansicht aus auf?
Ja, ich klicke auf NotesPreview und ich komme dann in Lotus Notes 7 rein.
Dann drücke ich den Button und das einzige was passiert ist, dass die Messageboxen auftauchen, aber ich sehe kein neu erstelltes Dokument!
Hier der neue Code.
Sub Click(Source As Button)
Dim ns As New NotesSession
Dim ws As New NotesUIWorkspace
Dim db As NotesDatabase
Set db = ns.CurrentDatabase
Dim doc As NotesDocument
Set doc = New NotesDocument(db)
'doc.form = "FormOne"
'doc.FieldOne = "Created by View ActionScript"
Dim item As NotesItem
'Set item = doc.ReplaceItemValue _
'( "FormOne", "Created by View ActionScript" )
Call doc.ReplaceItemValue("Form","FormOne")
Call doc.ReplaceItemValue("FieldOne","Created by View ActionScript")
Set item = doc.GetFirstItem("Form")
item.IsSummary = True
Set item = doc.GetFirstItem("FieldOne")
item.IsSummary = True
doc.Save True, True
Messagebox "New doc created, shouldn't be visible"
ws.ViewRefresh
Messagebox "New doc should now be visible"
End Sub
Auch hier wird kein neues Dokument, wie von mir erwartet, erstellt.
Liebe Grüße
Giordano
Also Leutz. Ich denke, ich bin ein Schritt weiter (siehe Screenshot). Die Felder "form" und "FieldOne" habe ich nun angelegt, aber leider öffnet sich immernoch kein neues Dokument, der in den Feldern irgendetwas hineinschreibt.
Hier der aktuelle Code:
Sub Click(Source As Button)
Dim ns As New NotesSession
Dim ws As New NotesUIWorkspace
Dim db As NotesDatabase
Set db = ns.CurrentDatabase
Dim doc As NotesDocument
Set doc = New NotesDocument(db)
doc.form = "FormOne" 'sets the form field for the new document
doc.fieldOne = "Created by View Action Script"
Call doc.Save(True, True)
Messagebox "New doc created, shouldn't be visible"
ws.ViewRefresh
Messagebox "New doc should now be visible"
End Sub
Nach dem die Messageboxen aufgerufen werden, tut sich äußerlich nichts. Alles ist genauso, wie nach dem ich das Programm frisch compiliert habe (aus der Sicht eines Endanwenders).
Weiß jemand weiter?
Liebe Grüße
Giordano
PS: Das Screenshot wurde im Entwicklungsmodus geschossen, so dass ihr die Namen der Felder erkennen könnt.