2020-09-09 09:33发布
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
大家好,
我对UI5开发很陌生。
我需要在单击按钮时更改viz flex图表的度量定义,因此我尝试通过根据条件从controller.js对其进行更改来做到这一点。 但是我不确定如何从controller.js中完成。
或者我应该显示多个具有不同度量定义的图表,并使用控制器显示/隐藏它们。
请让我知道如何实现。
我必须通过单击按钮来更改图像中突出显示的度量。
这就是我显示图表的方式。
在运行时更新度量/维度绑定,意思是:
1。 您必须通过调用
vizFrame.destroyFeeds();销毁绑定到vizFrame的提要和数据集; vizFrame.destroyDataset();
2。 重新定义vizFrame的数据集和feed项目。 如果将oData用作数据源,则需要触发一个新批处理。
3。 然后通过调用
vizFrame.vizUpdate({data:newDataset,feeds:newFeeds})
您好,@ Chapman Wong,重新绑定并引用它们回到vizFrame 帮助,
它仍然无法正常工作,请提出建议。
1。 错误提示是什么? -没有错误,只是图例没有更改,它们与"实际"和"预算"保持不变。
2。 我用了oVIzFrame而不是this.oVizFrame。
3。 尝试在Feed部分之前调用setData()和setModel()。
下面是我当前的代码。
var oVizModel = new sap.ui.model.json.JSONModel(); var oVizFrame = that.oVizFrame = that.getView()。byId(" idVizFrame"); oVizFrame.destroyFeeds(); oVizFrame.destroyDataset(); oVizModel.setData(objItem); oVizFrame.setModel(oVizModel); feedValueAxis = new sap.viz.ui5.controls.common.feeds.FeedItem({ " uid":" valueAxis", " type":" Measure", "值":["实际"] }), feedValueAxis2 =新的sap.viz.ui5.controls.common.feeds.FeedItem({ " uid":" valueAxis2", " type":" Measure", "值":["优先级"] }), feedCategoryAxis = new sap.viz.ui5.controls.common.feeds.FeedItem({ " uid":" categoryAxis", " type":"维度", "值":["净贸易销售额"] }), oVizFrame.setVizProperties({ plotArea:{ isFixedDataPointSize:true, 窗口:{开始:" firstDataPoint",结束:" lastDataPoint"}, dataLabel:{visible:true} }, valueAxis:{ 可见:正确, 标签: { }, 标题:{visible:true} }, valueAxis2:{ 可见:正确, 标签: { }, 标题:{visible:true} }, timeAxis:{ 标签: { }, 标题:{visible:false}, 间隔:{unit:''} }, 标题:{visible:false}, 互动:{syncValueAxis:false} }); oVizFrame.addFeed(feedValueAxis); oVizFrame.addFeed(feedValueAxis2); oVizFrame.addFeed(feedCategoryAxis);
正如您所说的,新的度量将被引入/绑定到图表,您需要一个用于vizFrame的新数据集。
1。 您需要一个全新的数据集,其中包括新的度量和您选择的维度。 如果使用oDatamodel作为数据源,则应该从后端获取新的元数据。 如果您使用FlattenedDataset,则应该定义新的flattenedDataset并将其绑定到vizFrame。
2。 尝试
oVizFrame.vizUpdate({'data':'newDataset'})
也尝试过此方法,但无法正常工作,我认为这里缺少一些小东西。 ..
请检查 https://jsbin.com/puvigivetu/edit?html, 输出。
_initialdataLoadSegmentGraphEBITFY-用于图形的初始加载。
_initialdataLoadSegmentGraphEBITFY:函数(数据,oResponse){ 那=这个; var obj = JSON.parse(oResponse.body); var oData = {}; var objItem = new Object(); objItem.count = []; oData.results = obj.d.results; $ .each(oData.results,function(i,item){ item.index = i + 1; item.expand = false; item.dirtyState = false; item.readOnly = false; }); 对于(i = 0; i _dataLoadSegmentGraphEBITPriorMTD-在用户单击按钮时调用,需要在此函数本身中更改图例。 该方法已被使用,我需要根据我的要求更改此方法。 图例应更改为"实际"和"优先"。 _dataLoadSegmentGraphEBITPriorMTD:函数(数据,oResponse){ 那=这个; var obj = JSON.parse(oResponse.body); var oData = {}; var objItem = new Object(); objItem.count = []; oData.results = obj.d.results; $ .each(oData.results,function(i,item){ item.index = i + 1; item.expand = false; item.dirtyState = false; item.readOnly = false; }); 对于(i = 0; i
_dataLoadSegmentGraphEBITPriorMTD-在用户单击按钮时调用,需要在此函数本身中更改图例。
该方法已被使用,我需要根据我的要求更改此方法。 图例应更改为"实际"和"优先"。
_dataLoadSegmentGraphEBITPriorMTD:函数(数据,oResponse){ 那=这个; var obj = JSON.parse(oResponse.body); var oData = {}; var objItem = new Object(); objItem.count = []; oData.results = obj.d.results; $ .each(oData.results,function(i,item){ item.index = i + 1; item.expand = false; item.dirtyState = false; item.readOnly = false; }); 对于(i = 0; i
最多设置5个标签!
在运行时更新度量/维度绑定,意思是:
1。 您必须通过调用
2。 重新定义vizFrame的数据集和feed项目。 如果将oData用作数据源,则需要触发一个新批处理。
3。 然后通过调用
您好,@ Chapman Wong,重新绑定并引用它们回到vizFrame 帮助,
它仍然无法正常工作,请提出建议。
1。 错误提示是什么? -没有错误,只是图例没有更改,它们与"实际"和"预算"保持不变。
2。 我用了oVIzFrame而不是this.oVizFrame。
3。 尝试在Feed部分之前调用setData()和setModel()。
下面是我当前的代码。
正如您所说的,新的度量将被引入/绑定到图表,您需要一个用于vizFrame的新数据集。
1。 您需要一个全新的数据集,其中包括新的度量和您选择的维度。 如果使用oDatamodel作为数据源,则应该从后端获取新的元数据。 如果您使用FlattenedDataset,则应该定义新的flattenedDataset并将其绑定到vizFrame。
2。 尝试
也尝试过此方法,但无法正常工作,我认为这里缺少一些小东西。 ..
请检查 https://jsbin.com/puvigivetu/edit?html, 输出。
_initialdataLoadSegmentGraphEBITFY-用于图形的初始加载。
一周热门 更多>