"RDLC报表"速成指南

RDLC报表是微软自家的报表,已经集成在vs2010中,相对水晶报表更轻量级,更重要的是:可直接在web项目中使用。

使用步骤:

一、创建DataSet

右击->Add New Item-> DataSet(本例中命名为DS_EMP),会出现以下界面:

然后右击->Add->DataTable,添加一个表,命名为T_EMP,然后添加二个列EMPNO,EMPNAME均为String型,完成后的样子类似下现这样:

注:如果机器上安装了BizTalk,DataSet打开后,可能是下面这样

这种编辑方式我个人觉得不方便,可以通过在DS_EMP.xsd上右击-->Open With,然后在弹出界面中,把DataSet Editor设置成默认编辑器。

二、创建RDLC报表

项目右击->Add New Item -> Report,添加报表,命名为Report_EMP.rdlc,这时会出现报表编辑界面,从工具箱中拖一个Table到报表空白区

这时会弹出一个选择DataSet的界面:

选择DS_EMP,然后点击"OK"关闭,这时报表布局上会出现一个网格

注:通常这个界面在绝大多数情况下,Data Source下拉框里并不能识别出当前项目中的数据集。这时,需要在解决方案rdlc文件上右击-->Open With-->XML(Text) Editor,直接编辑rdlc文件(报表rdlc文件其实就是一个xml),然后将以下内容插入到节点前

代码语言:javascript代码运行次数:0运行复制

System.Data.DataSet

/* Local Connection */

d01eef15-1518-4df0-a45a-a17d24570e3a

EMPNO

System.String

EMPNAME

System.String

DS_EMP

/* Local Query */

DS_EMP

App_Code\DS_EMP.xsd

T_EMP

注: App_Code\DS_EMP.xsd 这个节点中的SchemePath最好设置成相对路径,否则多人团队开发时,如果其它人跟你本机的物理路径不一致,DataSet定义有变化后(比如新增加了字段),在报表设计的Report Data面板中,无法通过右键->Refresh刷新DataSet.

然后再以正常方式双击rdlc报表打开即可看到左侧Report Data面板中多了一个数据集

鼠标定位到单元格上,注意右上角有一个小图标(如上图),点击这个图标,能列出数据集中的字段

将需要打印的列依次添加进来

再稍做些修饰,一个简单的报表设计就算完成了

三、将报表嵌入到网页中

创建一个aspx页,拖放一个ReportViewer到页面上,然后再拖放一个ScriptManager到页面上,最终的代码如下:

代码语言:javascript代码运行次数:0运行复制<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<%@ Register Assembly="Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"

Namespace="Microsoft.Reporting.WebForms" TagPrefix="rsweb" %>

同时web.config中也会发生一些变化:

代码语言:javascript代码运行次数:0运行复制

主要是system.web/httphandlers 以及 assemblies节点下多了一些内容

最后在default.aspx.cs里用代码弄点数据出来

代码语言:javascript代码运行次数:0运行复制using System;

using System.Data;

using Microsoft.Reporting.WebForms;

public partial class _Default : System.Web.UI.Page

{

protected void Page_Load(object sender, EventArgs e)

{

if (!IsPostBack)

{

FillDataToReport();

}

}

void FillDataToReport()

{

//造一些示例数据

DataTable dt = new DataTable();

dt.Columns.Add("EMPNO", typeof(string));

dt.Columns.Add("EMPNAME", typeof(string));

dt.Rows.Add("000", "菩提树下的杨过");

dt.Rows.Add("001", "张三");

dt.Rows.Add("002", "李四");

dt.Rows.Add("003", "王五");

//指定加载哪个报表,并填充数据

this.ReportViewer1.LocalReport.ReportPath = "Report_EMP.rdlc";

this.ReportViewer1.LocalReport.DataSources.Add(new ReportDataSource("T_EMP", dt));

}

} 浏览一下页面,就能看到在线报表了:

相关推荐

为什么说“南甜北咸,东辣西酸”_南甜北咸东辣西酸形成的原因是什么?分界线
本届世界杯最大黑马,这个国家的美食同样惊艳
365bet注册送

本届世界杯最大黑马,这个国家的美食同样惊艳

📅 08-28 👁️ 7570
男篮世界杯三大使就位, 中国篮球将如何书写「新」故事?