现有 IBM Lotus DominoNotes 邮件模板简介 - 图文 联系客服

发布时间 : 星期日 文章现有 IBM Lotus DominoNotes 邮件模板简介 - 图文更新完毕开始阅读7141e16748d7c1c708a14523

图 8. “状态”列设置

创建后台运行的代理

前面讲述了自定义操作的代理,同时我们也可以使用后台运行的代理来完成一些不需要终端用户触发的操作,如定期的发送统计邮件。

表 4. 日程处理周期 选项 说明 每天多于一这项设置用来按时运行代理,一天若干次。单击“日程安排”按钮可以指定时间表。

每天一次 这项设置用来按时运行代理,一天一次。 每周一次 这项设置用来按时运行代理,一周一次。 每月一次 这项设置用来按时运行代理,一月一次。

如果希望保存代理但不希望在特殊情况(如通过另一个代理调用)以外的情况运

从不运行

行,可以使用这项设置。

这里我们创建一个每月后台运行一次的代理,以发送对当月来自不同客户邮件的统计信息,邮件信息如图 9 所示。

Sub Initialize Dim NewUIWorkspace As New NotesUIWorkspace Dim NewNoteSession As New NotesSession Dim CurrentDB As NotesDatabase Set CurrentDB = NewNoteSession.CurrentDatabase ‘创建新邮件 Dim MailDoc As NotesDocument Set MailDoc = New NotesDocument(Cu

rrentDB) MailDoc.form = \EffectiveUserName MailDoc.Subject = \月度统计\‘创建邮件体 Dim TableNotesRichTextItem As NotesRichTextItem Set TableNotesRichTextItem = MailDoc.CreateRichTextItem(\derStyle As NotesRichTextStyle Set columnHeaderStyle = NewNoteSession.CreateRichTextStyle( ) columnHeaderStyle.Bold = True columnHeaderStyle.FontSize =8 columnHeaderStyle.NotesFont = TableNotesRichTextItem.GetNotesFont(\ Dim i As Integer Dim columnStyles(0 To 4) As NotesRichTextParagraphStyle For i = 0 To 4 Set columnStyles(i) = NewNoteSession.CreateRichTextParagraphStyle columnStyles(i).LeftMargin = 0 columnStyles(i).FirstLineLeftMargin = 0 Next columnStyles(0).RightMargin =3 * RULER_ONE_CENTIMETER columnStyles(1).RightMargin = 8 * RULER_ONE_CENTIMETER columnStyles(2).RightMargin = 8 * RULER_ONE_CENTIMETER columnStyles(3).RightMargin = 3 * RULER_ONE_CENTIMETER columnStyles(4).RightMargin = 3 * RULER_ONE_CENTIMETER Dim headerColor As NotesColorObject Dim dataColor As NotesColorObject Set headerColor = NewNoteSession.CreateColorObject Call headerColor.SetRGB(239,239,239) Set dataColor = NewNoteSession.CreateColorObject Call dataColor.SetRGB(255,255,255) Call TableNotesRichTextItem.AppendTable(1,5,,,columnStyles) ‘创建表格头 Dim TableNotesRichTextNavigator As NotesRichTextNavigator Set TableNotesRichTextNavigator = TableNotesRichTextItem.CreateNavigator() TableNotesRichTextNavigator.FindLastElement RTELEM_TYPE_TABLE Dim TableNotesRichTextTable As NotesRichTextTable Set TableNotesRichTextTable = TableNotesRichTextNavigator.GetElement TableNotesRichTextTable.Style = TABLESTYLE_TOP TableNotesRichTextTable.SetColor headerColor TableNotesRichTextTable.SetAlternateColor dataColor TableNotesRichTextItem.AppendStyle columnHeaderStyle TableNotesRichTextNavigator.FindNextElement RTELEM_TYPE_TABLECELL TableNotesRichTextItem.BeginInsert TableNotesRichTextNavigator TableNotesRichTextItem.AppendText \客户类型\TextItem.EndInsert TableNotesRichTextNavigator.FindNextElement TableNotesRichTextItem.BeginInsert TableNotesRichTextNavigator TableNotesRichTextItem.AppendText \发件人\Insert TableNotesRichTextNavigator.FindNextElement TableNotesRichTextItem.BeginInsert TableNotesRichTextNavigator TableNotesRichTextItem.AppendText \主题\eNotesRichTextNavigator.FindNextElement TableNotesRichTextItem.BeginInsert TableNotesRichTextNavigator TableNotesRichTextItem.AppendText \日期\Navigator.FindNextElement TableNotesRichTextItem.BeginInsert TableNotesRichTextNavigator TableNotesRichTextItem.AppendText \邮件链接\‘查找“合同邮件”视图

Dim ContractNotesView As NotesView Set ContractNotesView = CurrentDB.GetView(\合同邮件\esViewNavigator Set ContractNotesViewNavigator = ContractNotesView.CreateViewNav Dim ContractNotesViewEntry As NotesViewEntry Set ContractNotesViewEntry = ContractNotesViewNavigator.GetFirstDocument Dim dataStyle As NotesRichTextStyle Set dataStyle = NewNoteSession.CreateRichTextStyle() dataStyle.Bold = False dataStyle.FontSize = 10 TableNotesRichTextNavigator.FindNextElement TableNotesRichTextItem.BeginInsert TableNotesRichTextNavigator Call TableNotesRichTextItem.AppendStyle(dataStyle) TableNotesRichTextItem.EndInsert '计算上个月 Dim lastMonth As New NotesDateTime( \tMonth( -1 ) While Not ContractNotesViewEntry Is Nothing Dim dateTime As NotesDateTime Dim item As NotesItem Set dateTime = ContractNotesViewEntry.Document .GetItemValueDateTimeArray(\me.GMTTime>lastMonth.GMTTime) Then ‘增加一行 Call TableNotesRichTextTable.AddRow(1) TableNotesRichTextNavigator.FindNextElement TableNotesRichTextItem.BeginInsert TableNotesRichTextNavigator Dim MailType As String Dim MailTypeText As String MailType = ContractNotesViewEntry.Document.GetItemValue(\_ViewIcon\lTypeText = \普通客户\ MailTypeText = \重要客户\6\客户\ End If TableNotesRichTextItem.AppendText MailTypeText TableNotesRichTextItem.EndInsert TableNotesRichTextNavigator.FindNextElement TableNotesRichTextItem.BeginInsert TableNotesRichTextNavigator TableNotesRichTextItem.AppendText ContractNotesViewEntry.Document_ em.BeginInsert TableNotesRichTextNavigator TableNotesRichTextItem.AppendText ContractNotesViewEntry.Document_ .GetItemValue(\Item.EndInsert TableNotesRichTextNavigator.FindNextElement TableNotesRichTextItem.BeginInsert TableNotesRichTextNavigator TableNotesRichTextItem.AppendText ContractNotesViewEntry.Document_ .GetItemValue(\ ‘添加文档链接 TableNotesRichTextNavigator.FindNextElement TableNotesRichTextItem.BeginInsert TableNotesRichTextNavigator Call TableNotesRichTextItem.AppendDocLink ( ContractNotesViewEntry.Document,_ ContractNotesViewEntry.Document.GetItemValue(\

sRichTextItem.EndInsert End If Set ContractNotesViewEntry = ContractNotesViewNavigator_ .GetNextDocument(ContractNotesViewEntry) Wend Call MailDoc.Send(False) End Sub

图 9. 月度统计邮件

添加用户定义的图标

前面我们讲到了对 _ViewIcon 字段进行赋值,相应图标所对应的数字编号可以由下表查到。

图 10. 系统图标对照表

如果发现所提供的系统图标不能满足当前的需求,你可以增加用户自定义图标到邮件模板中。这样,当使用如下代码时就可以使用自定义图标来标识邮件:

? Set itemA = doc.ReplaceItemValue( \con\ ?

需要注意的是尽量不要在图标名称中使用下划线,在一些系统中会引起这样的图标不可见。 调试代理以提高问题修复的效率

在使用代理所提供丰富功能的同时,需要使用最有效的工具来调试代理以提高问题修复的效率。可以使用的工具包括:

? ? ? ? 代理日志。可以查看代理日志以获得关于代理的关键信息,例如代理启动的最后时间和日期、有多少文档经过了处理、代码运行的类型 ( 如 LotusScript) 以及代理完成的最后时间和日期等。要想查看代理的代理日志,请在 Lotus Domino “日志”。?Designer 中选定代理并从菜单中依次选择“代理” LotusScript 调试程序。使用 LotusScript 调试程序调试用 LotusScript 编写的代理,它允许跟踪代理过程及代理范围内的变量值和对象。要想使用 Lotus 调试?Script 调试程序,请从菜单中依次选定文件工具 LotusScript,并运行代理。 服务器控制台调试。Domino Server 控制台提供了 3 种命令,Tell Amgr Schedule 、Tell Amgr Status 和 Tell Amgr Debug,他们可以显示预定在当天运行所有代理的时间安排表、Agent Manager 代理队列状态和代理调试设置状态的信息。 NotesLog 类。 NotesLog 类是方便且动能强大的工具类、用来跟踪过程,并报告发生在使用 LotusScript 编写的代理和后台工作的 Java 代理中的活动信息。可以在代理运行时打印调试信息。如果使用 LotusScript 或 Java 代理,就可以在 Notes Log 数据库或文件中记录日志信息。

小结

本文讲述了对 IBM Lotus Domino/Notes 中的邮件模板进行二次开发的相关经验。这里的案例只是基于一些简单的需求,通过这些案例,我们希望能够达到举一反三、抛砖引玉的目的。在实际环境中,用户可能有特定的需求,可以针对实际情况对邮件模板进行定制,从而来实践和优化这些经验。

参考资料