Power BI Report Builder 的透明边框色错误排查

| PowerPlatform | 0 Reads

这次在本地预览 .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