以前用lotus domino为客户写的办公自动化程序,出了问题
发现用lotus的@contains函数存在问题,当要判断的字符串太大时,就会报错.
这是以前的写法:
NotesMacro$="@contains("""+sendto+""";"","")"
Dim flag As Variant
flag=Evaluate(NotesMacro$) '当sendto很大时,这句话会报错误,导致执行不下去
'当发送多个用户时,先将文本串转换成文本列表,在赋值
If flag(0) Then
NotesMacro$ = "@Explode("""+sendto+""";"","")"
mailDoc.sendto =Evaluate(NotesMacro$)
Else
mailDoc.sendto=sendto
End If
这是修改后的写法:
先写一个分割字符串的函数:
Function ParseString(StringToParse As String,Delim As String) As Variant
' Returns an array containing the results of parsing
' a string based on the specified delimiter.
' If StringToParse or Delim is empty returns Null
' If Len(Delim) >= Len(StringToParse returns Null
' If StringToParse does not contain the delimiter, returns
' the entire string.
Dim a() As String
Dim s As String
Dim DelimPos As Integer
Dim count As Integer
If Len(StringToParse) = 0 Or Len(Delim) = 0 Then
ParseString = Null
Exit Function
End If
If Len(Delim) >= Len(StringToParse) Then
ParseString = Null
Exit Function
End If
DelimPos = Instr(1, StringToParse, Delim)
If DelimPos = 0 Then
Redim a(0)
a(0) = StringToParse
ParseString = a
Exit Function
End If
s = StringToParse
count = 0
Do
Redim Preserve a(count)
a(count) = Left(s, DelimPos - 1)
s = Right(s, Len(s) - (DelimPos + Len(Delim) - 1))
count = count + 1
DelimPos = Instr(1, s, Delim)
If DelimPos = 0 Then
Redim Preserve a(count)
a(count) = s
s = ""
End If
Loop Until Len(s) = 0
ParseString = a
End Function
然后将上面的语句修改为:
mailDoc.sendto=ParseString(sendto,",")
问题解决!
分享到:
相关推荐
在Lotus Domino开发中,字符串处理是...在实际项目中,可能还会遇到其他字符串处理需求,例如分割字符串、查找子串、转换大小写等,因此,了解并掌握这些基础函数和自定义方法对于提升Lotus Domino开发能力至关重要。
总的来说,获取Lotus Domino BS开发中的在线用户,主要是通过`NotesSession`对象与服务器交互,执行特定的控制台命令,然后解析返回的字符串结果,从而获取并处理每个在线用户的详细信息。这个过程需要理解Lotus ...
- **数组字符串相关.doc**:可能涵盖了如何处理字符串数组,包括创建、连接和分割字符串数组。 - **数组中删除一个元素.txt**:展示如何在数组中模拟删除元素的过程,可能通过创建新的数组来实现。 - **判断是数组....
### Lotus中获取URL字符串参数的方法 在Web应用开发中,从URL链接中提取参数...通过上述两个自定义函数,开发者可以在Lotus Domino环境中灵活地处理URL中的查询字符串参数,从而实现对动态页面内容的有效控制和管理。
通过将响应字符串按`\n`分割,然后对每一行按`\t`分割,可以获取每个用户的详细信息。如果用户连接协议为"HTTP",则认为该用户在线,并将其用户名添加到HashSet中以去重。 `getOnlineUsers`方法处理了服务器响应的...
Lotus Domino BS开发是指在浏览器-服务器(Browser-Server)架构下进行的Lotus Domino应用程序开发。在这种模式下,用户通过Web浏览器访问基于Lotus Domino的应用,而服务器端处理业务逻辑和数据存储。本示例代码是...
在Lotus Domino BS(Browser-Server)开发环境中,开发人员可以创建Web应用程序,这些应用程序能够与Lotus Domino服务器进行交互,实现数据存储、用户协作等功能。本文将深入探讨如何在Lotus Domino BS开发中获取...
在Lotus Domino开发中,有时候我们需要通过AJAX技术与服务器进行交互,以实现动态更新前端页面的数据。在本例中,我们讨论的是如何在Lotus Domino后台使用Java编写代理来处理AJAX请求,并返回JSON格式的数据。 首先...
92. **@Split**: 分割字符串。例如,`@Split("text, to, split", ",")`。 93. **@Sqrt**: 平方根。例如,`@Sqrt(16)`。 94. **@Substitute**: 替换字符。例如,`@Substitute("text", "t", "T")`。 95. **@...
- 讲解了如何使用公式语言进行字符串的拼接、分割等操作。 **8.6 算术操作** - 介绍了一系列算术运算符及其使用方法。 **8.7 执行时间-日期计算** - 提供了时间与日期的计算方法,如日期相加减、获取当前日期等...
在Lotus Domino环境中,公式语言是一种非常强大的工具,用于执行各种计算和逻辑判断任务。它不仅支持基础的数学运算,还具备复杂的字符串处理功能,以及对文档属性进行操作的能力。本文将详细介绍一系列常用的Domino...
在Lotus Domino XPages开发中,`@DbColumn` 是一个非常重要的 LotusScript 函数,用于从数据库中检索列的数据。这个函数可以从视图或表单中提取指定列的值,返回的结果可以是字符串数组或者单个字符串。在JavaScript...