在本教程的第二部分,将设计一个InfoPath表单并将其部署到SharePoint表单库中。然后,将在站点页面上添加已部署的InfoPath表单到InfoPath表单Web部件中,通过查询字符串过滤器Web部件连接它,并使用在第一部分开发的WCF服务读取数据。
打开MicrosoftInfoPathDesigner 2010。在文件菜单中,选择新建,然后从可用模板中选择空白表单。保存InfoPath表单时,它会要求输入文件名。请记住,这将是InfoPath表单的可编辑或设计版本。将发布这个表单,并将这个表单的发布版本上传到SharePointInfoPath库。确保为这两个文件使用适当的命名约定,因为这两个文件都将有.xsn作为扩展名。
从页面设计标签中选择适当的设计。可以从插入标签中添加表格布局。有关Microsoft InfoPath 2010 Designer的更多信息,可以访问此链接。
要添加新连接,请单击数据选项卡中的数据连接。这将打开一个弹出窗口,单击弹出窗口上的添加按钮。这将启动数据连接向导。选择接收数据单选按钮,然后单击下一步。
在下一个屏幕上,选择SOAP Web服务单选按钮,然后单击下一步。下一个屏幕将需要构建的WCF服务的URL。(该服务部署在ISAPI文件夹中,可以在IIS的_vti_bin文件夹中找到)。如果URL正确且服务可访问,下一个屏幕将显示可用的操作。选择GetProjectDetailsById操作,然后单击下一步。参数屏幕上没有值,所以单击下一步。不想在表单模板中存储数据副本,所以单击下一步。取消选中“在表单打开时自动检索数据”,然后单击完成。可能想要将连接转换为连接文件。要了解更多关于连接文件的信息,请单击此链接。
在数据选项卡中,单击显示字段按钮以查看表单中可用的字段。字段下拉菜单现在应该有了一个次级连接。
现在选择字段下拉菜单中的主连接。将看到一个名为myFields的组,将其重命名为更有意义的名称。将其重命名为ProjectManagementFields。保持组被选中,然后单击窗口底部的添加字段链接。在弹出窗口中,添加将成为表单输入参数的字段的名称和数据类型。在这个表单中,将添加ProjectId到主连接中。
必须在主连接字段ProjectId更改时添加一个规则。在这个规则中,将设置queryFields列(次级连接)的值为来自主连接列的值。接下来,将使用WCF方法检索数据。
现在将字段从次级连接拖放到表单上。需要两个按钮来保存表单和关闭表单。在这部分,不会为保存按钮添加任何功能。在关闭按钮上添加一个规则以关闭表单。
要部署InfoPath表单,首先需要发布表单。在开始发布表单之前,需要设置表单的安全性和信任级别。InfoPath表单需要在完全信任模式下运行。要设置安全性,在InfoPath Designer中,转到文件->信息。在表单信息面板上,选择高级表单选项。现在选择可用类别中的安全性和信任。如果选中了“自动确定安全级别”,请取消选中,然后选择完全信任选项。单击确定以关闭窗口。
要发布表单,在文件菜单中,选择发布选项。现在单击SharePoint服务器按钮。这将打开发布向导。向导的第一屏幕是提供SharePoint URL。输入站点URL,然后单击下一步。在下一个屏幕上,选择使用浏览器填写表单的选项,然后选择管理员批准的表单模板选项。
在下一个屏幕上,浏览本地文件系统中发布表单将被存储的位置。确保给它一个与设计表单不同的名称。现在单击下一步。
在这个屏幕上,必须提供想要暴露给连接的Web部件的参数。将选择Project Id作为输入参数。单击下一步,然后单击发布按钮。这将发布表单到向导屏幕上提供的位置。
要部署InfoPath表单,需要站点中的一个表单库。所以在部署表单之前创建一个表单库。
接下来,在中央管理中,转到常规应用程序设置。在InfoPath表单服务部分下,单击管理表单模板链接。这将重定向到一个窗口,可以在其中添加发布表单。确保具有管理员权限,因为上传表单将需要Farm Administrator权限。
浏览发布表单的位置并上传表单。上传表单后,单击新添加的表单。在上下文菜单中,选择激活到站点集合选项。这将在上传的表单所在的站点集合上激活表单,并将作为内容类型可用。
现在在表单库(在部署的第1步中创建)中,转到库设置。单击页面的“内容类型”部分中可用的“从现有站点内容类型添加”。新添加的表单将在列表框中可供选择。添加表单并单击确定按钮。
使用SharePoint Designer,添加一个Web部件站点页面。在浏览器中打开表单,并添加一个查询过滤器Web部件。向查询过滤器Web部件添加一个"TID"查询字符串。确保不要添加"Id"列,因为它在过滤器Web部件中将无法识别。再添加一个"InfoPath表单Web部件"。