2016-08-03 2 views
4

SAPUI5 프레임 워크의 VizFrame 컨트롤에 문제가 있습니다. 두 개의 Y 축이있는 복잡한 차트에 일부 데이터를 표시하려고합니다. 내 데이터 모델은 다음과 같습니다 : X 축에 대한 ID를 사용하는 동안VizFrame 여러 Y 축이있는 차트 결합

{ 
     "d" : { 
     "results" : [ 
      { 
      "DataA" : "2", 
      "DataB" : "4", 
      "Id" : "1", 
      }, 
      { 
      "DataA" : "3", 
      "DataB" : "2", 
      "Id" : "2", 
      } 
     ] 
    } 
} 

내가 오른쪽 하나 왼쪽 Y 축 및 DataB에의 dataa을 표시했습니다. 이것은 VizFrame 유형에 문제없이 작동합니다 : dual_linedual_column.

저는 데이터를 막대 (Y1의 DataA)와 줄 (Y2의 DataB)로 표시하는 방법을 발견했습니다. 현재 코딩 방법은 다음과 같습니다.

var oModel = new sap.ui.model.json.JSONModel(); 

     oModel.loadData("data.json"); 

     var oDataset = new sap.viz.ui5.data.FlattenedDataset({    
      dimensions: [{ 
       axis : 2, 
       name : oLocText.getText('Id'), 
       value : "{Id}" 
      }],   
      measures : [{ 
        group : 1, 
        name : DataA, 
        value : '{DataA}' 
       },{ 
        group : 2, 
        name: DataB, 
        value: '{DataB}' 
       }], 
      data : { 
       path : "/d/results" 
      } 
     }); 

     oVizFrame.setDataset(oDataset); 
     oVizFrame.setModel(oModel); 
     oVizFrame.setVizType('combination'); 

     oVizFrame.setVizProperties({ 
      title: { 
        visible: true, 
        text: "Combined" 
       },    
      plotArea: { 
       colorPalette : d3.scale.category20().range(), 
      }}); 

     var feedValueAxis = new sap.viz.ui5.controls.common.feeds.FeedItem({ 
       'uid': "primaryValues", 
       'type': "Measure", 
       'values': [ DataA , DataB] 
      }), 
      feedCategoryAxis = new sap.viz.ui5.controls.common.feeds.FeedItem({ 
       'uid': "axisLabels", 
       'type': "Dimension", 
       'values': [ Id] 
      }); 

     oVizFrame.addFeed(feedValueAxis); 
     oVizFrame.addFeed(feedCategoryAxis); 

감사합니다.

답변

0

시도하십시오 :

var feedValueAxis1 = new sap.viz.ui5.controls.common.feeds.FeedItem({ 
       'uid': "valueAxis", 
       'type': "Measure", 
       'values': [ DataA ] 
      }), feedValueAxis2 = new sap.viz.ui5.controls.common.feeds.FeedItem({ 
       'uid': "valueAxis2", 
       'type': "Measure", 
       'values': [DataB] 
      }), 

이 자동으로 plotDataA 바 등 left axisDataB에 대한 행으로 rightaxis에 대한 것입니다.

이중 결합이 나는 당신의 질문은 여전히 ​​관련이 있는지 알고 SAPUI5 1.40.

0

에서하지는부터 사용할 것을주의하세요. 귀하의 질문에 바로 바/라인으로 측정 값을 표시하는 것이 좋습니다. I는 유사한 문제를 가지고 있었고, I는 plotArea의 dataShape 속성을 설정하여 그것을 해결 :

oVizFrame.setVizProperties({ 
    plotArea: { dataShape : {primaryAxis : ['bar','bar','bar'], 
          secondaryAxis : ['line', 'line', 'line']}} 
}); 

각 축의 3 개 측정의 최대 축 1과 2 축에 줄로 바대로 그려 질 것이라고 예에서. 한번 코딩을 보게되면 바 대 라인을 바꿀 때 어떻게해야하는지 알 것입니다. 하나의 주석 : 여기서 'bar'와 'line'만 허용됩니다 (문서와 소스 코드를 확인했습니다). 감사합니다. 세바스찬