Das Notes Forum
Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: pippo am 28.12.04 - 17:33:31
-
Hallo,
möchte von einem Dokument (einer bestimmten DB...) aus einen Kalendereintrag machen;
d.h. möchte die Maske Kalendereintrag mit Typ Termin öffnen und bestimmte Felder für den User ausfüllen.
Es funktioniert alles 8), ausser das Beginn- und Endedatum ???.
Wer kann mir da bitte einen Tipp geben?
Wünche Euch einen schönen Abned,
Pippo
****************************************
@Environment("CSDocType";"0");
a_1:=BEZEICHNUNG;
a_3:=Termin;
@Command([EditMakeDocLink]);
@Command([Compose]; @MailDbName; "Appointment");
@Command([EditGotoField]; "body");
@Command([EditInsertText]; "Für weitere Details klicken Sie bitte auf den Link: ");
@Command([EditPaste]);
@Command([EditGotoField]; "subject");
@Command([EditInsertText]; "abc...: " + a_1 );
@Command([EditGotoField]; "StartDate");
@Command([EditSelectAll]);
@Command([EditClear]);
@Command([EditInsertText]; a_3);
-
StartDate muss ein Datums-/Zeitwert sein. Ein EditInsertText kann da nicht funktionieren - Du musst hier mit @SetField arbeiten.
Hilfreich ist auch immer, auf "funktioniert nicht" als Aussage komplett zu verzichten - das ist nämlich absolut nichtssagend. Sag' an, was genau passiert und warum es nicht Deinem gewünschten Resultat entspricht.
Bernhard
-
Halt - stopp !
Gerade gesehen - folgendes sollte auch funktionieren:
Das
@Command([EditInsertText]; a_3);
ersetzen durch
@Command([EditInsertText]; @Text (a_3));
Dann geht's auch so.
HTH,
Bernhard
-
Hallo,
kopier Dir doch einfach den Code in eine Schaltfläche...
es funktioniert nicht...
Grüße, Pippo
-
Okay, dann mache ich es auch so kurz wie Du, pippo:
Hab' den Code in eine Schaltfläche kopiert und dann auch gesehen: Es funktioniert nicht.
Bernhard
-
Hallo,
danke für Deine Hilfe.
Habe es jetzt mit Script gemacht.
Grüße, Pippo
-
deshalb stehe ich auf Script ;D ;D ;D
*damned* muss jetzt endlich schippen... :P
Jürgen
-
Pippo,
irgendwie fühle ich mich jetzt veralbert ... Warum hast Du nicht gleich die eigentlichen Probleme gepostet ? Warum wurde nicht gleich gesagt, dass auch LS in Frage kommt ? Warum musste ich das ganze Szenario nachstellen - das eigentliche Problem hast Du doch sicher eher erkannt als ich, der sich erst wieder erinnern musste (weil ich sowas prinzipiell nicht mehr mit @-Stunts versuche) ?
Pippo, es wäre jetzt nur fair, den angezettelten Thread mit Deiner Lösung zu beenden. Du kannst es mit LS, ich kann es (sowieso), andere stehen jetzt aber evtl. auf dem Schlauch (obwohl es es doch kaum mehr Zeilen sind mit LS als der wegen der Felder in Layout-Regions vergebliche Versuch mit @Commands und vor allem die hier unmögliche Mischung von @Functions und @Commands).
Bernhard >:(
-
Jürgen, geh mal einen Schritt nach rechts ... ich brauche Script, aber Du stehst gerade darauf ......... 8)
-
Hallo Bernhard,
hier meine Lösung.
Ich schätze Deine Antworten sehr, auch wenn manche Kommentare von Dir etwas gewöhnungsbedürftig sind.
Wünsche Euch allen einen schönen Tag,
Pippo
*************************
Function CreateAppointment( ) As Variant
REM Diese Funktion erstellt einen Kalendereintrag mit einer Verknüpfung zum aktiven Dokument; dabei werden bestimme Felder für den User vorbelegt; interne Felder vom Kalendereintrag müssen nicht verändert werden :-))
Dim ws As New NotesUIWorkspace
Dim s As New NotesSession
Dim db As NotesDatabase
Dim uidoc As NotesUIDocument
Dim doc As NotesDocument
Dim item As NotesItem
Dim rtitem As NotesRichTextItem
Dim tmpdoc As NotesDocument
Dim uidocT As NotesUIDocument
Dim docT As NotesDocument
Set db = s.CurrentDatabase
REM Typ Kalendereintrag, "0" für Termin
Call s.SetEnvironmentVar( "CSDocType", "0" )
If Not Check_BMW ("" ) Then
CreateAppointment=False
Exit Function
End If
REM Aktives Dokumente
Set uidoc = ws.CurrentDocument
Set doc = uidoc.Document
REM Maildatei
Dim dbM As New NotesDatabase( "", "" )
Call dbM.OpenMail
REM Temp Dokument mit Body wird erstellt
REM Das muß gemacht werden weil man sonst den Link nicht in den Termin bekommt
REM diese Dokument muß nicht verspeichert werden
Set tmpdoc = New NotesDocument( dbM )
tmpdoc.Form = "Memo"
Set rtitem = New NotesRichTextItem ( tmpdoc, "Body" )
Call rtitem.AppendText ( "Für weitere Details klicken Sie bitte auf den Link: " )
Call rtitem.AppendDocLink( doc, db.Title )
Set item = tmpdoc.GetFirstItem( "Body" )
REM Termin wird erstellt
Set docT = New NotesDocument( dbM )
docT.Form = "Appointment"
REM Bodyfeld wird von temp Doc in Termin kopiert
Call item.CopyItemToDocument( docT, "Body" )
REM Termin wir für User geöffnet
Set uidocT = ws.EditDocument (True,docT)
REM Daten werden geschrieben
Call uidocT.FieldSetText( "subject", "abc..." )
Call uidocT.FieldSetText( "Startdate", "abc..." )
REM Call uidocT.FieldSetText( "Starttime", "abc..." )
CreateAppointment=True
End Function
-
Sorry Jens,
komm grade erst vom Schippen zurück...
Gehe jetzt @Formeln, du kannst scripten ;)
Jürgen
-
;D ... machen wir so ....