oПривязка данных к простой форме

Я создаю форму только для чтения, которая будет использоваться для отображения сводки информации. Мне нужно сначала отправить параметр на серверную часть, прежде чем получать информацию, но я, кажется, не вижу, чтобы этот параметр достиг его.

Он достигает набора сущностей, но не показывает параметр. Я правильно связываюсь?

Это на контроллере:

onInit: function() {

    var urlEnding = "1000012233";
        var oFilterDist = new sap.ui.model.Filter("ID", 
          sap.ui.model.FilterOperator.EQ, urlEnding);
        var summaryText = this.getView().byId("summaryForm");
        summaryText.bindElement({
            path: "/SummaryScreenSet",
            filters: [oFilterDist]
        });
    }

Это на просмотре

<VBox class="sapUiSmallMargin" fitContainer="true" 
height="100%" width="100%" justifyContent="End" 
displayInline="true" id="leftVBox" items="{/SummaryScreenSet}">

<items>
    <f:SimpleForm editable="true" layout="ResponsiveGridLayout" id="summaryForm" columnsL="1" columnsXL="1" labelSpanL="5" title="Account Summary" labelSpanM="5">
        <f:content>
            <Label text="Status" id="__label6" design="Bold" class="sizeText"/>
            <ObjectStatus text="{CONTRACT_STATUS}" id="__status6" state="Success" class="boldText"/>
            <Label text="Permit Required" id="__label10" design="Bold" class="sizeText"/>
            <Text text="{PERMIT_REQD}" id="__text32" wrapping="false" class="sizeText"/>
            <Label text="Bill Date | Due Date" id="__label11" design="Bold" class="sizeText"/>
            <Text text="{BILL_DATE} | {DUE_DATE}" id="__text33" wrapping="false" class="sizeText"/>
            <Label text="Last Estimated Date | Next MR Date" id="__label17" design="Bold" class="sizeText"/>
            <Text text="{LAST_PAYMENT_DATE} | {nextMRDate}" id="__text39" wrapping="false" class="sizeText"/>
        </f:content>
    </f:SimpleForm>
 </items>
</VBox>

person eDz    schedule 21.02.2018    source источник


Ответы (1)


Предположим, вам нужна одна конкретная запись. В этом случае вы ищете Entity, а не фильтр EntitySet +. По совпадению, вот тот, который я написал вчера, который работает. Я изменил пути и идентификаторы, чтобы они отражали ваши:

var form = this.getView().byId('summaryForm');

form.bindElement({
    path: "/SummaryScreenSet('" + urlEnding + "')",
    events: {
        change: function() {
            //triggers on error too I think
            form.setBusy(false);
        },
        dataRequested: function() {
            form.setBusy(true);
        }
    }
});

В этом случае вам также не нужен VBOX, только форма. Не забудьте реализовать SUMMARYSCREEN_GET_ENTITY или любой другой метод на вашем DPC_EXT.

Редактировать: возможно, вы захотите установить editable в форме на false, он сжимает макет в соответствии с текстом вместо ввода.

person Jorg    schedule 21.02.2018