Domino Designer中文件夹间文档拖拽功能实现求助
Domino文件夹间文档拖拽实现方法
以下是几个你可能遗漏的关键配置点,照着检查调整:
大纲项配置要到位
大纲里的目标文件夹项,得把文档链接类型设为文件夹,而且要关联到目标文件夹的别名(别用显示名称,别名才是Domino识别的关键)。另外,大纲项的打开方式选在当前框架集打开,不然拖拽时系统识别不出这是可接收的文件夹容器。文件夹和视图的拖拽权限要开
不管是收件箱(Mail In类型)还是目标文件夹,打开设计后去高级标签页,勾选允许拖拽操作。同时还要确认文件夹对应的视图里,文档列表控件的启用拖拽属性已经打开(在控件的属性面板里找)。另外别忘检查目标文件夹的访问权限,确保当前用户能往里面加文档。添加拖拽事件的基础代码
如果是自定义视图,得在视图的QueryDragDrop事件里加段代码,让Domino识别拖拽的文档:
Sub Querydragdrop(Source As Notesuiview, X As Long, Y As Long, _ Draginfo As Variant, Allowed As Integer, Cancellation As Integer) ' 允许文档拖拽操作 Allowed = True End Sub
然后在目标文件夹的视图QueryDrop事件里,处理文档添加逻辑:
Sub Querydrop(Source As Notesuiview, X As Long, Y As Long, _ Draginfo As Variant, Effect As Integer, Cancellation As Integer) Dim session As New NotesSession Dim db As NotesDatabase Dim doc As NotesDocument Dim folderAlias As String Set db = session.CurrentDatabase ' 获取当前视图关联的文件夹别名 folderAlias = Source.View.Alias ForAll doc In Draginfo ' 将文档添加到目标文件夹,True表示保留原文件夹的副本 Call doc.PutInFolder(folderAlias, True) ' 如果需要从原文件夹移除,解开下面注释 ' Call doc.RemoveFromFolder("原收件箱的文件夹别名") End ForAll End Sub
框架集要符合标准结构
你的大纲和文件夹视图所在的框架集,得是标准Domino框架集类型(比如和Library模板的LibraryFrameSet结构一致),自定义框架集容易导致拖拽事件传不过去。另外框架集里的视图区域,要在框架属性的高级标签里勾选可接收拖拽内容。直接复用Library模板的设计元素
打开Domino自带的Library模板(dlibr.ntf),参考它的大纲和文件夹设计:- 查看大纲里每个文件夹项的属性,特别是
文档链接和事件标签的设置。 - 把模板里的拖拽处理脚本库(比如
DragDropScriptLib)复制到你的数据库,直接复用里面的逻辑,省得自己写。
- 查看大纲里每个文件夹项的属性,特别是
内容的提问来源于stack exchange,提问作者Mark Maden
相关产品推荐
相关产品推荐

