UI5 - 如何调整堆积条形图中条形的高度

时间:2017-04-20 04:49:20

标签: javascript charts bar-chart sapui5

我在UI5中开发了一个堆积条形图。

它在PCIpad's Portrait方向上正常运行。但是当涉及到Ipad's landscape方向时,图表会变小并显示一个滚动条来访问位于图表底部的条形图。我不确定为什么堆积条形图不能动态调整条形高度。(如图所示)

enter image description here

我的观点:

<f:SimpleForm editable="true" layout="ResponsiveGridLayout"
id="OEEform" class="formTitleStyle" labelSpanL="6"
labelSpanM="6" adjustLabelSpan="false" emptySpanL="0"
emptySpanM="0" columnsL="2" columnsM="2">
<f:content>

<Label id="idPerformance" visible="true" text="Performance">
    <layoutData>
        <l:GridData span="L5 M5 S5" />
    </layoutData>
</Label>
<ProgressIndicator id="idPerformancePI" class="sapUiSmallMarginBottom"
    percentValue="0" showValue="true" state="None"
    displayValue="0%" width="100%" />

<Label id="idAvailability" visible="true" text="Availability">
    <layoutData>
        <l:GridData span="L5 M5 S5" />
    </layoutData>
</Label>
<ProgressIndicator id="idAvailabilityPI"
    class="sapUiSmallMarginBottom" percentValue="0"
    displayValue="0%" showValue="true" state="None" width="100%" />

<core:Title />

<Label id="idQuality" visible="true" text="Quality">
    <layoutData>
        <l:GridData span="L5 M5 S5" />
    </layoutData>
</Label>
<ProgressIndicator id="idQualityPI" class="sapUiSmallMarginBottom"
    percentValue="0" displayValue="0%" showValue="true"
    state="None" width="100%" />

<Label id="idOEE" visible="true" text="OEE">
    <layoutData>
        <l:GridData span="L5 M5 S5" />
    </layoutData>
</Label>
<ProgressIndicator id="idOEEPI" class="sapUiSmallMarginBottom"
    percentValue="0" displayValue="0%" showValue="true"
    state="None" width="100%" />


</f:content>
        </f:SimpleForm>


    <viz:Popover id="idPopOver"></viz:Popover>
    <viz:VizFrame id="idVizFrame" uiConfig="{applicationSet:'fiori'}"
         width='100%' vizType='stacked_bar'>
        <viz:dataset>
<viz.data:FlattenedDataset
    data="{/Rowsets/Rowset/0/Row}">
    <viz.data:dimensions>
        <viz.data:DimensionDefinition
name="Title" value="{Title}" />
        <!-- <viz.data:DimensionDefinition name="Staco" value="{Staco}" 
/> -->
        <viz.data:DimensionDefinition
name="Status" value="{Status}" />
        <!-- <viz.data:DimensionDefinition name="Fat Percentage" 
value="{Fat Percentage}" /> -->
    </viz.data:dimensions>
    <viz.data:measures>
        <viz.data:MeasureDefinition
name="Hours" value="{Hours}" />
    </viz.data:measures>
</viz.data:FlattenedDataset>
        </viz:dataset>
        <viz:feeds>
<viz.feeds:FeedItem uid="valueAxis"
    type="Measure" values="Hours" />
<viz.feeds:FeedItem uid="categoryAxis"
    type="Dimension" values="Title" />
<viz.feeds:FeedItem uid="color" type="Dimension"
    values="Status" />
<!-- <viz.feeds:FeedItem uid="color" type="Dimension" values="Fat 
    Percentage" /> 
<viz.feeds:FeedItem uid="waterfallType"
    type="Dimension" values="Type" /> -->
        </viz:feeds>
    </viz:VizFrame>

现在只有一种方法,当方向是横向时,我需要明确地降低条形的高度。

我在控制器中添加了以下代码(请参阅注释),我在这里为图表指定了属性,但不知何故它没有设置高度。

   oVizFrame.setVizProperties({

    valueAxis : {   
        title : {
            visible : true
        }
    },

    categoryAxis : {
        title : {
            visible : false
        },
        label:{
            visible:false
        }
    },


    legend: {
     title: {
         visible: false
     },
     label: {
         text: {
               positiveValue: "Hours"
         }
     }
    },

    plotArea:{
     dataLabel:{
    renderer: function(oParam){

     //alert(oParam.dataPointWidth + " -- " + oParam.ctx["Status"]);

    if(oParam.dataPointWidth > 300)
    {
        oParam.text = oParam.ctx["Status"] + " (" + oParam.val + ")";
    }
// Below code is not setting the height of the bar
    if (sap.ui.Device.orientation.landscape === true){
        oParam.dataPointHeight = 10;
    }
     },
     visible : true
     },
    dataPointStyle:{  //Allows to set color,legend and data label based on rules defined.
    'rules':[

我做错了什么?还有其他方法可以在条形图中调整条形高度吗?

1 个答案:

答案 0 :(得分:1)

如果您尝试以下内容会发生什么:

            oVizFrame.setVizProperties({
...
                           plotArea: {
                                 dataPointSize: {
                                       max: 400,
                                       min: 5
                            }

请参阅

中plotArea.dataPointSize.min的相应文件

Stacked Bar Chart

Chart Property Reference / Overview

如果你有很多酒吧,他们可能会收缩太多而变得难以理解。 在这种情况下,滚动条可能仍然是必要的。

相关问题