Charts SAPUI5组合图表数据和图表格式

Charts SAPUI5组合图表数据和图表格式,charts,sapui5,Charts,Sapui5,我想创建一个SAPUI5组合图——一个柱形图,每个月都有一条线,用于比较一年和另一年。用户可以选择大约11个可能的类别,但图表一次只能显示一个类别的信息 对于一个类别,它类似于以下内容: 我可以创建图表来显示数据,但在将其转换为使用基于类别的数据时遇到问题。我想我可以做我想做的,但我认为问题在于如何提供我的数据 这是我的json(例如,我在数据中显示了两个类别-我希望能够为用户选择的类别应用过滤器): } 这是我的控制器的一部分 var oModel = new JSONModel("ByYe

我想创建一个SAPUI5组合图——一个柱形图,每个月都有一条线,用于比较一年和另一年。用户可以选择大约11个可能的类别,但图表一次只能显示一个类别的信息

对于一个类别,它类似于以下内容:

我可以创建图表来显示数据,但在将其转换为使用基于类别的数据时遇到问题。我想我可以做我想做的,但我认为问题在于如何提供我的数据

这是我的json(例如,我在数据中显示了两个类别-我希望能够为用户选择的类别应用过滤器):

}

这是我的控制器的一部分

var oModel = new JSONModel("ByYear_sum.json");
sap.ui.model.FilterOperator.EQ, filterText);    

var oDataset = new FlattenedDataset({
dimensions: [{
        name: "Month",
        value: "{month}"
        }],
 measures: [{
      name: "Start Year",
      value: "{current}"
    },{
      name: "End Year",
      value: "{previous}"
    }],
data: {
          path: "/bullet"
          filters: [oFilter]
        }
    });
oVizFrame.setDataset(oDataset);
oVizFrame.setModel(oModel);

oVizFrame.setVizProperties({
    plotArea: {
        dataLabel: {
            visible: true,
            formatString: '#,##0'
        }
    },
    valueAxis: {
        title: {
            visible: false
        }
    },
    legend: {
        title: {
            visible: false
        }
    },
    title: {
        visible: true,
        text: 'Year Comparison'
    }
});

var feedValueAxis = new FeedItem({
      'uid': "valueAxis",
      'type': "Measure",
      'values': ["Start Year", "End Year"]
    }),
   feedCategoryAxis = new FeedItem({
      'uid': "categoryAxis",
      'type': "Dimension",
      'values': ["Month"]
    });
filterText的值将用于显示所选类别(例如已分类产品或未分类产品)的图表信息

我尝试将/months/放在值前面(例如“{/months/previous}”),以获取类别(即已分类的产品)的值,但它似乎找不到正确的数据(我没有得到数据)

我还想显示月份的文本值,而不是数字,如何对该值应用格式化程序


我的示例图表显示了年份数……所比较的年份来自用户输入,我目前无法确定如何获取所选年份的值,我必须输入“开始年份”和“结束年份”。有没有办法让图例和popover显示年份值(根据用户输入如此动态)?我尝试的每件事都给了我错误,并且无法显示图表——我认为这是因为提要需要匹配相同的文本,而当我尝试使用一个值时,它无法匹配

在其他人的指导下,我终于能够让这项工作顺利进行

1) 在标题中,当用户选择不同的过滤器时,我能够设置和更新标题属性

2) 路径也不正确…应该是/bullet/0/months-“0”根据筛选器的不同而变化。我只需要得到所选类别的索引,并将其用于路径

3) 我更改了数据以返回月份缩写,而不是数字

4) 如果你点击一个数据点,我最终能够在图例和弹出窗口中显示年份。在FlattedDataset定义中,我在其中放入了一个变量名,该变量名在创建FlattedDataset时传入-例如:name was name:sYr,其中传入了sYr和年份值。在FeedItem创建过程中,这些值看起来像:'values':[sYr,eYr]我本以为我已经尝试过这些,但它似乎与所有其他更改一起工作。我只需要创建新的FlattedDataset和FeedItems(并删除旧的FeedItems),然后用新值更新图表

var oModel = new JSONModel("ByYear_sum.json");
sap.ui.model.FilterOperator.EQ, filterText);    

var oDataset = new FlattenedDataset({
dimensions: [{
        name: "Month",
        value: "{month}"
        }],
 measures: [{
      name: "Start Year",
      value: "{current}"
    },{
      name: "End Year",
      value: "{previous}"
    }],
data: {
          path: "/bullet"
          filters: [oFilter]
        }
    });
oVizFrame.setDataset(oDataset);
oVizFrame.setModel(oModel);

oVizFrame.setVizProperties({
    plotArea: {
        dataLabel: {
            visible: true,
            formatString: '#,##0'
        }
    },
    valueAxis: {
        title: {
            visible: false
        }
    },
    legend: {
        title: {
            visible: false
        }
    },
    title: {
        visible: true,
        text: 'Year Comparison'
    }
});

var feedValueAxis = new FeedItem({
      'uid': "valueAxis",
      'type': "Measure",
      'values': ["Start Year", "End Year"]
    }),
   feedCategoryAxis = new FeedItem({
      'uid': "categoryAxis",
      'type': "Dimension",
      'values': ["Month"]
    });