如何根据绑定的json模型中的属性值设置甘特图形状的填充颜色?
这是我用来配置sap.gantt.config.Shape的代码: -
var oRectangle = new sap.gantt.config.Shape({
key: "Rectangle",
shapeDataName: "schedule",
shapeClassName: "sap.gantt.shape.Rectangle",
shapeProperties: {
time: "{startTime}",
endTime: "{endTime}",
height: 32,
fill: "green",
title: "{name}",
level: 0
}
});
我想解决的用例是: -
如果有4个或更多时间表,则用绿色填充形状,否则填充黄色。
我已经尝试过表达式绑定,如:
fill: "{= ${data>/schedule}.length > 4 ? 'green' : 'yellow' }"
但是没有给出任何结果,并用默认的黑色填充形状。
还有其他方法可以实现吗?
另外,有没有一种方法可以在XML视图中配置甘特图形状,而不是在控制器中进行所有这些配置?
答案 0 :(得分:0)
从形状定义中删除属性。 在定义oRectangle之前,请输入以下代码段:
sap.ui.define(["sap/gantt/shape/Rectangle"], function (Rectangle) {
var shapeRectangle = Rectangle.extend("sap.test.shapeRectangle");
shapeRectangle.prototype.getFill = function (oRawData) {
return oRawData.color;
};
return shapeRectangle;
}, true);
之后,您必须为数据模型中的订单提供与startTime,endTime等相同级别的属性颜色...