代码之家  ›  专栏  ›  技术社区  ›  Tony Doherty

仅将外部数据加载到InfoPath一次

  •  0
  • Tony Doherty  · 技术社区  · 12 年前

    希望有人能帮我解决这个问题。

    出身背景 我创建了一个用于评估项目风险的InfoPath表单。它允许用户选择一个场景,作为回报,表单返回一个风险类别和一组操作。操作在表单上显示为多选列表框,因为我无法在文本框中显示操作列表。

    该表单将在多个位置使用,因此将发布到澳大利亚各地的多个sharePoint网站,因此为了便于更新,所有场景和操作都将从通用sharePoint列表中加载。这样就不需要每次更新都重新发布表单。

    问题 如果推出了新版本的表单。例如,任何场景或行动发生变化。我不能更改任何以前提交的表格,因为表格中以前提交的答案在旧版本中可能不相关。

    这不是Scenario字段的问题,因为它们只能标记为加载一次。但是多选列表框的工作方式不同,每次打开表单时都会加载其数据。

    问题 是否只加载一次多选列表框中的数据?

    如果没有,我是否可以将数据加载到项目符号列表或其他字段中,第一次打开表单时只能加载一次?

    希望有人能帮忙。

    2 回复  |  直到 12 年前
        1
  •  2
  •   Dean    12 年前

    我也遇到了同样的问题——我不希望以前提交的旧表单中的数据在将来打开时刷新下拉列表、表格等的数据。无论数据库值是否发生变化,它们都需要始终使用与提交时相同的数据。

    为此,我首先取消了“打开表单时自动填充数据”选项。然后我取消了告诉数据在X天后过期的选项,所以我总是知道表单会缓存数据。

    然后,我创建了一个字段,作为天气的标记,以更新数据库中的值。然后,如果需要,我使用自定义代码刷新数据库中的辅助数据源。在我的表单加载事件中,我检查from是否已经提交,或者是否使用了我的标记字段。。。。如果以前没有提交-刷新数据-如果以前提交-不刷新数据。

    在提交表单时,我将市场字段设置为表示表单已锁定,永远不应更新其二级来源

    希望你明白我的想法。 干杯

        2
  •  0
  •   Community CDub    7 年前

    如果推出了新版本的表单。例如,任何场景 或者动作改变。我以前无法提交任何表格 更改,因为之前在表格中提交的答案可能 与旧版本无关

    我不理解你的问题,因为 previously created XML data forms are opened with XSN templates with which they have been created (即使用旧的XSN模板表单打开先前创建的XML数据表单)。如果不是这样,那就提出一个问题,为什么它对你来说失败了。

    此外,我不明白为什么您需要从外部源加载选项,如果它应该永远固定,则从嵌入模板本身的资源XML文件或手动输入的选项加载它( 手动输入选项 在多选列表框的属性中)。因此,它们将存储在使用过的模板中

    请检查

    关于如何在Infopath中使用默认数据创建测验表格的更好方法的分步教程(模块中的问题和答案)