Sapui5 oData绑定到简单形式

Sapui5 oData绑定到简单形式,sapui5,sap-web-ide,web-ide,Sapui5,Sap Web Ide,Web Ide,我正在创建一个只读表单,用于显示信息摘要。在获取信息之前,我需要先向后端发送一个参数,但我似乎看不到该参数正在到达后端 它确实到达实体集,但不显示参数。我的装订正确吗 这在控制器上: onInit: function() { var urlEnding = "1000012233"; var oFilterDist = new sap.ui.model.Filter("ID", sap.ui.model.FilterOperator.EQ, url

我正在创建一个只读表单,用于显示信息摘要。在获取信息之前,我需要先向后端发送一个参数,但我似乎看不到该参数正在到达后端

它确实到达实体集,但不显示参数。我的装订正确吗

这在控制器上:

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>

假设您想要一个单独的特定条目。在这种情况下,您要查找的是实体,而不是EntitySet+过滤器。巧合的是,我昨天写了一个有效的。我已更改路径和ID以反映您的:

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\u GET\u实体或DPC\u EXT上的任何方法


编辑:可能想将表单上的
editable
设置为false,它会缩小布局以适应文本而不是输入。

Nice,但我想指出一件事:
路径:
如果被创建,会变得更稳定。@boghyon啊,Nice,没有意识到这个方法。感谢您提到itthanks Jorg,但当我这样做时,它会转到Get实体,我需要它转到Get实体集,因为它可能有多个基于该“urlEnding”@eDz的帐户。方法是相同的;使用视图上的
bindElement
,或者使用
vbox
。在
path
旁边,该方法接受过滤器、分类器、扩展和所有其他odata选项