OBIEE 12c使用CASE语句在表格列动态展示图片失效解决方案咨询
OBIEE 12c 表格列动态展示图片实现方案
原代码失效核心原因:你同时配置了Icon列为Image URL数据格式,又在公式中返回带<img>标签的HTML内容,两种渲染逻辑冲突导致无法正常展示图片。
方案1:沿用当前Image URL配置(最简洁)
你已经将列设置为Image URL格式时,OBIEE会自动将列返回值作为图片路径渲染,不需要额外拼接HTML标签,直接修改Icon列公式为如下内容即可:
CASE WHEN "TD_CITY"."Temperature" > 35 THEN 'hot.jpg' WHEN "TD_CITY"."Temperature" <= 35 THEN 'moderate.jpg' END
注意事项:
- 如果图片实际存放在OBIEE公共静态资源目录
analyticsRes下,需要填写完整相对路径,例如'/analyticsRes/hot.jpg' - 确认
"TD_CITY"."Temperature"字段为数值类型,避免字符串和数值比较导致逻辑判断错误
方案2:HTML格式实现(可自定义图片属性,替代方案)
如果需要自定义图片的宽高、悬浮提示、样式等属性,可以改用该方案:
- 先修改Icon列的数据格式:进入
Column Properties -> Data Format,将Treat Text As选项从Image URL改为HTML - 修改列公式为如下内容,支持自定义
<img>标签属性:
CASE WHEN "TD_CITY"."Temperature" > 35 THEN @html'<img src="hot.jpg" width="32" height="32" title="高温">' WHEN "TD_CITY"."Temperature" <= 35 THEN @html'<img src="moderate.jpg" width="32" height="32" title="温度适宜">' END
生效排查步骤
- 修改完成后先清除浏览器缓存和OBIEE服务端临时缓存,再预览报表,避免旧资源残留导致展示异常
- 可以先在公式中固定写死一个图片路径,测试列是否可以正常展示图片,排除路径错误问题后再加入CASE判断逻辑
- 直接在浏览器地址栏输入图片的完整访问路径,确认图片可以正常加载
内容的提问来源于stack exchange,提问作者ZEESHAN
相关产品推荐
相关产品推荐

