如何将逻辑语句引入 XML 视图或如何更改 Table 中某些项目的展示方式

How to either introduce an an logic statement into XML-views or how to change the way certain items of Table are being Showcased

我有以下Table,如您所见,一个Name可以有多个值,显示为一个块。我希望它看起来像这样:如果一个名称有多个值,则值应该内联显示。

查看部分:在 XML 中完成,可以访问模型数据。在这种情况下: 型号>名称和型号>值。模型中的数据以 Table.

中的方式表示

我不想更改数据在模型中的显示方式,但是,我希望视图部分看起来有所不同。

我尝试了什么:想要改变数据在模型中的显示方式,但意识到,模型中的数据被用于不同的情况,改变它可能会导致更多问题

如何将一些逻辑引入 XML 或另一种显示数据的方式?

如果您使用的是响应式 table (sap.m),则列有 "merge duplicates" 属性。这是一个例子:

Merged Cells Table

我想你正在寻找 this (conditional binding)

new Text({"visible" : "{= ${status} === 'critical' && ${amount} > 10000 }"});

这可用于简单检查(布尔值、数组长度、值大或小等)。

如果您的绑定需要更高级的逻辑,您应该使用格式化程序,请查看 here

// In view
<ObjectStatus text="{path: 'invoice>Status', formatter: '.formatter.statusText' }"/>
// In formatter
statusText: function (sStatus) {
        var resourceBundle = this.getView().getModel("i18n").getResourceBundle();
        switch (sStatus) {
            case "A":
                return resourceBundle.getText("invoiceStatusA");
            case "B":
                return resourceBundle.getText("invoiceStatusB");
            case "C":
                return resourceBundle.getText("invoiceStatusC");
            default:
                return sStatus;
        }
    }