在sapui5中加载页面时,默认选择viz列图的第一个栏

时间:2015-01-05 14:03:03

标签: sapui5

我使用过viz图表库。我在列图上给出了一些向下钻取功能。为此,我必须选择图表的任何列以查看所选部分的详细信息(在同一页面中)。

现在我想自动选择列图的第一列/栏。这意味着当我进入图表页面时,应该选择第一个栏作为默认栏,并且所选栏的详细信息应该在那里。

请帮帮我们。

代码:

查看:

<viz:ui5.Column id="chart" selectData="goToDaily" width="auto">
                <viz:plotArea>
                <viz:ui5.types.VerticalBar colorPalette="#FFCC00"/>
            </viz:plotArea> 
                <viz:title>
                    <viz:ui5.types.Title text="Monthly">  
                    </viz:ui5.types.Title>  
                </viz:title>
                <viz:dataset>
                    <viz:ui5.data.FlattenedDataset id="fds1" >
                        <viz:dimensions>
                             <viz:ui5.data.DimensionDefinition id="dim"  axis="1"  name="Month" value="{name}">
                             </viz:ui5.data.DimensionDefinition>   
                        </viz:dimensions>
                        <viz:measures>
                            <viz:ui5.data.MeasureDefinition id="mea" name="Values" value="{value}"> 
                            </viz:ui5.data.MeasureDefinition >   
                        </viz:measures>
                    </viz:ui5.data.FlattenedDataset>
                </viz:dataset>
            </viz:ui5.Column>

控制器:

的OnInit:

JSONmodel = new sap.ui.model.json.JSONModel();
    data1 = [ {
        name : "Jan",           
        value : 100,
        },
        {
        name : "Feb",           
        value : 150,
        },
        {
        name : "March",
        value :120,
        }, 
        {
        name : "April",
        value : 200,
        }
        ];
    JSONmodel.setData(data1);
    sap.ui.getCore().byId("idPage3--chart").setModel(JSONmodel);

选择图表数据:

goToDaily:function(evt){
    sap.ui.getCore().byId("idPage3--chart").selection({ctx:[{dii_a1:1}]});   
}

我尝试选择月份2月作为默认选择,但无法选择它。

此致 Niket Talati

1 个答案:

答案 0 :(得分:0)

你的代码中有很多不正确的东西

  1. 您已为selectData指定了一个事件处理程序,但这显然只会在您第一次选择数据&#34;时触发。您永远不会在代码中触发事件以进行数据选择,因此只有在您手动单击列时才会触发事件处理程序

  2. 您似乎尝试从事件处理程序触发事件(相反,请参见上一点),但您从未实现过fireSelectData方法。

  3. 此外,您尝试选择的地图的签名不正确。 According to the API(格式不合适,我知道)你需要发送更多信息,例如:

  4.     // ...snip...
        var oSelection = {
            data : [
                {
                    target : oRect,
                    data   : [
                        {
                            ctx : {
                                path : {
                                    dii_a1 : 0,
                                    dii_a2 : 0,
                                    mg     : 0,
                                    mi     : 0
                                },
                                type : "Measure"
                            },
                            val : 100
                        }
                    ]
                }
            ],
            name : "selectData"
        };
        oYourChart.fireSelectData(oSelection);
        // ...snip...
    
    1. 如果您在使用XMLView时需要通过它获取元素,则应使用this.getView().byId("chart")代替
    2. 希望以上有所帮助!