Sapui5 如何对从OData接收到的值执行加法或减法等数学函数?

Sapui5 如何对从OData接收到的值执行加法或减法等数学函数?,sapui5,Sapui5,我的odata正在从CDS视图返回以下值: 投资完成=18和 总收入=10 我想从这些值中计算利润,并将其存储在可变利润=投资完成-总收入中,以便在视图中使用它来显示该值。有什么帮助吗?我如何在控制器中执行此计算 提前发送 我建议最好在后端进行计算。 如果你必须在前端完成,没问题。 检查以下代码: var fnSuccess = function(oData,oResponse){ var TabData = { Data : [] }; var DataArr; for(i=0;i&

我的odata正在从CDS视图返回以下值:

投资完成=18和 总收入=10

我想从这些值中计算利润,并将其存储在可变利润=投资完成-总收入中,以便在视图中使用它来显示该值。有什么帮助吗?我如何在控制器中执行此计算


提前发送

我建议最好在后端进行计算。 如果你必须在前端完成,没问题。 检查以下代码:

var fnSuccess = function(oData,oResponse){
var TabData = {
    Data : []
};
var DataArr;

for(i=0;i<oData.results.length;i++){
  DataArr = {
    profit : oData.results[i].investmentDone - oData.results[i].totalRevenue,
    investmentDone : oData.results[i].investmentDone,
    totalRevenue   : oData.results[i].totalRevenue
 }
 TabData.Data.push(DataArr);
}

在此代码之后,只需将此数据绑定到JSON模型并将模型设置为表。

如果您在UI层上计算利润,理想的方法是使用自定义格式化程序,因为这是推荐的方法。

您可以通过添加以下代码来完成此操作

对于XML视图

对于格式化程序代码,创建一个新文件model/Formatter.js

sap.ui.define([], function () {
    "use strict";
    return {
        calcProfit: function (iInvestmentDone, iTotalRevenue) {
                return (iInvestmentDone - iTotalRevenue);

        }
    };
});

谢谢,伙计,成功了。只有一个问题如果你能帮我更多的忙,你能告诉我如何使用IIInvestmentDone-iTotalRevenue的这个值来设置进度指示器控件中的进度颜色吗?不客气。若要在index.html中也执行此操作,请将其添加到引导声明中以启用复杂绑定,否则%符号将不可见:data sap ui CompatiVersion=edgeI使用odata模型
sap.ui.define([
    "sap/ui/core/mvc/Controller",
    "sap/ui/model/json/JSONModel",
    "sap/ui/demo/wt/model/formatter"
], function (Controller, JSONModel, formatter) {
    "use strict";
    return Controller.extend("sap.ui.demo.wt.controller.InvoiceList", {
        formatter: formatter,
        onInit : function () {

            ...

        }
    });
});
sap.ui.define([], function () {
    "use strict";
    return {
        calcProfit: function (iInvestmentDone, iTotalRevenue) {
                return (iInvestmentDone - iTotalRevenue);

        }
    };
});