2017-12-21 17 views
0

Ich versuche, zu generieren n nein. von Diagrammen basierend auf Konfigurationsdaten, die von einem Dienst gelesen werden. Hier ist meine Json StrukturSAPUI5 Binding-Pfad der XMLView-Aggregation für die übergeordnete Aggregation in der untergeordneten Aggregation

{ 
"opr": 
{ 
    "c1":{"data": [{"period": "Apr-16", 
      "bmx": "1.133", 
      "bsl": "0.083"}], 
           "props":{"title":"Monthly Production ","viztype":"dual_stacked_combination","dimension":[{"name":"period","value":"period"}], 
         "vizproperties":"{legendGroup :{layout :{position : 'bottom'},forceToShow: true,linesOfWrap: 2}}", 
         "measures":[ {"name":"BMX","value":"bmx"},  {"name":"BSL","value":"bsl"}], 
              "feeds":[{"uid":"valueAxis2","type":"Measure","values":"BMX"},{"uid":"valueAxis2","type":"Measure","values":"BSL" },{"uid":"categoryAxis","type":"Dimension","values":"period" }]}}, 
    "c2":{"data": [], 
           "props":{"dimension":[],"feeds":[],"measures":[]} 

Hier ist mein xmlviewcode

<HBox width="100%" items="{path:'infoChartModel>/opr',templateShareable:false}"> 
     <su:ChartContainer 
          showFullScreen="true" 
          showPersonalization="false" 
          autoAdjustHeight="false" 
          showZoom="false" 
          title="{infoChartModel>props/title}">       
          <su:content> 
           <su:ChartContainerContent icon="sap-icon://line-chart" title="Chart View"> 
            <su:content>        
             <viz:VizFrame width="100%" vizType='{infoChartModel>props/viztype}' 
             vizProperties="{infoChartModel>props/vizproperties}" feeds="{path:'infoChartModel>props/feeds',templateShareable:false}"> 
              <viz:dataset> 
               <viz.data:FlattenedDataset data="{infoChartModel>data}" 
               measures="{path:'infoChartModel>props/measures',templateShareable:false}" 
               dimensions="{path:'infoChartModel>props/dimension',templateShareable:false}" > 
                <viz.data:dimensions > 
                 <viz.data:DimensionDefinition name="{infoChartModel>name}" value="{parts:[{path:'infoChartModel>value'},{path:'infoChartModel>/opr/data'}],formatter:'.getDimVal'}" /> 
                </viz.data:dimensions> 
                <viz.data:measures> 
                 <viz.data:MeasureDefinition name="{infoChartModel>name}" value="{parts:[{path:'infoChartModel>value'},{path:'infoChartModel>/opr/data'}],formatter:'.getMeasureVal'}" /> 
                </viz.data:measures> 
               </viz.data:FlattenedDataset> 
              </viz:dataset> 
              <viz:feeds> 
               <viz.feeds:FeedItem uid="{infoChartModel>uid}" type="{infoChartModel>type}" values="{infoChartModel>values}" /> 
              </viz:feeds> 
             </viz:VizFrame> 
            </su:content> 
           </su:ChartContainerContent> 
         </su:content>  
         </su:ChartContainer> 
       </HBox> 

Die Herausforderung, die ich bin vor, wie die „Wert“ Eigenschaft der Dimension/Maßnahme Aggregation auf einen Wert von FlattenedDataset Daten zu binden. (von einem Elternteil). Das Problem der verschachtelten Aggregation bezieht sich auf den übergeordneten Wert der untergeordneten Aggregation.

Similar point is discussed here. (17: 51hrs Antwort vom Benutzer dlgrasse)

Vielen Dank im Voraus für jede Hilfe.

Antwort

0

Danke an alle. Löste es mit Factory-Funktion. Code wird geteilt here.

Verwandte Themen