我们有一个带有 InfoPath 表单组件的 ASP.NET 应用程序,它使用 InfoPath Forms Server 将 InfoPath 表单传送到浏览器。我们没有将表单保存在 SharePoint 中,而是将 XML 表单数据提交到 ASP.NET Web 服务,该服务将数据保存为 SQL Server 2005 中的 XML 数据类型。这工作正常,加载 XML 数据没有问题返回 InfoPath 表单。
当我们尝试将旧数据(来自表单的版本 1)加载到新版本的表单(版本 2)中时,我们的问题就出现了。例如,这个新版本的表单 (V2) 有一个新的文本框字段。因为 V2 字段在 V1 XML 中不存在,所以它们在 V2 表单上可见,但被禁用且无法填写。
我们的问题是我们如何将 V1 XML 数据加载到 V2 表单中,并让用户能够完成现在出现在 V2 表单中的那些字段。
使用 InfoPath Forms Server 和存储在表单库中的表单可以实现此行为。如果更新表单模板,您可以在新模板中打开旧表单,查看新字段,并可以在新字段中保存数据。当表单 XML 数据存储在 SQL Server 中而不是表单库中时,我们需要知道如何以编程方式执行此操作。