我遇到的情况是我正在查找的信息,每个记录都有其自己的指标。因此,指标/阈值包含在表中并分配给变量。为了以它们自己的格式正确显示这些内容(即Red Threshold = Red),我需要能够对该变量运行If / Then或Switch语句。这就是我编写的测试代码:
switch (true) {
case (txtYel_Threshold): // represents for this one test: 97.7 > 97 && 97.7 < 98
ctx.CurrentItem.Comments = '<div style="display:block; width:110px;">YELLOW</div>';
break;
default:
ctx.CurrentItem.Comments = '<div style="display:block; width:110px;">Did not work</div>';
break;
}
[不幸的是,javascript无法识别txtYel_Threshold变量内的文本。如果我键入该语句,则效果很好,但尝试将变量与其中的语句一起使用时,效果不佳。我究竟做错了什么?是否有一种使用变量的方法(同样,因为每个记录都有自己的度量标准,因此不能直接用代码编写)?
非常感谢您的协助或反馈!谢谢。
这就是我所做的,也许有更好的方法。此方法有效,但不允许我使用变量代替运算符(而不是“ 1> 0”,我需要使用“ var1 var2 var3”之类的东西,因为指标不同。在某些情况下,其中1为红色(坏),其他为1则为绿色(好)。
// YELString includes statement such as '> 97 and < 98'
var YELString = ctx.CurrentItem.Yellow_Threshold;
var YELString = YELString.replace(/\and/g, "&&");
var YELArray = new Array();
YELArray = YELString.split(" ");
// GRNString includes statement such as '>= 98'
var GRNString = ctx.CurrentItem.Green_Threshold;
var GRNArray = new Array();
GRNArray = GRNString.split(" ");
// REDString includes statement such as '< 97'
var REDString = ctx.CurrentItem.Red_Threshold;
var REDArray = new Array();
REDArray = REDString.split(" ");
switch (true) {
case (numCurrentMetric == "100" || numCurrentMetric >= GRNArray[1]):
ctx.CurrentItem.Comments = 'Green';
break;
case (numCurrentMetric < REDArray[1]):
ctx.CurrentItem.Comments = 'Red';
break;
case (numCurrentMetric > YELArray[1] && numCurrentMetric < YELArray[4]):
ctx.CurrentItem.Comments = 'Yellow';
break;
default:
ctx.CurrentItem.Comments = 'NONE';
break;
}
再次感谢您的协助。