在 OData 和 Viz-Chart 上应用过滤器
这是带有过滤器的折线图的 Viz-Charts 示例。有很多技术可以解决过滤问题。
需要注意的是,你需要通过其 ID 绑定 VizFrame 的数据集,然后对 FlattenedDataset 应用过滤
在控制器中:
// defining the Filter
var oFilter = new sap.ui.model.Filter("Data1",sap.ui.model.FilterOperator.GT,10);
//Setting oModel
var oModel = new sap.ui.model.odata.ODataModel("/destinations/v4/abc/http/app.svc", oConfig);
this.getView().setModel(oModel);
//Binding the filtered data to the chart by callind it from its ID and binding the data there
this.getView().byId("idVizFrame").getDataset().getBinding("data").filter([oFilter]);
在 XML 视图中:
<viz:VizFrame id="idVizFrame" uiConfig="{applicationSet:'fiori'}" height='100%' width="100%" vizType='line' >
<viz:dataset>
<viz.data:FlattenedDataset data="{/YOUR_ENTITY_SET}">
<viz.data:dimensions>
<viz.data:DimensionDefinition name="TimeStamp" value="{TimeStamp}"/>
</viz.data:dimensions>
<viz.data:measures>
<viz.data:MeasureDefinition name="SENSOR1" value="{SENSOR1}"/>
</viz.data:measures>
</viz.data:FlattenedDataset>
</viz:dataset>
<viz:feeds>
<viz.feeds:FeedItem id='valueAxisFeed' uid="valueAxis" type="Measure" values="Data_SENSOR1"/>
<viz.feeds:FeedItem id='categoryAxisFeed' uid="categoryAxis" type="Dimension" values="TimeStamp"/>
</viz:feeds>
</viz:VizFrame>