亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 dataPointStyle 規則回調中獲取 SAPUI5 VizFrame 的 id

在 dataPointStyle 規則回調中獲取 SAPUI5 VizFrame 的 id

收到一只叮咚 2022-12-02 15:45:26
我通過循環訪問從我的服務vizframe獲得的響應來生成一些動態柱形圖。Odata我對圖表的要求之一是根據數據中的字段值以不同顏色顯示列。我們稱之為驗證狀態。對于如何在正常情況下通過使用該方法并為屬性setVizProperties設置規則來實現這一點,我有一個相當好的想法。dataPointStyle如果我對所有圖表和所有值都有相同的標準,它仍然是可能的。但事實并非如此,因為我需要單獨檢查每條記錄以確定其狀態。所以我想到了使用dataPointStyle. 但這里的問題是,雖然它給了我上下文,但它沒有告訴我這個回調是從哪個圖表觸發的。我的想法是,如果我得到圖表名稱或它的參考,那么我就可以訪問它的模型并確定顏色。因此,如果我能以某種方式獲得vizframe觸發回調的參考,它將解決我的問題。callback 說明: function (data, extData) {...} => true|false 判斷給定數據是否匹配規則的函數。參數:data是一個對象,所有綁定的字段id為鍵,對應的值為值。將它視為包含您在datapoint mouseover tooltip. 如果在FlatTableDataset上下文字段中設置了未綁定的維度或度量,則相關的鍵/值對也將包含在該參數中。 extData是一個對象,所有其他測量字段與當前數據點在同一行。度量 ID 作為鍵,對應的值作為值。它有助于比較不同措施之間的價值。我的數據看起來像這樣:[{    "RunLogId": "0000000040",    "RuleId": "00016",    "CreatedOn": "2020-07-21",    "CreatedAt": "09:44:35",    "NAV_SUBSCRIBED_LOGS": {      "results": [        {          "RunLogId": "0000000040",          "Sequence": "00001",          "RuleId": "00016",          "Variation": "-3.94",          "ValidationStatus": "F",          "Dimension": "ABC"        },        {          "RunLogId": "0000000040",          "Sequence": "00002",          "RuleId": "00016",          "Variation": "1.04",          "ValidationStatus": "S",          "Dimension": "DEF"        }      ]    }  },  {    "RunLogId": "0000000033",    "RuleId": "00014",    "CreatedOn": "2020-07-15",    "CreatedAt": "11:10:09",    "NAV_SUBSCRIBED_LOGS": {      "results": [        {          "RunLogId": "0000000033",          "Sequence": "00001",          "RuleId": "00014",          "Variation": "-2.36",          "ValidationStatus": "F",          "Dimension": "ABC"        },        {          "RunLogId": "0000000033",          "Sequence": "00002",          "RuleId": "00014",          "Variation": "-5.05",          "ValidationStatus": "F",          "Dimension": "DEF"        }      ]    }  }]
查看完整描述

1 回答

?
至尊寶的傳說

TA貢獻1789條經驗 獲得超10個贊

不確定我是否理解正確,但無論如何我都會試一試。如果我錯了,請告訴我。


您在循環中創建圖表。您想要在回調中訪問特定圖表。


你為什么不訪問oVizFrame你的回調?


首先,我會將 for 循環替換為forEach. forEach為數組中的每個元素調用給定函數:


aSubscriptions.forEach(function(oSubscription) {

    const oModel = new JSONModel();

    const chartData = oSubscription.NAV_SUBSCRIBED_LOGS.results;


    ...

}

在 for 循環中,您的變量被重用。在forEach函數中,為每個項目創建一個新范圍。因此,當您oVizFrame在回調中訪問時,它與oVizFrame您之前聲明的相同。


然后你應該能夠oVizFrame在你的回調中訪問。


oVizFrame.setVizProperties({

    plotArea: {

        dataPointStyle: {

            "rules": [{

                callback: function(oContext, extData) {

                    // >>>>>>>> Do something with oVizFrame <<<<<<<<

                    that.checkValue(oContext, "S");

                },

                ...

            }, {

                callback: function(oContext, extData) {

                    // >>>>>>>> Do something with oVizFrame <<<<<<<<

                    that.checkValue(oContext, "F");

                },

                ...

            }],

            ...

        }

    }

});


查看完整回答
反對 回復 2022-12-02
  • 1 回答
  • 0 關注
  • 107 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號