优化报表布局以进行 HTML 输出(Visual Studio 报表设计器)

本主题说明如何对 ReportViewer Web 服务器控件中显示的位于 HTML 报表中的报表项进行分页和定位。如果要了解报表的 HTML 形式,此信息将非常有用。每次运行报表时,将重新生成 HTML 输出。内置的呈现扩展插件确定 HTML 输出,包括如何定位和设计报表项。内置的 HTML 呈现扩展插件不能自定义。您不能更改它产生的 HTML 标记或用其他实现形式替换现有的格式元素。

HTML 支持

HTML 4.0 报表符合 HTML 4.0 和 2 级级联样式表 (CSS2) 规范,但存在某些例外情况。所有 HTML 都是使用 UTF-8 编码生成的。

Note注意

本主题将引用报表元素。报表元素是报表定义语言 (RDL) 的一部分,该报表定义语言提供了报表结构的形式说明。RDL 的相关文档位于 SQL Server 2005 联机丛书中。

项的定位

若要以 HTML 格式输出报表,控件将创建一个 HTML 格式的表来包含每组报表项中的项。表中各项的位置与报表布局相同。如果某组报表项只包含一个报表项,则不使用表呈现报表项。所有位置和项的大小都以毫米 (mm) 表示。小于 0.2 mm 的大小和位置差异被视为 0 mm。

HTML 不支持项重叠。如果两个报表项重叠,会以不重叠的方式排列它们。这可能导致页面上这些项的显示位置与设计位置不同。在某些情况下,各个项在设计工具中似乎未重叠,但实际上却相互重叠。报表项的大小和位置属性将确定报表项的实际位置。为确定重叠项的位置,呈现扩展插件首先考虑这些项的 Top 元素的值,再考虑 Left 元素的值,最后考虑 ZIndex 的值。

分页

HTML 呈现扩展插件将页面呈现为单独的 HTML 页面(也称为“区域”),如下所示:

  • 如果下列项位于带有分页符的列表中或直接位于表体中,将呈现分页符:

    • PageBreakAtEndPageBreakAtStart 设置为 True 的矩形。

    • PageBreakAtEndPageBreakAtStart 设置为 True 的列表或列表组。

    • PageBreakAtEndPageBreakAtStart 设置为 True 的表或表组。表必须至少包含一个可见列。表组的所有父组必须可见。

    • PageBreakAtEndPageBreakAtStart 设置为 True 的矩阵或行组。

    • 包含上述任何项的子报表。

  • 开始时位于包含分页符的项之上的项将在页面上显示于分页符之前。

如前文所述,HTML 呈现扩展插件将尝试呈现各项中的所有分页符;但是,如果页面上包含分页符的两个项的位置相邻,则可能产生无法预知的结果。包含分页符的项以及表、矩阵、或矩形内所包含的项也可能产生无法预知的结果。

对于靠近包含分页符的项的任何项,如果其顶部位于包含分页符的项的底部之上,则这些项都将呈现在同一页上。例如,如果表末尾有一个分页符,而一个文本框紧邻该表右侧,那么该文本框与该表显示在同一页上;位于同一个表底部右下方的文本框将显示在下一页上。

HTML 呈现扩展插件还将根据报表的属性定义,在页面的大概高度处插入分页符。这主要是为了防止在呈现报表时,不包含分页符的大型表生成极大的 HTML 页面。

样式

样式元素按照 HTML 4.0 的 CSS 样式呈现。对于 HTML 4.0,将为每个报表项呈现一个 CSS 样式。样式名称在报表和子报表中是唯一的。下表说明 RDL 样式属性与 HTML 样式的对应关系。

RDL 样式 说明 HTML 4.0

BorderColor

边框的颜色。

border

BorderStyle

边框的样式。

border

BorderWidth

边框的宽度。

border

BackgroundColor

背景的颜色。

background-color

BackgroundImage

背景图像的 URL。

background-image

BackgroundRepeat

背景图像的重复模式。

background-repeat

FontStyle

字体样式(常规、斜体)。

font-style

FontSize

字号。

font-family

FontWeight

文本的粗细。

font-weight

TextDecoration

文本的效果(下划线、删除线)。

text-decoration

TextAlign

文本的水平对齐方式。

text-align

VerticalAlign

文本竖直对齐方式。

vertical-align

Color

文本的颜色。

color

PaddingLeft

左边框与文本之间的填充大小。

padding-left

PaddingRight

右边框与文本之间的填充大小。

padding-right

PaddingTop

上边框与文本之间的填充大小。

padding-top

PaddingBottom

下边框与文本之间的填充大小。

padding-bottom

LineHeight

文本行的高度。

Line-height

Direction

从右到左或从左到右。

DIR 属性

Language

文本语言。

LANG 属性

UnicodeBiDi

双向覆盖算法。

unicode-bidi

Note注意

HTML 呈现扩展插件将边框样式为 Double 且边框宽度小于 2 pt 的边框呈现为单线条。对于边框样式为 Double 的边框来说,边框宽度必须至少为 2 pt,才能显示出双线条。

另请参见

概念

将 ReportViewer 配置为进行远程处理
创建客户端报表定义 (.rdlc) 文件
ReportViewer Web 服务器控件和 Windows 窗体控件