Wiedervorlage für ToDo realisieren?

  • Hallo


    Ich habe eine Datenbank mit verschieden Dokumeten und möchte nun, dass über einen Butto oben in der Aktionsleiste dem User bestimmte Inhalte des Dokument direkt in ein ToDo-Dokument kopiert werden und er dies bearbeiten kann.


    Das Programm sieht so aus:
    Function openMail (param() As String)
    Set workspace = New NotesUIWorkspace
    Set session = New NotesSession

    'Infos über Maildatenbank holen, dann Datenbank initialisieren
    infoMailDatabase = Evaluate( "@MailDbName" )
    Set mailDB = session.GetDatabase( infoMailDatabase(0), infoMailDatabase(1))

    'Maildokument erstellen, Maske: Task
    Set mailDoc = mailDB.CreateDocument
    mailDoc.Form = "Task"

    'Errechnen der Namen für den Titel der Task
    size% = Ubound(param)

    For counter%=0 To size% Step 1
    nextAdress$ = param(counter%)
    mailAdress$ = mailAdress$ + nextAdress$
    If counter%<size% And nextAdress$ <> "" Then
    mailAdress$ = mailAdress$ + ", "
    End If
    Next

    'Msgbox "Ergebnis: " + mailAdress$

    'Emailadresse(n) als Adressat einstellen
    Set item = mailDoc.ReplaceItemValue( "Subject", "" )
    Call item.AppendToTextList( mailAdress$)

    'Vorbereitetes Mail-Dokument im Bearbeitungsmodus öffnen
    Call workspace.EditDocument( True, mailDoc )
    'Cursor auf SubjectZeile setzen
    Set newUIDoc = workspace.CurrentDocument
    Call newUIDoc.GotoField("Subject")
    End Function


    Es macht dies auch, aber es kommt dann immer der Fehler, dass eine Aktion nicht ausgeführt werden kann.


    Wenn ich mit dem gleichen Programm stat der Maske "Task" die Maske "Memo" aufrufe geht alles wunderbar.
    Daher denke ich, dass ich der "TasK" Maske noch weitere Paramter übergeben muss.


    Kann mir einer sagen worauf ich da noch achten muss?

  • Erstell dir doch einfach mal manuell ein Task Dokument und vergleich dann was in den Feldern drin steht.
    Die musst du dann halt auch noch entsprechend setzen, solange sie nicht berechnet sind.
    Ausserdem würde ich vor dem Öffnen des Dokumentes schon mal ein ComputeWithForm ausführen

  • Ok, habe das ganze vereinfacht und das Compute eingebaut.



    Das Problem, er spuckt true aus ......


    Achja der genaue Fehler in der Fehlerox:
    "Angegebener Befehl kann nicht ausgeführt werden"


    Noch eine Idee :-?


    Edit:


    so nach der Anleitung mal ne Funktion Test zusammengebaut:
    http://www-12.lotus.com/ldd/do…6c54004cdb31?OpenDocument



    Function Test
    Dim session As New NotesSession
    Dim doc As NotesDocument
    Dim success As Variant
    Set db = session.CurrentDatabase
    infoMailDatabase = Evaluate( "@MailDbName" )
    Set mailDB = session.GetDatabase( infoMailDatabase(0), infoMailDatabase(1))
    Set doc = New NotesDocument( mailDB )
    doc.Form = "Task"
    doc.Topic = "Large bodies of water"
    success = doc.ComputeWithForm( False, False )
    Msgbox "Und der Testlauf ist:"+success

    End Function

  • schon mal


    Set notesUIDocument = notesUIWorkspace.EditDocument( [editMode] , [notesDocument] , [notesDocumentReadOnly] , [documentAnchor$] , [returnNotesUIDocument] , [newInstance] )


    probiert?


    (anstall call und dann set uidoc ...)

    bunt ist das dasein und granatenstark. volle kanne hoshi's!


    IBM Certified Advanced System Administrator (R5, D6, D7)
    IBM Certified Advanced Application Developer (R5, D6, D7, D8)

  • So habe mal durch die MailDB gewühlt und dort starten ein neues ToDo mittels Lotus Formel.
    So wie ich das sehe ruft, dass sogar nur eine Adresse auf.
    Da wird gar kein Wert übergeben, ich verstehe nicht wieso mein kleines Script dann nicht will.


    Irgenwer noch eine Idee?


    Ansonste kann mir einer sagen wie ich den Befehl abändern muss, damit der auch in einer anderen DB läuft?
    Bin in LotusFormel nicht bewandert :( .


    @If(@ClientType = "Notes"; @Command([Compose];"Task") : @Return(0);"");
    path := @ReplaceSubstring(@ReplaceSubstring(@Subset(@DbName;-1);"\\";"/");" ";"+");
    @URLOpen("/" + path + "/Task?OpenForm")




    So ein bissel lesen in der Hilfe DB und schon geht es:


    @If(@ClientType = "Notes"; @Command([Compose];@MailDbName;"Task") : @Return(0);"");
    path := @ReplaceSubstring(@ReplaceSubstring(@Subset(@DbName;-1);"\\";"/");" ";"+");
    @URLOpen("/" + path + "/Task?OpenForm")



    Aber mir wäre das doch mit LotusScript lieber, da kann ich gleich Überschriften ins subject eintragen etc..., aber die können auch Paste und Copy nehmen, werde mich jetzt nicht nach dem Fehler totsuchen.
    Nur wenn das einer schonmal gelöst hat bitte, eine PM an mich.


    Schöne Woche noch.

  • Oh gut, wie gesagt FormelSprache ist nicht meine Stärke, das sollte ich vieleicht ändern.



    @If(@ClientType = "Notes"; @Command([Compose];@MailDbName;"Task") : @Return(0);"");
    @Command([EditGotoField]; "Subject");
    @Command([EditInsertText]; "Test");
    path := @ReplaceSubstring(@ReplaceSubstring(@Subset(@DbName;-1);"\\";"/");" ";"+");
    @URLOpen("/" + path + "/Task?OpenForm")



    So, meinst du das sicher oder?


    Habe das eben getestet und geht nicht, aber proiere weiter *g*.