28. 在Lotus Notes中利用公式使配置数据更灵活
公式语言虽然与LotusScript相比有很多限制,不适合用来写复杂的逻辑,但是简单的语法和丰富的函数使其可以作为一种表达式语言,用于诸如计算字段选项和列值的地方。LotusScript里的Evaluate函数本意是用公式增强脚本,补足它尚没有的功能。这一特色用在文档的域值上,却可以使配置数据大大灵活。比如在流程配置里设置用户,就可以使用公式{@If(Office="ABC"; "Test2/ABC/ABC"; "Test1/ABC/ABC")};在设置流程走向时,也可以用诸如TotalPrice>500的公式决定下一节点;在配置邮件模板时,更可以使用文本混合公式,灵活设定邮件内容。为了实现在配置数据里文本混合公式,我们需要定义特定的字符,比如大括号{},将公式包含其中,然后在读取时解析并和周围文本连接。于是,有了以下LotusScript函数:
Public Function EvalCondition(macro As String, document As NotesDocument) As Boolean'Evaluate the item value into a boolean value. Return False if an error occurs during the evaluation.On Error Resume NextDim v As Variantv=Evaluate(macro,document)EvalCondition=CBool(v(0))End Function函数接受的参数与Evaluate函数相同,分别为公式和计算时提供必要信息的文档。