1

我正在尝试在表格和图表上一起显示结果数据。例如:用户提供一个值作为输入,并且必须向服务器进行查询以根据用户输入过滤表并为 nbacj 提供结果集。

我正在表上实现过滤器,然后将过滤后的结果集绑定到表。我编写了下面的代码,它工作正常。

var oModel = new sap.ui.model.odata.ODataModel( "../TEST_ODATA.xsodata",false);  
oTable.setModel(oModel);  
var oFilter=new sap.ui.model.Filter("SUPPLIERID",sap.ui.model.FilterOperator.EQ,oInput1.getValue());  
oTable.getBinding("rows").filter(oFilter);  
var NumberOfRows = oTable.getBinding("rows").iLength;  
oTable.setTitle("Title1" + "(" + NumberOfRows + ")");  
oTable.placeAt("content");

现在我也需要将 ofilter 绑定到图表,并且我编写了以下不起作用的代码。

var oDataset = new sap.viz.ui5.data.FlattenedDataset({  
    dimensions : [{axis : 1, name : 'SUPPLIERID', value : "{SUPPLIERID}"},{axis : 2, name : 'MATERIALNUMBER', value : "{MATERIALNUMBER}"}],  
    measures : [{name : 'Result', value : '{Result}'}],  
    data : {  
  path : "/service_path"  
  }});  

var oStackChart = new sap.viz.ui5.StackedColumn({  
  width : "80%",  
  height : "400px",  
  plotArea : {'colorPalette' : d3.scale.category20().range()},  
  title : {visible : true,text : 'Title2'},  
  dataset : oDataset});  

oStackChart.setModel(oModel);  
var oFilter=new sap.ui.model.Filter("SUPPLIERID",sap.ui.model.FilterOperator.EQ,oInput1.getValue());  
oStackChart.getBinding("rows").filter(oFilter);  
oStackChart.placeAt("content");  

任何人都可以建议更改我的代码来这样做。请帮忙。

谢谢

4

1 回答 1

5

您可以将过滤器添加到FlattenedDataset类似:

var oDataset = new FlattenedDataset({ // required by "sap/viz/ui5/data/FlattenedDataset"
  dimensions: aDimensions,
  measures: aMeasures,
  data: {
    path: sEntity,
    filters: [ oFilter ],
    parameters: {
      select: 'ProductID,UnitPrice,Quantity'
    }
  }
});

注意我曾经parameters减少返回的列。

于 2014-02-22T09:08:33.693 回答