SAPUI5 图表问题
SAPUI5 Charts questions
我正在尝试实现 SAPUI5 图表。我尝试使用演示工具包中的示例,现在想更改它以使用我的数据。我可以显示图表,但有几个问题。
1) 我在维度和度量的 'name' 方面遇到了问题。从我为显示图表所做的工作来看,名称似乎必须与 'value' 中的字段名称相匹配。因此,例如,如果我有字段 'classProducts' 我有这个: value: {classProducts}' 但当然这不是一个描述性的标题。当我有名字时:'XXX' 如果 XXX 不是 'classProducts',我得到这个错误:
"Failed to create chart:[50014] - Feed classProducts could not accept
more data containers."
根据我在文档中找到的内容,该名称是您想要在图例和图表中显示的名称。有没有人对如何将显示的名称更改为我想要的任何文本有任何建议?
2) 我正在使用柱形图并想比较两年之间的值。我可以显示这两年,但有没有办法以不同的颜色显示每一列?例如,2013 年的值为黄色,2014 年为蓝色?
3) 图表的高度和宽度(最小尺寸)是否有任何已知的限制?我想把图表做得很小,因为我必须一次在屏幕上显示几个。我尝试根据演示套件的值更改宽度和高度,但是当我更改值时,图表根本没有显示。
这是我的控制器:
var oVizFrame = myView.byId("idVizFrameColumn");
var oPopOver = myView.byId("idPopOver");
var oModel = new JSONModel("ByYear_sum.json");
var oDataset = new FlattenedDataset({
dimensions: [{
name: "Year",
value: "{Year}"
}],
measures: [{
name: 'classProducts',
value: '{classProducts}'
}],
data: {
path: "/book"
}
});
oVizFrame.setDataset(oDataset);
oVizFrame.setModel(oModel);
oVizFrame.setVizProperties({
valueAxis: {
label: {
formatString: 'u'
}
},
legend: {
title: {
visible: false
}
},
title: {
visible: true,
text: 'Classified Products'
}
});
var feedValueAxis = new FeedItem({
'uid': "valueAxis",
'type': "Measure",
'values': ["classProducts"]
}),
feedCategoryAxis = new FeedItem({
'uid': "categoryAxis",
'type': "Dimension",
'values': ["Year"]
});
oVizFrame.addFeed(feedValueAxis);
oVizFrame.addFeed(feedCategoryAxis);
oPopOver.connect(oVizFrame.getVizUid());
这是我的示例数据(它是演示套件中原始数据的子集,但插入了我的字段):
{
"book": [{
"Year": 2001,
"Profit": 213863.42,
"Unit Price": 3001.79,
"Units Available": 35255,
"Cost": 512189.07,
"Revenue": 726052.49,
"classProducts": 904.00,
"Units Sold": 12548
}, {
"Year": 2002,
"Profit": 224016.45,
"Unit Price": 2475.09,
"Units Available": 40748,
"Cost": 428884.52,
"Revenue": 652900.98,
"classProducts": 791.00,
"Units Sold": 12607
}]
}
如前所述,我已将问题解决为问题 #1。其他的都解决了,我换了个方向。
我正在尝试实现 SAPUI5 图表。我尝试使用演示工具包中的示例,现在想更改它以使用我的数据。我可以显示图表,但有几个问题。
1) 我在维度和度量的 'name' 方面遇到了问题。从我为显示图表所做的工作来看,名称似乎必须与 'value' 中的字段名称相匹配。因此,例如,如果我有字段 'classProducts' 我有这个: value: {classProducts}' 但当然这不是一个描述性的标题。当我有名字时:'XXX' 如果 XXX 不是 'classProducts',我得到这个错误:
"Failed to create chart:[50014] - Feed classProducts could not accept more data containers."
根据我在文档中找到的内容,该名称是您想要在图例和图表中显示的名称。有没有人对如何将显示的名称更改为我想要的任何文本有任何建议?
2) 我正在使用柱形图并想比较两年之间的值。我可以显示这两年,但有没有办法以不同的颜色显示每一列?例如,2013 年的值为黄色,2014 年为蓝色?
3) 图表的高度和宽度(最小尺寸)是否有任何已知的限制?我想把图表做得很小,因为我必须一次在屏幕上显示几个。我尝试根据演示套件的值更改宽度和高度,但是当我更改值时,图表根本没有显示。
这是我的控制器:
var oVizFrame = myView.byId("idVizFrameColumn");
var oPopOver = myView.byId("idPopOver");
var oModel = new JSONModel("ByYear_sum.json");
var oDataset = new FlattenedDataset({
dimensions: [{
name: "Year",
value: "{Year}"
}],
measures: [{
name: 'classProducts',
value: '{classProducts}'
}],
data: {
path: "/book"
}
});
oVizFrame.setDataset(oDataset);
oVizFrame.setModel(oModel);
oVizFrame.setVizProperties({
valueAxis: {
label: {
formatString: 'u'
}
},
legend: {
title: {
visible: false
}
},
title: {
visible: true,
text: 'Classified Products'
}
});
var feedValueAxis = new FeedItem({
'uid': "valueAxis",
'type': "Measure",
'values': ["classProducts"]
}),
feedCategoryAxis = new FeedItem({
'uid': "categoryAxis",
'type': "Dimension",
'values': ["Year"]
});
oVizFrame.addFeed(feedValueAxis);
oVizFrame.addFeed(feedCategoryAxis);
oPopOver.connect(oVizFrame.getVizUid());
这是我的示例数据(它是演示套件中原始数据的子集,但插入了我的字段):
{
"book": [{
"Year": 2001,
"Profit": 213863.42,
"Unit Price": 3001.79,
"Units Available": 35255,
"Cost": 512189.07,
"Revenue": 726052.49,
"classProducts": 904.00,
"Units Sold": 12548
}, {
"Year": 2002,
"Profit": 224016.45,
"Unit Price": 2475.09,
"Units Available": 40748,
"Cost": 428884.52,
"Revenue": 652900.98,
"classProducts": 791.00,
"Units Sold": 12607
}]
}
如前所述,我已将问题解决为问题 #1。其他的都解决了,我换了个方向。