搜索表单输入标签不能与 econditions 一起正常工作

search-form-inputs tag not working properly with econditions

我正在使用 econditions 进行实体查找,并将结果列表放在我页面上的 form-list 元素中。我想要对列进行排序的能力,所以我在实体查找的末尾放置了一个 <search-form-inputs/> 标记。 问题是 entity-find 对于我包含的 econditions 不能正常工作(它的结果不是他们应该的!)

当我删除 <search-form-inputs/> 标签时,一切正常。 有什么建议么?也许我没有以正确的方式使用这个标签。

                   <entity-find entity-name="me.myJointView" list="itmTemp" distinct="true">
                    <econdition field-name="myId" operator="less-equals" from="rNTo" ignore-if-empty="true"/>
                    <econdition field-name="myId" operator="greater-equals" from="rNFrom" ignore-if-empty="true"/>
                    <econdition field-name="myName" from="fName" ignore-if-empty="true"/>
                    <econdition field-name="mySurname" from="lName" ignore-if-empty="true"/>
                    <econdition field-name="myDate" operator="less-equals" from="aDTo" ignore-if-empty="true"/>
                    <econdition field-name="someId" operator="equals" from="so" ignore-if-empty="true"/>
                    <econdition field-name="someOtherId" operator="equals" from="rm" ignore-if-empty="true"/>
                    <econditions combine="or">
                        <econdition field-name="myStateEnumId" operator="equals" value="something"/>
                        <econdition field-name="myStateEnumId" operator="equals" value="somethingElse"/>
                    </econditions>
                    <econditions combine="or">
                        <econditions combine="and">
                            <econdition field-name="aDate" from="null"/>
                            <econdition field-name="myDate" operator="greater-equals" to-field-name="aDate"/>
                        </econditions>
                        <econditions combine="and">
                            <econdition field-name="myDate" operator="less-equals" to-field-name="dDate"/>
                            <econdition field-name="myDate" operator="greater-equals" to-field-name="aDate"/>
                        </econditions>
                    </econditions>
                    <search-form-inputs/>
                    <select-field field-name="myId"/>
                    <select-field field-name="myName"/>
                    <select-field field-name="mySurname"/>
                    <select-field field-name="MyDate"/>
                    <order-by field-name="myDate,RECETEST.lastUpdatedStamp"/>
                </entity-find>

看看你的背景是什么,你会确切地看到引发这种行为的原因。 (例如,您可以在屏幕上使用 'label' 标签来 return "== ${context} ==" 等)。

如果您只想进行列排序,那么可以像 [orderByField:ec.web.parameters.orderByField] 一样创建自己的 input-fields-map,并将您的 default-order-by 也放入 search-form-inputs。

<search-form-inputs input-fields-map="xxx" default-order-by="xxx" />

我的屏幕上有一个 form-list,它的列名与我设置 econditions 的字段相同。类似于:

<form-list  name="list" list="receptions"  headre-dialog="true" paginate="true"> 

                    <field name="mySurname" skip-form="false">
                        <header-field show-order-by="true"><text-find hide-options="true"/></header-field>
                        <default-field><display/></default-field>
                    </field>
                    <field name="myDate" skip-form="false">
                        <header-field show-order-by="true"><text-find hide-options="true"/></header-field>
                        <default-field><display/></default-field>
                    </field>
                    <field name="editButton">
                        <default-field>
                            <link url="edit" parameter-map="[myId:myId]" icon="glyphicon glyphicon-pencil" btn-type="info" />
                        </default-field>
                    </field>
                    <form-list-column>
                        <field-ref name="myId" skip-form="true"/>
                    </form-list-column>
                    <form-list-column>
                        <field-ref name="myName"/>
                    </form-list-column>
                    <form-list-column>
                        <field-ref name="mySurname"/>
                    </form-list-column>
                    <form-list-column>
                        <field-ref name="myDate"/>
                    </form-list-column>
                    <form-list-column>
                        <field-ref name="editButton"/>
                    </form-list-column>
                    <field-layout>
                        <fields-not-referenced/>
                        <field-row>
                            <field-ref name="myId"/>
                            <field-ref name="myName"/>
                            <field-ref name="mySurname"/>
                            <field-ref name="myDate"/>
                            <field-ref name="editButton"/>
                        </field-row>
                    </field-layout>
                </form-list>

我在 entity-find:

的末尾添加了以下行并删除了 orderBy 语句
 <search-form-inputs input-fields-map="[orderByField:ec.web.parameters.orderByField]" default-order-by="myDate,myId,mySurname,myName,myDate" />

并从查询统计信息屏幕中检查该主题中的两个 entity-find 生成的查询是相同的(除了新查询中添加的 orderBy 语句外),除了:

1-这个post中的entity-find在查询的末尾添加一个"limit 20 offset 0"(我可以通过设置上限来处理)

2- 我不能再 orderBy RECETEST.lastUpdatedStamp (我在主要问题的 entity-find 定义中使用了它)。我需要这个功能!我该怎么办?