Orbeon Forms:动态标签在嵌套部分中不起作用
Orbeon Forms: Dynamic label not working in nested section
我正在使用 Orbeon Forms 2019.2.0.201912301747 CE。
我的表单结构如下所示:
<s-2>
<s-2-iteration>
<s-2-position>
...
<s-2.7>
<s-2.7-iteration>
<s-2.7-position>
...
</s-2.7-position>
</s-2.7-iteration>
</s-2.7>
...
</s-2-position>
</s-2-iteration>
</s-2>
标签 <...-position>
是我希望在其中添加动态标签的部分,例如“位置没有 X”,其中 X 是重复编号。我在 Settings/Label/Template 参数 (screen).
部分使用 xxf:repeat-position()
为 <s-2-position>
标记完成了此操作
但是,当我尝试在嵌套在 <s-2-position>
中的 <s-2.7-position>
标记中执行此操作时,它不起作用。 运行 表格时标签为空白。此外,当我尝试在 <s-2.7-position>
和 <s-2.7-position>
内的任何其他标签中使用任何类型的动态标签时,它也不起作用。
那么,你遇到过这样的问题吗? solution/workaround 是什么?这是 Orbeon Froms 的错误吗?
谢谢!
确实,xxf:repeat-position()
在这种情况下工作或具有更高级别的 Form Runner 特定功能是有意义的。这包含在增强请求 (RFE) #4144 中。与此同时,您可以尝试像 RFE 中提到的那样:
count(../preceding-sibling::*) + 1
我找到了问题的原因。将标签 <s-2.7-position>
重命名为不包括 s-2.7
的任何内容(甚至分开)后,带有模板参数的动态标签正在工作,包括 xxf:repeat-position()
.
将下面表格中的 s-2.7-pozycja
标签名称更改为 s-foo
后,这些标签的标签正确显示。在标签根本没有显示之前(空)。
工作形式:
<xh:html xmlns:xh="http://www.w3.org/1999/xhtml"
xmlns:xxf="http://orbeon.org/oxf/xml/xforms"
xmlns:fr="http://orbeon.org/oxf/xml/form-runner"
xmlns:xf="http://www.w3.org/2002/xforms"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:fb="http://orbeon.org/oxf/xml/form-builder"
fr:data-format-version="4.0.0">
<xh:head>
<xh:title>PL825 - Projekt podziału przemieszczenia</xh:title>
<xf:model id="fr-form-model" xxf:expose-xpath-types="true" xxf:analysis.calculate="true"
xxf:hint.appearance="tooltip">
<!-- Main instance -->
<xf:instance id="fr-form-instance" xxf:exclude-result-prefixes="#all" xxf:index="id">
<form>
<s-2>
<s-2-iteration>
<s-2-pozycja>
<s-2.7>
<s-2.7-iteration>
<s-foo>
<grid-7>
<control-1/>
</grid-7>
</s-foo>
</s-2.7-iteration>
</s-2.7>
</s-2-pozycja>
</s-2-iteration>
</s-2>
</form>
</xf:instance>
<!-- Bindings -->
<xf:bind id="fr-form-binds" ref="instance('fr-form-instance')">
<xf:bind id="s-2-bind" ref="s-2" name="s-2">
<xf:bind id="s-2-iteration-bind" ref="s-2-iteration" name="s-2-iteration">
<xf:bind id="s-2-pozycja-bind" ref="s-2-pozycja" name="s-2-pozycja">
<xf:bind id="s-2.7-bind" ref="s-2.7" name="s-2.7">
<xf:bind id="s-2.7-iteration-bind" ref="s-2.7-iteration" name="s-2.7-iteration">
<xf:bind id="s-foo-bind" ref="s-foo" name="s-foo">
<xf:bind id="grid-7-bind" ref="grid-7" name="grid-7">
<xf:bind id="control-1-bind" ref="control-1" name="control-1" xxf:whitespace="trim"/>
</xf:bind>
</xf:bind>
</xf:bind>
</xf:bind>
</xf:bind>
</xf:bind>
</xf:bind>
</xf:bind>
<!-- Metadata -->
<xf:instance id="fr-form-metadata" xxf:readonly="true" xxf:exclude-result-prefixes="#all">
<metadata>
<application-name>EMSC</application-name>
<form-name>PL825</form-name>
<title xml:lang="pl">PL825 - Projekt podziału przemieszczenia</title>
<description xml:lang="pl"/>
<created-with-version>2019.2.0.201912301747 CE</created-with-version>
<updated-with-version>2019.2.0.201912301747 CE</updated-with-version>
<library-versions>
<orbeon>1</orbeon>
</library-versions>
</metadata>
</xf:instance>
<!-- Attachments -->
<xf:instance id="fr-form-attachments" xxf:exclude-result-prefixes="#all">
<attachments/>
</xf:instance>
<!-- All form resources -->
<xf:instance xxf:readonly="true" id="fr-form-resources" xxf:exclude-result-prefixes="#all">
<resources>
<resource xml:lang="pl">
<control-1>
<label/>
<hint/>
</control-1>
<s-2.7>
<label>2.7 </label>
</s-2.7>
<s-foo>
<label>Position {$nr_poz}</label>
</s-foo>
<s-2>
<label>2. </label>
</s-2>
<s-2-pozycja>
<label>Position {$nr_poz}</label>
</s-2-pozycja>
</resource>
</resources>
</xf:instance>
<xf:instance xxf:readonly="true" xxf:exclude-result-prefixes="#all" id="s-2-template">
<s-2-iteration>
<s-2-pozycja>
<s-2.7>
<s-2.7-iteration>
<s-foo>
<grid-7>
<control-1/>
</grid-7>
</s-foo>
</s-2.7-iteration>
</s-2.7>
</s-2-pozycja>
</s-2-iteration>
</xf:instance>
<xf:instance xxf:readonly="true" xxf:exclude-result-prefixes="#all" id="s-2.7-template">
<s-2.7-iteration>
<s-foo>
<grid-7>
<control-1/>
</grid-7>
</s-foo>
</s-2.7-iteration>
</xf:instance>
</xf:model>
</xh:head>
<xh:body>
<fr:view>
<fr:body xmlns:p="http://www.orbeon.com/oxf/pipeline" xmlns:xbl="http://www.w3.org/ns/xbl"
xmlns:oxf="http://www.orbeon.com/oxf/processors">
<fr:section id="s-2-section" bind="s-2-bind" repeat="content" min="2"
template="instance('s-2-template')"
apply-defaults="true"
fb:initial-iterations="first">
<xf:label ref="$form-resources/s-2/label"/>
<fr:section id="s-2-pozycja-section" bind="s-2-pozycja-bind">
<xf:label ref="$form-resources/s-2-pozycja/label">
<fr:param type="ExpressionParam">
<fr:name>nr_poz</fr:name>
<fr:expr>xxf:repeat-position()</fr:expr>
</fr:param>
</xf:label>
<fr:section id="s-2.7-section" bind="s-2.7-bind" repeat="content" max="99"
template="instance('s-2.7-template')"
apply-defaults="true"
fb:initial-iterations="first">
<xf:label ref="$form-resources/s-2.7/label"/>
<fr:section id="s-foo-section" bind="s-foo-bind">
<xf:label ref="$form-resources/s-foo/label">
<fr:param type="ExpressionParam">
<fr:name>nr_poz</fr:name>
<fr:expr>xxf:repeat-position()</fr:expr>
</fr:param>
</xf:label>
<fr:grid id="grid-7-grid" bind="grid-7-bind">
<fr:c x="1" y="1" w="12">
<xf:input id="control-1-control" bind="control-1-bind">
<xf:label ref="$form-resources/control-1/label"/>
<xf:hint ref="$form-resources/control-1/hint"/>
<xf:alert ref="$fr-resources/detail/labels/alert"/>
</xf:input>
</fr:c>
</fr:grid>
</fr:section>
</fr:section>
</fr:section>
</fr:section>
</fr:body>
</fr:view>
</xh:body>
</xh:html>`
错误行为
预期行为
我正在使用 Orbeon Forms 2019.2.0.201912301747 CE。
我的表单结构如下所示:
<s-2>
<s-2-iteration>
<s-2-position>
...
<s-2.7>
<s-2.7-iteration>
<s-2.7-position>
...
</s-2.7-position>
</s-2.7-iteration>
</s-2.7>
...
</s-2-position>
</s-2-iteration>
</s-2>
标签 <...-position>
是我希望在其中添加动态标签的部分,例如“位置没有 X”,其中 X 是重复编号。我在 Settings/Label/Template 参数 (screen).
xxf:repeat-position()
为 <s-2-position>
标记完成了此操作
但是,当我尝试在嵌套在 <s-2-position>
中的 <s-2.7-position>
标记中执行此操作时,它不起作用。 运行 表格时标签为空白。此外,当我尝试在 <s-2.7-position>
和 <s-2.7-position>
内的任何其他标签中使用任何类型的动态标签时,它也不起作用。
那么,你遇到过这样的问题吗? solution/workaround 是什么?这是 Orbeon Froms 的错误吗?
谢谢!
确实,xxf:repeat-position()
在这种情况下工作或具有更高级别的 Form Runner 特定功能是有意义的。这包含在增强请求 (RFE) #4144 中。与此同时,您可以尝试像 RFE 中提到的那样:
count(../preceding-sibling::*) + 1
我找到了问题的原因。将标签 <s-2.7-position>
重命名为不包括 s-2.7
的任何内容(甚至分开)后,带有模板参数的动态标签正在工作,包括 xxf:repeat-position()
.
将下面表格中的 s-2.7-pozycja
标签名称更改为 s-foo
后,这些标签的标签正确显示。在标签根本没有显示之前(空)。
工作形式:
<xh:html xmlns:xh="http://www.w3.org/1999/xhtml"
xmlns:xxf="http://orbeon.org/oxf/xml/xforms"
xmlns:fr="http://orbeon.org/oxf/xml/form-runner"
xmlns:xf="http://www.w3.org/2002/xforms"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:fb="http://orbeon.org/oxf/xml/form-builder"
fr:data-format-version="4.0.0">
<xh:head>
<xh:title>PL825 - Projekt podziału przemieszczenia</xh:title>
<xf:model id="fr-form-model" xxf:expose-xpath-types="true" xxf:analysis.calculate="true"
xxf:hint.appearance="tooltip">
<!-- Main instance -->
<xf:instance id="fr-form-instance" xxf:exclude-result-prefixes="#all" xxf:index="id">
<form>
<s-2>
<s-2-iteration>
<s-2-pozycja>
<s-2.7>
<s-2.7-iteration>
<s-foo>
<grid-7>
<control-1/>
</grid-7>
</s-foo>
</s-2.7-iteration>
</s-2.7>
</s-2-pozycja>
</s-2-iteration>
</s-2>
</form>
</xf:instance>
<!-- Bindings -->
<xf:bind id="fr-form-binds" ref="instance('fr-form-instance')">
<xf:bind id="s-2-bind" ref="s-2" name="s-2">
<xf:bind id="s-2-iteration-bind" ref="s-2-iteration" name="s-2-iteration">
<xf:bind id="s-2-pozycja-bind" ref="s-2-pozycja" name="s-2-pozycja">
<xf:bind id="s-2.7-bind" ref="s-2.7" name="s-2.7">
<xf:bind id="s-2.7-iteration-bind" ref="s-2.7-iteration" name="s-2.7-iteration">
<xf:bind id="s-foo-bind" ref="s-foo" name="s-foo">
<xf:bind id="grid-7-bind" ref="grid-7" name="grid-7">
<xf:bind id="control-1-bind" ref="control-1" name="control-1" xxf:whitespace="trim"/>
</xf:bind>
</xf:bind>
</xf:bind>
</xf:bind>
</xf:bind>
</xf:bind>
</xf:bind>
</xf:bind>
<!-- Metadata -->
<xf:instance id="fr-form-metadata" xxf:readonly="true" xxf:exclude-result-prefixes="#all">
<metadata>
<application-name>EMSC</application-name>
<form-name>PL825</form-name>
<title xml:lang="pl">PL825 - Projekt podziału przemieszczenia</title>
<description xml:lang="pl"/>
<created-with-version>2019.2.0.201912301747 CE</created-with-version>
<updated-with-version>2019.2.0.201912301747 CE</updated-with-version>
<library-versions>
<orbeon>1</orbeon>
</library-versions>
</metadata>
</xf:instance>
<!-- Attachments -->
<xf:instance id="fr-form-attachments" xxf:exclude-result-prefixes="#all">
<attachments/>
</xf:instance>
<!-- All form resources -->
<xf:instance xxf:readonly="true" id="fr-form-resources" xxf:exclude-result-prefixes="#all">
<resources>
<resource xml:lang="pl">
<control-1>
<label/>
<hint/>
</control-1>
<s-2.7>
<label>2.7 </label>
</s-2.7>
<s-foo>
<label>Position {$nr_poz}</label>
</s-foo>
<s-2>
<label>2. </label>
</s-2>
<s-2-pozycja>
<label>Position {$nr_poz}</label>
</s-2-pozycja>
</resource>
</resources>
</xf:instance>
<xf:instance xxf:readonly="true" xxf:exclude-result-prefixes="#all" id="s-2-template">
<s-2-iteration>
<s-2-pozycja>
<s-2.7>
<s-2.7-iteration>
<s-foo>
<grid-7>
<control-1/>
</grid-7>
</s-foo>
</s-2.7-iteration>
</s-2.7>
</s-2-pozycja>
</s-2-iteration>
</xf:instance>
<xf:instance xxf:readonly="true" xxf:exclude-result-prefixes="#all" id="s-2.7-template">
<s-2.7-iteration>
<s-foo>
<grid-7>
<control-1/>
</grid-7>
</s-foo>
</s-2.7-iteration>
</xf:instance>
</xf:model>
</xh:head>
<xh:body>
<fr:view>
<fr:body xmlns:p="http://www.orbeon.com/oxf/pipeline" xmlns:xbl="http://www.w3.org/ns/xbl"
xmlns:oxf="http://www.orbeon.com/oxf/processors">
<fr:section id="s-2-section" bind="s-2-bind" repeat="content" min="2"
template="instance('s-2-template')"
apply-defaults="true"
fb:initial-iterations="first">
<xf:label ref="$form-resources/s-2/label"/>
<fr:section id="s-2-pozycja-section" bind="s-2-pozycja-bind">
<xf:label ref="$form-resources/s-2-pozycja/label">
<fr:param type="ExpressionParam">
<fr:name>nr_poz</fr:name>
<fr:expr>xxf:repeat-position()</fr:expr>
</fr:param>
</xf:label>
<fr:section id="s-2.7-section" bind="s-2.7-bind" repeat="content" max="99"
template="instance('s-2.7-template')"
apply-defaults="true"
fb:initial-iterations="first">
<xf:label ref="$form-resources/s-2.7/label"/>
<fr:section id="s-foo-section" bind="s-foo-bind">
<xf:label ref="$form-resources/s-foo/label">
<fr:param type="ExpressionParam">
<fr:name>nr_poz</fr:name>
<fr:expr>xxf:repeat-position()</fr:expr>
</fr:param>
</xf:label>
<fr:grid id="grid-7-grid" bind="grid-7-bind">
<fr:c x="1" y="1" w="12">
<xf:input id="control-1-control" bind="control-1-bind">
<xf:label ref="$form-resources/control-1/label"/>
<xf:hint ref="$form-resources/control-1/hint"/>
<xf:alert ref="$fr-resources/detail/labels/alert"/>
</xf:input>
</fr:c>
</fr:grid>
</fr:section>
</fr:section>
</fr:section>
</fr:section>
</fr:body>
</fr:view>
</xh:body>
</xh:html>`
错误行为
预期行为