SAP Fiori详情页柱状图无数据问题及多维度数据配置咨询
问题解决与实现建议
一、修复柱状图"No Data"问题
问题根源
当前Detail视图通过控制器的bindElement方法绑定到单个产品对象(路径/ProductCollection/{ProductId}),但图表的FlattenedDataset却尝试绑定到{ProductCollection}——该路径在单个产品的上下文下是无效的,因为当前视图的上下文是集合中的某一项,而非集合本身,导致图表无法获取数据。
解决方案
如果暂时只需要展示当前产品的单一年份销售数据,可以调整数据集的绑定路径,直接引用模型的根上下文:
<viz.data:FlattenedDataset data="{/ProductCollection}">
但这种方式会显示所有产品的销售数据,更合理的方案是结合多年份需求重构数据结构(见下文),从根源解决问题。
二、添加多年份销售数据的实现
数据结构调整
是的,需要在webapp/model.json中为每个产品添加销售历史数组,示例如下:
{ "ProductCollection": [{ "ProductId": "1239102", "Name": "BMW20", // 保留原有其他字段... "SalesHistory": [ {"Year": "2012", "Sales": 200}, {"Year": "2013", "Sales": 350}, {"Year": "2014", "Sales": 420} ] }, { // 其他产品数据... }] }
注意:建议将Sales字段改为数值类型(去掉引号),便于图表正确处理数据。
视图绑定修改
在Detail视图的XML中,将图表数据集绑定到当前产品的SalesHistory数组:
<viz:dataset> <viz.data:FlattenedDataset data="{SalesHistory}"> <viz.data:dimensions> <viz.data:DimensionDefinition name="Year" values="{Year}" /> </viz.data:dimensions> <viz.data:measures> <viz.data:MeasureDefinition name="Sales" values="{Sales}"/> </viz.data:measures> </viz.data:FlattenedDataset> </viz:dataset>
修改后,图表会自动加载当前产品的多年份销售数据,同时解决"No Data"的问题。
内容的提问来源于stack exchange,提问作者Mahmood Hammood
相关产品推荐
相关产品推荐

