"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),然后将以下内容插入到<Body>节点前

<DataSources>
    <DataSource Name="DS_EMP">
      <ConnectionProperties>
        <DataProvider>System.Data.DataSet</DataProvider>
        <ConnectString>/* Local Connection */</ConnectString>
      </ConnectionProperties>
      <rd:DataSourceID>d01eef15-1518-4df0-a45a-a17d24570e3a</rd:DataSourceID>
    </DataSource>
  </DataSources>
  <DataSets>
    <DataSet Name="T_EMP">
      <Fields>
        <Field Name="EMPNO">
          <DataField>EMPNO</DataField>
          <rd:TypeName>System.String</rd:TypeName>
        </Field>
        <Field Name="EMPNAME">
          <DataField>EMPNAME</DataField>
          <rd:TypeName>System.String</rd:TypeName>
        </Field>
      </Fields>
      <Query>
        <DataSourceName>DS_EMP</DataSourceName>
        <CommandText>/* Local Query */</CommandText>
      </Query>
      <rd:DataSetInfo>
        <rd:DataSetName>DS_EMP</rd:DataSetName>
        <rd:SchemaPath>App_Code\DS_EMP.xsd</rd:SchemaPath>
        <rd:TableName>T_EMP</rd:TableName>
        <rd:TableAdapterFillMethod />
        <rd:TableAdapterGetDataMethod />
        <rd:TableAdapterName />
      </rd:DataSetInfo>
    </DataSet>
  </DataSets>

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

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

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

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

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

 

三、将报表嵌入到网页中

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

<%@ 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" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <rsweb:ReportViewer ID="ReportViewer1" runat="server" Width="100%" Height="100%">
        </rsweb:ReportViewer>
        <asp:ScriptManager ID="ScriptManager1" runat="server">
        </asp:ScriptManager>
    </div>
    </form>
</body>
</html>

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

<?xml version="1.0"?>
<!--
  For more information on how to configure your ASP.NET application, please visit
  http://go.microsoft.com/fwlink/?LinkId=169433
  -->
<configuration>
  <system.web>
      <httpHandlers>
          <add verb="*" path="Reserved.ReportViewerWebControl.axd" type = "Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
      </httpHandlers>
    <compilation debug="true" targetFramework="4.0">
      <assemblies>
        <add assembly="Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
        <add assembly="Microsoft.ReportViewer.Common, Version=10.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
        <add assembly="Microsoft.Build.Framework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
        <add assembly="System.Management, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
      </assemblies>
    </compilation>
    <pages controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID"/>
  </system.web>
</configuration>

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

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

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));

    }
}

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

 

 

 

 

时间: 2024-10-31 06:45:35

"RDLC报表"速成指南的相关文章

ASP.NET中动态控制RDLC报表

asp.net|动态|控制 在asp.net程序中,可以选择使用水晶报表,功能确实强大.但是web版的水晶报表好像存在版权的问题.如果所作报表不是复杂的一塌糊涂的话,可以使用微软自带的Rdlc报表. Rdlc优点: 1:Rdlc报表设计简单 2:结果存成xml,易于控制 3:导出格式作的很不错 这里所说的动态控制报表所指的是:在一些时候,制作了报表之后希望在运行中可以动态的做一些小修改,比如说列的位置,用户控制显示那些列等等. 控制方法,尝试了这么几种: 1:控制微软提供的报表对象的属性: 2:

ASP.NET MVC应用程序中如何展示RDLC报表

学习ASP.NET MVC这样久,在学习,练习与应用过程中,觉得很多知识与以前的ASP.NET多有区别,但是实现操作起来,细处又有许多相近的地方. 本篇跟大家一起学习RDLC报表,是在ASP.NET MVC应用程序中实现.在实现过程中,Insus.NET也将把一些常见的问题列举与提供解决方法. 首先我们在数据库准备数据,表,存储过程等,数据应用以前练习的数据,写一个存储过程好了. 在ASP.NET MVC应用程序目录结构下的Entities下,找到以前写好的一个Entity,添加一个方法即可:

RDLC 报表系列(四) 子报表的使用

一.写作前提 前面几篇中我讲了如何去实现一个RDLC报表.插入图片.参数传递及常用表达式的使用.这一节我们将focus on子报表的使用.假设有 一天,你的老板和你说,公司需要做所有员工的出出差记录,这时子报表的应用是一个不错的选择. 关于怎样创建一个RDLC报表等相关内容,前查看我之前的文章,这里就不在阐述了. 二.本文内容 1.RDLC报表模板的设计 2.Base的修改 3.调用生成报表 4.总结 三.RDLC报表模板设计 本篇要做的是一个含有子报表的报表,所以,最少我们需要两个报表模板,一

RDLC报表系列(三) 参数、常量及常用表达式的使用

一.写作前提 前两篇我们讲到了如何在RDLC中如何插入和使用图片,除了图片以外,在报表中我们往往需要使用一些特定格式或在特定的条件下使用 特定的数据,或对数据做下些处理,并且可能存在一些数据是要我们从ASP.NET程序提供的,所以这篇我们主要讲RDLC报表中如何使用参数 .表达式及常用常量. 由于最近项目比较紧,没有时间写过多复杂的东西,而群里的兄弟又比较想知道页首页尾及合并表头的设计,所以我把一个完事的设计 模板放在ReportTemplate文件夹中,提供给大家参考. 二.本文内容 1. 怎

RDLC 报表系列(二) 报表中插入图片

一.写作前提 原本的计划把在RDLC报表中插入图片的内容放到后期来讲,但是看到顶贴的朋友们对此内容的需求,所以我改变原来计划,把此节内容 提前来讲,希望能及时的给予你帮助. 二.本文内容 1. 在RDLC报表中插入图片 2. 总结 三.在RDLC报表中插入图片 首先我要声明,此篇我们是在([原创] RDLC 报表系列(一) 创建一个报表)文章的基础上来讲,如果还不了解的可以先看这篇文章. 下面我们就来谈一下怎么加入图片到RDLC报表中. 1. 首先我们在项目文件中新建一个images文件夹,他用

RDLC 报表系列(一) 创建一个报表

本文只代表作者在一定阶段的认识与理解. 一.写作前提 前一段时间写了一篇关于RDLC开发的示例文章,[原创] 在VS 2005 和 VS 2008 中使用RDLC使用免费报表,得到了群里很多兄弟的支持 ,这篇文章从大体上讲述了怎样用RDLC做报表开发,没有给出具体的开发步骤,因此我决定来写一个系列关于RDLC报表开发的文章,希望 对你有所帮助. 这个系列文章主要从实例的方式来说明怎么用Visual Studio 2008(2005也一样提供这个功能)做RDLC报表的开发,最后再对此系列做 总结,

OEA 框架中集成的 RDLC 报表介绍

之前 OEA 一直用着一个 Delphi 开发的报表,所以两年来我一直就想在 OEA 中构建一个纯 .NET 的报表模块,但是一想到要开发复杂的报表引擎和设计器就觉得麻烦.所以这事一直拖着.最近开始研究一些成熟的报表引擎,经过对比,还是发现微软的 RLDC 报表已经能满足我大多数需求.其中包括表格.矩阵.图表 等复杂控件,同时同样的报表格式在 B/S 模式下也可以直接使用,最新的 Tablix 控件非常灵活,能实现大多数表格样式.所以我决定不再费时费力去造一个轮子,而是直接把微软的 RDLC 报

请问rdlc报表windows如何部署啊?

问题描述 我使用rdlc报表做了一款windows应用,但是发布的时候提示缺少很多组件,请问如何在客户的电脑上快速部署啊?1.我使用的数据库是sqlserver2008,开发环境是vs2012:2.我给rdlc报表提供的数据源是datatable:从网上找了很多资料,发现都不太好用,请各位大侠指点迷津. 解决方案

c# vs2008 的.rdlc报表里面加入动态二维码怎么做

问题描述 c#vs2008的.rdlc报表里面加入二维码怎么做我做的是一个电子商务,订货系统,主要是想实现,送货完成后,通过打印上的二维码稍描,来确定订单送货已到,修改订单状态 解决方案