тег search-form-input не работает должным образом с условиями - PullRequest
0 голосов
/ 19 июня 2019

Я делаю поиск сущностей с помощью условий и помещаю список результатов в элемент списка форм на своей странице.Мне нужна возможность сортировки по столбцам, поэтому я поставил тег <search-form-inputs/> в конце поиска сущностей.проблема в том, что поиск сущностей не работает должным образом для включенных мной условий (его результаты не соответствуют ожиданиям!)

, и когда я удаляю тег <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>

Ответы [ 2 ]

0 голосов
/ 22 июня 2019

У меня на экране был список форм, имена его столбцов были идентичны полям, для которых я устанавливал условия.что-то вроде:

<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>

Я добавил строку ниже и удалил инструкцию orderBy в конце моего поиска сущности:

 <search-form-inputs input-fields-map="[orderByField:ec.web.parameters.orderByField]" default-order-by="myDate,myId,mySurname,myName,myDate" />

и проверилиз экрана статистики запросов, что запрос, созданный двумя сущностями-сущностями в этом разделе, одинаков (кроме оператора orderBy, добавленного в новый запрос) за исключением того, что:

1 - поиск сущности в этой темедобавьте в конце запроса «предел 20 смещений 0» (который я могу обработать, установив верхний предел)

2 - я не могу заказатьBy RECETEST.lastUpdatedStamp (который я использовал на объекте -найди определение в основном вопросе)И НУЖНА ЭТА ФУНКЦИОНАЛЬНОСТЬ!ЧТО СЛЕДУЕТ ДЕЛАТЬ?

0 голосов
/ 19 июня 2019

Посмотрите на то, что в вашем контексте, и вы увидите, что именно происходит, чтобы выявить такое поведение. (например, вы можете использовать тег «label» на вашем экране для возврата «== $ {context} ==» и т. д.).

И если вам нужна только сортировка столбцов, создайте свою собственную карту полей ввода, например [orderByField: ec.web.parameters.orderByField], и добавьте свой порядок по умолчанию с помощью входных данных для поиска.

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