如何将图像嵌入到 Birt 报告中以根据列结果等于 1 还是 0 来显示图像?

How can I embed images into a Birt report to show an image depending on if the column result equals 1 or 0?

如何将图像嵌入到 Birt 报告中以根据结果等于 1 还是 0 来显示图像?

我尝试按照以下指南进行操作:

http://birtworld.blogspot.com/2010/09/birt-image-report-item.html

我无法在列值等于 1 时显示图像(复选框),而在列值等于 0 时显示另一个图像(未选中框)。

我试过使用以下表达式:

if( row["acceptsplititem"] == 1 ){
"checked-50x49.jpg";
}else if( row["acceptsplititem"] == 0 ){
"unchecked-50x49.jpg";
}

我尝试通过拖动图像报告项并从共享资源中的图像文件中选择来添加两个图像(选中和未选中),然后通过以下方式编辑图像的 URL: 属性 > 高级 > URL

if( row["acceptsplititem"] == 1 ){
"checked-50x49.jpg";
}else if( row["acceptsplititem"] == 0 ){
"unchecked-50x49.jpg";
}

我也尝试过之前 question/answer 关于 Whosebug 的建议:

Embedding an image in BIRT

但这两个图像都不显示。

Adding an image using Dynamic text

Embedding an image

哪里不对请大家指教

提前致谢,

斯图尔特

这是一个表达式,因此您不应在字符串文字后使用分号。 此外,该值可能不同于 0 或 1(例如 null),因此您还应该为“else”部分添加另一个图像文件名。

为了检查您的图像是否可以显示,您还应该使用常量表达式作为第一步:

常量表达式:

"check-50x49.jpg"

这应该显示“选中”图像。

接下来,表达式取决于值(假设你也有一个图像文件“other.jpg”:

if( row["acceptsplititem"] == 1 ) {
    "checked-50x49.jpg"
} else if( row["acceptsplititem"] == 0 ) {
  "unchecked-50x49.jpg"
} else {
  "unknown.jpg"
}

或者 - 稍微冗长一点:

var fname = "unknown.jpg";
if( row["acceptsplititem"] == 1 ) {
    fname = "checked-50x49.jpg";
} else if( row["acceptsplititem"] == 0 ) {
    fname = "unchecked-50x49.jpg";
}
fname

我发现通过插入图像然后从 属性 编辑器中选择可见性,您可以勾选隐藏元素并输入表达式:

row["preferred"]==0 

如果结果为 0,这将隐藏元素(勾选框)将另一个图像(划线框)放在同一行,表达式为:

row["preferred"]==1 

如果结果为 1,这将隐藏图像