我想更改表格行中存在的数据,我在BIRT中用于分组目的。我知道如何检索值,但我想更改渲染值,我想要转换字符串。我在官方网页here上查看了一个示例:
if (this.getRowData().getExpressionValue(3) > 100)
this.getStyle().backgroundColor="red";//This will only change the row instance
这有助于更改文本的样式,但我想更改文本而不是样式
var t = this.getRowData().getExpressionValue("row[colname]");
t= t.toUpperCase(); //any string transformation
this.valueExpr = t; //this is not working
那么如何为行分配新的字符串。我在行的onRender事件中编写此脚本。但它没有用。有什么想法吗?
答案 0 :(得分:3)
您可以在数据元素的onRender事件中实现此功能(行元素上的不):
var newval=this.getValue().toString().toUpperCase();
this.setDisplayValue(newval);
答案 1 :(得分:3)
我不确定你想要的最终结果是什么,但是当我想要修改一个值时我通常会做什么;是创建一个计算列。
在这个例子中,我在列( seAssignment )中有一个数值,我想显示一个不在数据库中的字符串值。我可以将其添加到我的表中,就像任何现有的数据列包括使用它来分组一样。
表达
if (row["seAssignment"] ==0){
"In use"
}else if (row["seAssignment"] ==1){
"In stock"
}else if (row["seAssignment"] ==2){
"Retired (or consumed)"
}else if (row["seAssignment"] ==3){
"Awaiting receipt"
}else if (row["seAssignment"] ==4){
"Return for maintenance"
}else if (row["seAssignment"] ==5){
"Return to supplier"
}else if (row["seAssignment"] ==6){
"Missing"
}else {
"Undefined"}