在我的应用程序中,我有一个微型图表,该微型图表直接绑定到XML视图中的OData-Entityset。
我现在想将过滤器传递给该请求。但是,此过滤器应基于用户选择的设置是动态的。
用户选择一个时间范围,然后将该值存储在另一个View Local JSON Model中。
是否可以基于该值构建OData绑定过滤器。
此处与过滤器的绑定不起作用。
我尝试了各种组合:
<microchart:InteractiveDonutChart id="microDonutChart"
segments="{path: '/BookingStOverviewSet',
filters : [
{ path : 'Txt04',
operator : 'GE',
value1 : {filterModel>/status}
}
]
}">
<microchart:segments>
<microchart:InteractiveDonutChartSegment label="{Txt30}" value="{Count}"/>
</microchart:segments>
</microchart:InteractiveDonutChart>
控制器中使用Filter值构建JSON模型的逻辑:
onInit: function () {
var filterModel = new sap.ui.model.json.JSONModel(
{
"startOfCal": new Date(),
"endOfCal": new Date(),
"status": '0001'
});
this.getView().setModel(filterModel, 'filterModel');
}
答案 0 :(得分:0)
遗憾的是,SAPUI5不支持通过XML进行动态过滤,您需要在应用程序的JS部分中解决该问题。
答案 1 :(得分:0)
可以通过以下方式开发解决方法:
var filters = [];
var myFilter= new sap.ui.model.Filter("Txt04", sap.ui.model.FilterOperator.EQ, filterModel.getProperty("/status"));
filters.push(myFilter);
var microChart = this.getView().byId("microDonutChart")
microChart.bindSegments({
path: "/BookingStOverviewSet",
filters: filters,
template: microChart.getBindingInfo("items").template
});