优化报表布局以进行 HTML 输出(Visual Studio 报表设计器)
本主题说明如何对 ReportViewer Web 服务器控件中显示的位于 HTML 报表中的报表项进行分页和定位。如果要了解报表的 HTML 形式,此信息将非常有用。每次运行报表时,将重新生成 HTML 输出。内置的呈现扩展插件确定 HTML 输出,包括如何定位和设计报表项。内置的 HTML 呈现扩展插件不能自定义。您不能更改它产生的 HTML 标记或用其他实现形式替换现有的格式元素。
HTML 支持
HTML 4.0 报表符合 HTML 4.0 和 2 级级联样式表 (CSS2) 规范,但存在某些例外情况。所有 HTML 都是使用 UTF-8 编码生成的。
注意 |
---|
本主题将引用报表元素。报表元素是报表定义语言 (RDL) 的一部分,该报表定义语言提供了报表结构的形式说明。RDL 的相关文档位于 SQL Server 2005 联机丛书中。 |
项的定位
若要以 HTML 格式输出报表,控件将创建一个 HTML 格式的表来包含每组报表项中的项。表中各项的位置与报表布局相同。如果某组报表项只包含一个报表项,则不使用表呈现报表项。所有位置和项的大小都以毫米 (mm) 表示。小于 0.2 mm 的大小和位置差异被视为 0 mm。
HTML 不支持项重叠。如果两个报表项重叠,会以不重叠的方式排列它们。这可能导致页面上这些项的显示位置与设计位置不同。在某些情况下,各个项在设计工具中似乎未重叠,但实际上却相互重叠。报表项的大小和位置属性将确定报表项的实际位置。为确定重叠项的位置,呈现扩展插件首先考虑这些项的 Top 元素的值,再考虑 Left 元素的值,最后考虑 ZIndex 的值。
分页
HTML 呈现扩展插件将页面呈现为单独的 HTML 页面(也称为“区域”),如下所示:
如果下列项位于带有分页符的列表中或直接位于表体中,将呈现分页符:
PageBreakAtEnd 或 PageBreakAtStart 设置为 True 的矩形。
PageBreakAtEnd 或 PageBreakAtStart 设置为 True 的列表或列表组。
PageBreakAtEnd 或 PageBreakAtStart 设置为 True 的表或表组。表必须至少包含一个可见列。表组的所有父组必须可见。
PageBreakAtEnd 或 PageBreakAtStart 设置为 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 |
注意 |
---|
HTML 呈现扩展插件将边框样式为 Double 且边框宽度小于 2 pt 的边框呈现为单线条。对于边框样式为 Double 的边框来说,边框宽度必须至少为 2 pt,才能显示出双线条。 |
另请参见
概念
将 ReportViewer 配置为进行远程处理
创建客户端报表定义 (.rdlc) 文件
ReportViewer Web 服务器控件和 Windows 窗体控件