我目前正在使用XPages为旧的Notes数据库开发一个小型Web前端。
在大多数文档中,存在多个RT字段中的DWG文件和PDF文件,用户应该可以通过Web前端下载这些文件。由于文件分布在10-12个RTfield之间,因此对每个字段进行filedownload-control似乎是一个不好的解决方案。因此,我尝试通过SSJS将多个字段合并为一个字段,并将其作为文件下载控件的数据源。
<xp:fileDownload
rows="30"
id="fileDownload2"
displayLastModified="false"
displaySize="true"
displayType="false"
displayCreated="false">
<xp:this.value>
<![CDATA[#{javascript:
var allfiles:lotus.domino.RichTextItem=plan.getDocument().getFirstItem("VPL_datei");
allfiles.appendRTItem(plan.getDocument().getFirstItem("VPL_datei_1"));
allfiles.appendRTItem(plan.getDocument().getFirstItem("PGL_datei"));
allfiles.appendRTItem(plan.getDocument().getFirstItem("Plandatei"));
var file1:com.ibm.xsp.model.domino.wrapped.DominoRichTextItem = new com.ibm.xsp.model.domino.wrapped.DominoRichTextItem(plan, allfiles);
return file1;
}]]>
</xp:this.value>
</xp:fileDownload>
但这仅从第一个字段“ VPL_datei”中获取附件,并忽略其他字段中的所有附件。
是否可以合并字段或提供多个字段作为数据源?我一定不能编辑notesdocument或其格式。
答案 0 :(得分:3)
无法通过这种方式即时合并RTItems。您必须先保存该项目...
但是您可以创建自己的“ FileDownload”-控件。
使用Domino URL访问附件
要使用Domino URL访问文件附件,必须知道视图名称,文档名称和文件附件名称。当Domino保存文件所附加的文档时,它会为文件附件生成URL。这些URL以附件的文件名结尾。
语法:
http://Host/DatabaseName/View/DocumentName/ $文件/文件附件名称
其中View是视图名称或视图ID,DocumentName是文档名称或ID。 $ File是一个特殊的标识符,指示文档的附件。 Fileattachmentname是附件的文件名。
示例:
http://www.acme.com/products.nsf/Documents/ $ File / Spec_sheet.pdf