Power BI Report Builder 的透明边框色错误排查
Copyright Notice: This article is an original work licensed under the CC 4.0 BY-NC-ND license.
If you wish to repost this article, please include the original source link and this copyright notice.
Source link: https://v2know.com/article/1319
这次在本地预览 .rdl 报表时,Power BI Report Builder 报了这个错误:
The value of the BorderColor property for the text box 'TaxCategoryExtensionCountReportTitle' is "#00ffffff", which is not a valid BorderColor.
表面看是某个标题文本框的问题,实际原因是 RDL 里给“无边框”的文本框写了一个透明颜色。
问题来源
RDL 里原本有类似这样的样式:
<Style>
<Border>
<Color>#00ffffff</Color>
<Style>None</Style>
</Border>
</Style>
这里的意思本来是:边框不可见,所以颜色也给透明。
但 Report Builder 的预览引擎并不接受 #00ffffff 作为合法的 BorderColor。它支持普通 RGB 色值,比如:
#003399
Black
Transparent
但 #00ffffff 是 ARGB 风格,前面的 00 表示 alpha 透明度。RDL 的 BorderColor 不接受这种带 alpha 通道的颜色,所以预览阶段直接判定报表定义无效。
为什么设计画面能打开,Preview 却失败
Report Builder 的设计器对 RDL 比较宽松,文件能打开、能显示设计画布。
但按 F5 预览时,会进入本地报表处理流程。这个阶段会更严格校验报表定义,所以才会报:
レポート '' の定義が無効です。
ローカル レポートの処理中にエラーが発生しました。
也就是说:能打开 RDL,不代表它一定能被预览或渲染。
修复方式
因为这些文本框本来就是无边框,最正确的做法不是换一个透明色,而是直接删除边框颜色,只保留:
<Style>
<Border>
<Style>None</Style>
</Border>
</Style>
这样语义更清楚:没有边框,因此不需要边框颜色。
最终修复
我把两个 RDL 里所有无边框文本框上的非法透明边框色都删掉了:
<Color>#00ffffff</Color>
同时确认没有残留:
#00ffffff
<Color>Transparent</Color>
修复后再预览,Report Builder 不再因为 BorderColor 拒绝处理报表定义。
经验总结
生成 RDL 时要注意:CSS 或 PDF 渲染里常见的 ARGB 色值,不能直接搬到 RDL 的 BorderColor 里。尤其是这种透明色:
#00ffffff
#00000000
在 RDL 里不一定合法。
如果边框样式是 None,最稳妥的写法是不要输出 <Color>。这比写透明色更符合 Report Builder 的处理模型。
This article was last edited at