惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

U
Unit 42
Google DeepMind News
Google DeepMind News
Stack Overflow Blog
Stack Overflow Blog
H
Help Net Security
MongoDB | Blog
MongoDB | Blog
I
InfoQ
N
Netflix TechBlog - Medium
T
Tailwind CSS Blog
量子位
博客园 - 叶小钗
月光博客
月光博客
IT之家
IT之家
G
Google Developers Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
小众软件
小众软件
S
SegmentFault 最新的问题
Engineering at Meta
Engineering at Meta
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
aimingoo的专栏
aimingoo的专栏
云风的 BLOG
云风的 BLOG
Vercel News
Vercel News
爱范儿
爱范儿
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
宝玉的分享
宝玉的分享

博客园 - helloxuxu

简介DOMINO内置域和CGI变量 Domino系统中B/S下附件链接的处理方法 如何在Domino中使用文本文件注册用户 IBM Lotus Notes/Domino技术知识文档汇总 (2008) NOTES.INI 設定 给Domino系统管理员的十二项建议 用代码设置Excel单元格的格式 - helloxuxu - 博客园 给Domino系统管理员的十二项建议 Javascript中没有自带的将字符转换成日期型的函数 ABAP 函数 WebSphere Application Server v6中的问题诊断以及日志策略 如何在Web上執行不同欄位類型的欄位驗證? Lotus Notes常见问题答疑 谈谈Visual Basic应用程序的几种打印方法 DB1访问DB2 在VB6中导出EXCEL,FOXPRO,PRODOX格式的表 查询 SAP ABAP程序优化方法(搜集自论坛) 用 LotusScript 实现 Excel 报表的自动生成和操作
如何将A文档的附件拷贝的B文档中
helloxuxu · 2007-05-16 · via 博客园 - helloxuxu

请教,如何将A文档的附件拷贝的B文档中?

具体需求如下:

A文档是一个已经存在的文档,另外一个表单中用到上传控件,想在提交的时候本省不保存,而直接把上传的附件保存到A文档中。

注:这样做的目的是为了多人可同时上传,并且避免复制冲突。本人已知的方法是 得到 NotesEmbeddedObject 对象后 使用 ExtractFile 将附件放到服务器物理路径上,之后用NotesRichTextItem对象的EmbedObjec方法将服务器物理路径上的附件在加到Rtf域中。但次方法不好,是否用办法可以直接复制附件,请高手指教!万分感谢!

自己找到答案了,好像没有别的办法,只有先拆分到服务器再加入rtf域。好麻烦

Sub Initialize
   Dim s As New notesSession
    Dim doc As notesDocument
   Set doc = s.documentContext
   Call WebMoveAttachment(Doc, "<Your Rich Text Field Name>")
End Sub
 
函数如下:
 
Function WebMoveAttachment(doc As notesDocument, Byval moveToFieldName As String)
   ' This function moves a file attached via the Web with the File Upload Control to a rich text field.
   Dim s As New notesSession
   Dim tempDir As String
   Dim v2FileNames As Variant
   Dim i As Integer
   Dim attachedFile As notesEmbeddedObject
   Dim filePath As String
    Dim rtItem As notesRichTextItem
   
   tempDir = s.getEnvironmentString("Directory", True)
   ' Put a trailing slash at the end of the directory if it is needed
   If Instr(tempDir, "/") <> 0 And Right(tempDir, 1) <> "/" Then tempDir = tempDir & "/"
   If Instr(tempDir, "\") <> 0 And Right(tempDir, 1) <> "\" Then tempDir = tempDir & "\"
   ' Get the names of all the attachments (1 or more)
   v2FileNames = Evaluate("@AttachmentNames", doc)
   For i = Lbound(v2FileNames) To Ubound(v2FileNames)
      If v2FileNames(i) <> "" Then   ' Make sure it's a valid file name
         Set attachedFile = doc.getAttachment(v2FileNames(i))
         filePath = tempDir & v2FileNames(i)
         ' Save the file on the server
         Call attachedFile.extractFile(filePath)
         ' Create the rich text item and re-attach the file
         If doc.hasItem(moveToFieldName) Then
            Set rtItem = doc.getFirstItem(moveToFieldName)
            ' Add a couple of lines to the rich text field before re-attaching the file
             Call rtItem.addNewLine(2)
         Else
            Set rtItem = New notesRichTextItem(doc, moveToFieldName)
         End If
         Call rtItem.embedObject(1454, "", filePath)
         ' Delete the file(s) from the server file system
         Kill filePath
       End If
   Next   ' Move on to the next file name
End Function

运行本函数需要充许执行无限制的代理