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