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