怎样在报表中显示HTML/RTF内容系列-SSRS 2008中显示HTML内容
SSRS 2008中显示HTML内容?
在一些报表项目中需要使用到对HTML内容的展示,本系列主要阐述SSRS 2005中怎样显示HTML/RTF内容的主要步骤和实现方式。但是对于SSRS 2008已经支持的技术而言,本文将简述针对SSRS 2008对HTML内容的显示,在后续的系列中将重点阐述SSRS 2005中怎样处理和现实HTML/RTF内容。
测试数据表以及测试数据.
-----------------------------------------------------------------------
USE [TEST]
GO
/****** Object: Table [dbo].[TEST] Script Date: 10/15/2009 10:59:28 ******/
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[TEST]') AND type in (N'U'))
DROP TABLE [dbo].[TEST]
GO
USE [TEST]
GO
/****** Object: Table [dbo].[TEST] Script Date: 10/15/2009 11:00:06 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[TEST](
[ID] [int] NOT NULL,
[VALUE_TYPE] [nvarchar](20) COLLATE Chinese_PRC_90_CI_AI NULL,
[TEST_VALUE] [nvarchar](2000) COLLATE Chinese_PRC_90_CI_AI NULL,
CONSTRAINT [PK_TEST] PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/*
ID VALUE_TYPE TEST_VALUE
----------- -------------------- ------------------------------------------------------------
1 HTML <div><em>11111111</em></div><div>2<u>222222</u>2</div><div>333<span style="color: #ff0000">33333</span></div><div>4<strong>444</strong><strong style="background-color: yellow">444</strong><span style="background-color: yellow">4</span></div>
2 RTF {/rtf1/ansi/ansicpg1252/deff0/deflang1033{/colortbl;/red0/green0/blue0;}{/fonttbl{/f0/fswiss/fcharset1252 Times New Roman;}}{/*/generator CuteEditor 5.0;}/viewkind4/uc1/pard/cf1/f0/fs24/qj/b0/i0/ul 111/cf1/f0/fs24/qj/b0/i0/ulnone 222/par/cf1/f0/fs24/qj/b
*/
-----------------------------------------------
在SSRS 2008中TextBox属性中添加了新的HTML标签功能可以实现。具体实现方式如下(源于MSDN).
1) 创建报表,在报表中添加TextBox,并将TEST_VALUE的值赋给该TextBox.如图1所示.
图1 创建报表
2) 在TEST_VALUE的TextBox中点击右键,创建占位符(PlaceHolder),如图2所示。
图2 创建占位符
3) 设置占位符的Markup type属性为HTML - 将 HTML 标记解释为样式。
图3 设置HTML属性
4) 预览效果.如图4所示.
图4 预览报表
由此看出,对于SSRS 2008而言,显示HTML内容相对比较容易。因为SSRS 2008中,TextBox本身提供了对HTML内容的支持。
但是在SSRS 2005中,要显示HTML/RTF内容则没有这么轻松。在SSRS 2005中,TextBox不支持HTML/RTF内容的显示。所以,只能通过变通的方式来实现。其主要思路如下:
1) 将HTML内容存储为RTF格式的内容。
2) 将RTF格式的内容转换成IMG图形显示在Image报表项中。
本系列的后续文章中将详细介绍这两个步骤中使用的一些方法和技术。