【问题标题】:SharePoint 2010 and InfoPathSharePoint 2010 和 InfoPath
【发布时间】:2016-05-04 09:52:01
【问题描述】:
我在带有 Windows 7 操作系统的 IE 11 上使用 SharePoint 2010 和 InfoPath 2010。
我有一个 InfoPath 表单,我希望用户能够填写数据并可以选择下载副本(包含数据),作为 pdf 或 word 文档 - 另存为功能。
我在 InfoPath 填充程序 (office 2010) 中看到我可以执行此“另存为 PDF”功能,但在 SharePoint 2010 中无法执行。是否有我缺少的设置或者我必须走扩展 SharePoint 基础的路线 w/ ASP.NET?
谢谢
【问题讨论】:
标签:
sharepoint-2010
infopath
【解决方案1】:
抱歉,没有符合您要求的本机 SharePoint 2010 功能。但是您可以购买一些 3rd 方工具,或者,当然,按照您自己的建议并追求自定义选项。
【解决方案2】:
我为 SP2010 创建了一个 shim,它将导致 sharepoint 2010 站点中的所有 Infopath 表单下载,只要该表单的链接位于 Sharepoint 2010 中。您需要 jquery 1.12 才能运行。
$(function() {
if (document.getElementsByTagName('BODY')[0].innerHTML.indexOf('.xsn') != -1) {
$('a[href$=".xsn"]').each(function(index) {
var self = $(this);
var fileLocation = '';
var spDownloadsUrl = '/_layouts/download.aspx?SourceUrl=';
//GRAB LINK'S HREF LINK PATH AND URI ENCODE IT
var currentUrl = encodeURI(self.attr('href'));
//IF THE HREF IS TO A NETWORK FILE LOCATION EXIT THE PROCESS AND LEAVE IT ALONE
if (currentUrl.indexOf('file:') != -1) {
return;
}
//SHAREPOINT 2010 DOC LIST ELEMENTS HAVE INLINE JS ALTERING THE LINK BEHAVIOR, SO THEY NEED TO BE REMOVED
self.removeAttr('onclick');
self.removeAttr('onmousedown');
self.removeAttr('onfocus');
//IF THE LINK'S URL IS ABSOLUTE PATH, BUILD IT AS RELATIVE
if (currentUrl.indexOf('.com') != -1) {
var urlSplitOnDotCom = currentUrl.split('.com');
var urlAfterDotCom = urlSplitOnDotCom[1];
var urlPartsArr = urlAfterDotCom.split('/');
//REBUILD URL FROM ARRAY
var newPathname = "";
for (i = 1; i < urlPartsArr.length; i++) {
newPathname += "/";
newPathname += urlPartsArr[i];
}
fileLocation = newPathname;
} else {
fileLocation = currentUrl;
}
//ADD NEW URL TO INFOPATH FILE'S HREF ATTRIBUTE
self.attr('href', spDownloadsUrl + fileLocation);
});
}
});