我试图在表和图表上一起显示结果det数据.例如:用户提供一个值作为输入,并且必须对服务器进行查询以根据用户输入过滤表,并为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");
Run Code Online (Sandbox Code Playgroud)
现在我需要将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");
Run Code Online (Sandbox Code Playgroud)
任何人都可以建议我的代码更改这样做.请帮助.
谢谢
您可以将过滤器添加到FlattenedDataset中
var oDataset = new sap.viz.ui5.data.FlattenedDataset({
dimensions : aDimensions,
measures : aMeasures,
data : {
path : sEntity,
filters: [oFilter],
parameters: {select: 'ProductID,UnitPrice,Quantity'}
}
});
Run Code Online (Sandbox Code Playgroud)
请参阅JsBin:Flattened DataSet绑定到OData实体,过滤器产品销售额按单价计算,过滤器位于ProductID上
注意我使用'参数'来减少返回的列,我还要求使用JSON而不是XML,这应该会大大减少返回的有效负载
var oModel = new sap.ui.model.odata.ODataModel(sURI, true);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
7634 次 |
最近记录: |