我的用户使用Excel来提供我们拥有的一些特定建筑物列表。我正在构建一个InfoPath表单来管理这些建筑物的合同。我正在寻找一种方法让我的用户在Excel中指定他们需要的建筑物,并将该列表粘贴到InfoPath表单重复表控件中。

该表有多个字段;用户将在其电子表格中选择Building ID列,将其粘贴到Repeating Table中的Building ID字段中,然后InfoPath表单将从绑定到控件的数据源中查找剩余的建筑信息,使用Building ID作为键。

重复表查找部分当前正在工作:用户可以输入(通过键入或粘贴Excel)单个建筑物ID,点击Tab,表格会查找其余信息。然后他们可以插入一个新行,并输入第二个建筑物ID,泡沫,冲洗,重复。这适用于少数建筑物 - 但不是数十或数百。所以我正在寻找一种让它们粘贴在列表中的方法,并从那里填写表格。

如果它们无法直接粘贴到重复表中,我可以将它们粘贴到多行Text控件中,然后使用XPath表达式解析它吗? XPath会是什么样子?最后一个限制:没有代码隐藏的C#或VB - 我们现在已经决定使用代码隐藏部署表单的后勤工作对于当前项目来说太多了。

任何帮助表示赞赏...

有帮助吗?

解决方案

我看到的唯一问题(主要是因为此解决方案不能涉及代码隐藏)是因为没有Infopath规则可以用来动态地将其他节点添加到重复组(这就是重复表绑定到。)

在重复表中创建附加记录的唯一方法是让用户手动按下“插入附加行”。表格底部的标签。

我强烈建议使用代码隐藏,因此用户可以将剪贴板分隔的Excel数据从剪贴板粘贴到一个框中;将它解析为服务器端;并使用该数据和例程来访问表单的MainDataSource,并以这种方式添加其他行。

其他提示

如果从infopath中提取源文件,其中一个文档将是template.xml文件。这将保存您的infopath表单的数据。使用excel宏将模板作为xml文档打开,并添加excel电子表格中的数据。然后,您可以允许用户自己打开文件或为他们打开文件。只是一种避免代码隐藏的方法。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top