都来看看这句 lotus script 有什么问题?

WhishtThinking 2003-12-18 11:59:18
在一个操作中:
dim strFs as string
strFs="aaaaa,bbbbb,ccccc"

strFs = Evaluate("@ReplaceSubstring(strFs;',';':')")

执行时,出现错误"type mismatch",类型不匹配.

@ReplaceSubstring(strFs;',';':') 本身执行没有问题.
请问是什么原因?
...全文
58 27 打赏 收藏 转发到动态 举报
写回复
用AI写文章
27 条回复
切换为时间正序
请发表友善的回复…
发表回复
thomasxdx 2003-12-19
  • 打赏
  • 举报
回复
Set doc=collection.GetFirstDocument()
While Not(doc Is Nothing)
Forall o in Doc.Fs_Bm
If o = "Admin/XX大学" Then
REM QueryResult是一个文件夹
Call doc.PutInFolder("QueryResult",True)
REM 处理结束
Exit Forall
End If
End Forall

Set doc=collection.GetNextDocument(doc)
Wend
gjd111686 2003-12-19
  • 打赏
  • 举报
回复
Sub Initialize
Dim session As New NotesSession
Dim db As NotesDatabase
Dim collection As NotesDocumentCollection
Dim doc As NotesDocument
Dim view As NotesView

Set db=session.CurrentDatabase
Set collection=db.AllDocuments
Set view=db.GetView("QueryResult")
REM 文件夹清空
Set doc=view.GetFirstDocument
While Not(doc Is Nothing)
Call doc.RemoveFromFolder("QueryResult")
Set doc=view.GetNextDocument(doc)
Wend
REM 文件夹完成

Set doc=collection.GetFirstDocument()
While Not(doc Is Nothing)
If Isarray(doc.GetItemValue("Fs_Bm"))=False Then
If doc.GetItemValue(0)="Admin/XX大学" Or doc.GetItemValue(0)="Admin/XX大学," Then
REM 处理
REM QueryResult是一个文件夹
Call doc.PutInFolder("QueryResult",True)
REM 处理结束
End If
End If
Set doc=collection.GetNextDocument(doc)
Wend
End Sub
WhishtThinking 2003-12-19
  • 打赏
  • 举报
回复
我域中的内容是自己通过代码写入的,格式就是"Admin/XX大学",这个没有问题,
关键是在列值中有这样的多值:

张三/XX大学,Admin/XX大学

所以比较麻烦.
ibm123 2003-12-19
  • 打赏
  • 举报
回复
实际上你的域中内容应该不是Admin/XX大学,而是CN=ADMIN/O=XX大学,所以查找不到。建议你在列公式中:@Name([Abbreviate];Fs_Bm),再使用下述语句即可。

Set dc = view.GetAllDocumentsByKey("Admin/XX大学",True)
rosemerry 2003-12-19
  • 打赏
  • 举报
回复
第一列必须排序,而且关键字必须是第一列。
WhishtThinking 2003-12-19
  • 打赏
  • 举报
回复
因为在视图的列值中可能包含:
Admin/XX大学
Admin/XX大学,李四/XX大学
张三/XX大学,Admin/XX大学

这都包含在视图的一个列 Fs_Bm 中. 在表单中也是在一个域 Fs_Bm中.
WhishtThinking 2003-12-19
  • 打赏
  • 举报
回复
这是我的代码:
------------------------------------------------
Dim session As New NotesSession
Dim db As NotesDatabase
Dim view As NotesView

Dim dc As NotesDocumentCollection
Set db = session.CurrentDatabase
Set view = db.GetView( "VieDeptSW" )

Set dc = view.GetAllDocumentsByKey("Admin/XX大学",True)
Call dc.PutAllInFolder("BMSW")
------------------------------------------------------
我没有理解您的意思:
"你可以遍历dc用doc.GetItemValue("")(0)="Admin/XX大学"来产生新的文档集"

能不能麻烦您做个代码例子,我会另外单独给分的.
gjd111686 2003-12-19
  • 打赏
  • 举报
回复
你可以遍历文档取值比较将符合条件的文档拷贝到文件夹然后显示
WhishtThinking 2003-12-19
  • 打赏
  • 举报
回复
语句如下:
Set dc = view.GetAllDocumentsByKey("Admin/XX大学",True)

在视图的列值中可能包含:
Admin/XX大学
Admin/XX大学,李四/XX大学
张三/XX大学,Admin/XX大学

我如何把所有包含"Admin/XX大学"的文档筛选出来?
我用参数false也不能实现, Dc.Count的值一直为0.


WhishtThinking 2003-12-19
  • 打赏
  • 举报
回复
除了在view selection中用简易式或者公式筛选视图内容外,

假如我现在可以通过session获得当前用户,能不能在 PostOpen 中用lotus script 实现视图的筛选,如何来做??

ibm123 2003-12-19
  • 打赏
  • 举报
回复
列公式为:@Explode(Fs_BM;",") 即可解决!
WhishtThinking 2003-12-19
  • 打赏
  • 举报
回复
“张三/XX大学,Admin/XX大学”

是我通过代码写入到一个普通文本域中的,这个域不是个多值域(如复选框),所以可能用分类排序方法不行。
WhishtThinking 2003-12-19
  • 打赏
  • 举报
回复
我把列分类、排序后,为什么多值数据没有自动分开为独立行?

张三/XX大学,Admin/XX大学

多值数据用逗号隔开不行吗?
ibm123 2003-12-19
  • 打赏
  • 举报
回复
将Fs_BM放在视图第一列,列属性为分类、排序。这样,你的多值数据自动分开为独立行。再使用下述代码即可:

Dim session As New NotesSession
Dim db As NotesDatabase
Dim view As NotesView

Dim dc As NotesDocumentCollection
Set db = session.CurrentDatabase
Set view = db.GetView( "VieDeptSW" )

Set dc = view.GetAllDocumentsByKey("Admin/XX大学",True)
gjd111686 2003-12-18
  • 打赏
  • 举报
回复
'可以用""来代替
thomasxdx 2003-12-18
  • 打赏
  • 举报
回复
strFs为String类型
而Evaluate()函数返回的是一个VARIANT类型。所以出错。

你上面的代码还有些问题。下面的就可以了:

Dim strFs As String
strFs="aaaaa,bbbbb,ccccc"
Result = Evaluate(|@ReplaceSubstring("|+strFs+|";",";":")|)
Msgbox Result(0)
thomasxdx 2003-12-18
  • 打赏
  • 举报
回复
同意楼上的观点!
@V3UserName只有在基于服务器的数据库的个人视图上使用,才有效果。
ibm123 2003-12-18
  • 打赏
  • 举报
回复
A、私有视图可以使用上述公式。

B、在表单中嵌入分类视图,按FS_BM分类。
WhishtThinking 2003-12-18
  • 打赏
  • 举报
回复
这是我在视图的view selection中的公式:
其中 FS_BM 是一个列:

SELECT @Contains( FS_BM ; @V3UserName )

以求筛选出与当前用户相关的所有文档,如果这样不行,那有什么办法实现?
davely 2003-12-18
  • 打赏
  • 举报
回复
共享视图中不能用@V3username @UserName
加载更多回复(7)

535

社区成员

发帖
与我相关
我的任务
社区描述
企业开发 Exchange Server
社区管理员
  • 消息协作社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧