我正在尝试显示vizframe中json对象的数量,但是
我无法在vizframe中设置计数。
请帮助如何在框架中设置数据。我正在使用以下代码来做到这一点。
sapui5视图:
createContent : function (oController) {
// some business data
var oModel = new sap.ui.model.json.JSONModel({
businessData: [
{Country: "Canada", revenue: 410.87, profit: -141.25, population: 34789000},
{Country: "China", revenue: 338.29, profit: 133.82, population: 1339724852},
{Country: "France", revenue: 487.66, profit: 348.76, population: 65350000},
{Country: "Germany", revenue: 470.23, profit: 217.29, population: 81799600},
{Country: "India", revenue: 170.93, profit: 117.00, population: 1210193422},
{Country: "United States", revenue: 905.08, profit: 609.16, population: 313490000}
]
});
count = oModel.getProperty("/businessData/length");
/* sap.ui.getCore().byId("chart1");*/
console.log(count);
// A Dataset defines how the model data is mapped to the chart
var oDataset = new sap.viz.ui5.data.FlattenedDataset("chart1", {
// a Bar Chart requires exactly one dimension (x-axis)
dimensions: [
{
axis: 1, // must be one for the x-axis, 2 for y-axis
name: 'Country',
value: "{Country}"
}
],
// it can show multiple measures, each results in a new set of bars in a new color
measures: [
// measure 1
{
name: 'Profit', // 'name' is used as label in the Legend
value: '{count}' // 'value' defines the binding for the displayed value
}
],
// 'data' is used to bind the whole data collection that is to be displayed in the chart
});
// create a Bar chart
// you also might use Combination, Line, StackedColumn100, StackedColumn or Column
// for Donut and Pie please remove one of the two measures in the above Dataset.
var oBarChart = new sap.viz.ui5.Bar({
width: "80%",
height: "400px",
plotArea: {
//'colorPalette' : d3.scale.category20().range()
},
title: {
visible: true,
text: 'Profit and Revenue By Country'
},
dataset: oDataset
});
// attach the model to the chart and display it
oBarChart.setModel(oModel);
return new sap.m.Page({
title: "Title",
content: [oBarChart]
});
}
最佳答案
etc. |------------- etc.
France |---------- 348.76
China |------- 133.82
-------------------------------------> [profit] and also [revenue] (I did not draw revenue)
如果要按我的绘制方式获取图形,则需要在some_name.view.xml中更改代码,如下所示:
<viz:VizFrame id="vizFrame" uiConfig="{applicationSet:'fiori'}"></viz:VizFrame>
在some_name.controller.js中:
generateChart : function(){
var oChart = this.getView().byId("vizFrame");
var oDataset = new sap.viz.ui5.data.FlattenedDataset({
dimensions : [
{
name : "Country name",
value : "{Country}"
}],
measures : [{
name : "Profit values",
value : "{profit}"
},
{
name : "Revenue values",
value : "{revenue}"
}],
});
oChart.setDataset(oDataset)
var feedValueAxis = new sap.viz.ui5.controls.common.feeds.FeedItem({
'uid' : "valueAxis",
'type' : "Measure",
'values' : ["Profit values", "Revenue values"]
}), feedCategoryAxis = new sap.viz.ui5.controls.common.feeds.FeedItem({
'uid' : "categoryAxis",
'type' : "Dimension",
'values' : ["Country name"]
});
oChart.removeAllFeeds();
oChart.addFeed(feedValueAxis);
oChart.addFeed(feedCategoryAxis);
oChart.setVizType('bar');
}