从行初始化 - Birt
Initialize from row - Birt
我想从数据集中获取值并将其拆分,行中的每个单元格我想设置拆分字符串中的并行信息。
可能吗?
var aud=this.getRowData().getColumnValue("someString").toString().split(",");
for (var i=0;i<this.getRowData().getColumnCount();i++)
{
HERE I WANT TO SET SOMESTRING[0]
}
不,这是不可能的这种方式。但是你可以用不同的方式来做。
您的“Table”需要足够的列来容纳所有值。
对于详细信息行中的每个单元格,添加一个“动态文本”项。该值是一个 Javascript 表达式。使用这样的表达式:
getColValue(row, 1)
将每个单元格中的数字 1 替换为相应的列号。
像这样定义一个函数(在报表的初始化事件中):
function getColValue(row, col) {
// Handle undefined, empty or null strings gracefully.
if (!row["someString"]) {
return null;
}
var aud=row["someString"].toString().split(",");
if (col <= aud.length) {
return aud[col-1];
} else {
return null;
}
}
您也可以将 row["someString"]
传递给“动态文本”表达式中的函数,而不是传递 row
并在函数内部获取 row["someString"]
。
以类似的方式,您可以根据数据设置单元格的样式:使用项目的 onCreate
事件(单元格本身或单元格内的项目,具体取决于您要执行的操作)和输入这样的脚本:
styleCell(this, row, 1);
同样,将数字 1 替换为相应的列号。
然后可以将函数 styleCell 定义为(未经测试,但您明白了):
function styleCell(item, row, col) {
var style = item.getStyle();
var cond = someFunction(row, col);
// The columns of row ^^^ can be accessed as row["ColName"] here
if (cond) {
style.backgroundColor = "yellow";
}
}
我想从数据集中获取值并将其拆分,行中的每个单元格我想设置拆分字符串中的并行信息。 可能吗?
var aud=this.getRowData().getColumnValue("someString").toString().split(",");
for (var i=0;i<this.getRowData().getColumnCount();i++)
{
HERE I WANT TO SET SOMESTRING[0]
}
不,这是不可能的这种方式。但是你可以用不同的方式来做。
您的“Table”需要足够的列来容纳所有值。
对于详细信息行中的每个单元格,添加一个“动态文本”项。该值是一个 Javascript 表达式。使用这样的表达式:
getColValue(row, 1)
将每个单元格中的数字 1 替换为相应的列号。
像这样定义一个函数(在报表的初始化事件中):
function getColValue(row, col) {
// Handle undefined, empty or null strings gracefully.
if (!row["someString"]) {
return null;
}
var aud=row["someString"].toString().split(",");
if (col <= aud.length) {
return aud[col-1];
} else {
return null;
}
}
您也可以将 row["someString"]
传递给“动态文本”表达式中的函数,而不是传递 row
并在函数内部获取 row["someString"]
。
以类似的方式,您可以根据数据设置单元格的样式:使用项目的 onCreate
事件(单元格本身或单元格内的项目,具体取决于您要执行的操作)和输入这样的脚本:
styleCell(this, row, 1);
同样,将数字 1 替换为相应的列号。
然后可以将函数 styleCell 定义为(未经测试,但您明白了):
function styleCell(item, row, col) {
var style = item.getStyle();
var cond = someFunction(row, col);
// The columns of row ^^^ can be accessed as row["ColName"] here
if (cond) {
style.backgroundColor = "yellow";
}
}