在BIRT中修改表的行数据

时间:2014-03-21 07:14:32

标签: javascript event-handling birt

我想更改表格行中存在的数据,我在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事件中编写此脚本。但它没有用。有什么想法吗?

2 个答案:

答案 0 :(得分:3)

您可以在数据元素的onRender事件中实现此功能(行元素上的):

var newval=this.getValue().toString().toUpperCase();
this.setDisplayValue(newval);

答案 1 :(得分:3)

我不确定你想要的最终结果是什么,但是当我想要修改一个值时我通常会做什么;是创建一个计算列。

在这个例子中,我在列( seAssignment )中有一个数值,我想显示一个不在数据库中的字符串值。我可以将其添加到我的表中,就像任何现有的数据列包括使用它来分组一样。

  • 打开大纲
  • 中的数据集
  • 点击Computed Column
  • 给它一个名字&数据类型(字符串)

表达

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"}