报表以前我只做过水晶报表,但是最近发现家里的VS上面居然没有水晶报表,发现水晶报表现在貌似已经不能完全免费的使用了,为了保险起见,就用了VS自带的RDLC报表,用完感觉其实也是够用的嘛~

建立一RDLC报表的过程主要是:

1、新建一个windows窗口,拖一个Reportview控件在上面,用来显示报表

2、新建一个类,构成数据源:

需要哪些字段,就在类中添加哪些,比如简单的如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; namespace land_useowner_db
{
class FarmerReportClass //农户数据源
{
public string farmerBM { get;set; }
public string farmerMC { get; set; }
public string farmerLXDH { get; set; }
public string farmerZJLX { get; set; }
public string farmerZJHM { get; set; }
public string farmerCBFDZ { get; set; }
public string farmerYZBM { get; set; }
public string farmerCBFCYSL { get; set; }
}
}

数据源字段设置好后就要添加到数据库中:》

选择新建好的数据源类:  

数据源添加好了,接下来就是给数据源赋予值了

3、新建一个报表

查看代码:

 using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms; using System.Data.OleDb;
using Microsoft.Reporting.WinForms; namespace land_useowner_db.统计报表
{
public partial class FarmerReport : Form
{
string strCBFBM;
string strCBFMC;
string filepath;
public FarmerReport(string CBFBM,string CBFMC,string path)
{
this.strCBFBM = CBFBM;
this.strCBFMC = CBFMC;
this.filepath = path;
InitializeComponent();
} private void FarmerReport_Load(object sender, EventArgs e)
{
#region test
//this.reportViewer1.LocalReport.ReportEmbeddedResource = "land_useowner_db.统计报表.Report1.rdlc";
//Microsoft.Reporting.WinForms.ReportParameter rp = new Microsoft.Reporting.WinForms.ReportParameter("cbfbm", strCBFBM);
//this.reportViewer1.LocalReport.SetParameters(new Microsoft.Reporting.WinForms.ReportParameter[] { rp });
//this.reportViewer1.RefreshReport(); //为报表浏览器指定报表文件 //this.reportViewer1.LocalReport.ReportEmbeddedResource = "report.Report1.rdlc"; //指定数据集,数据集名称后为表,不是DataSet类型的数据集
#endregion this.reportViewer1.LocalReport.DataSources.Clear();
this.reportViewer1.LocalReport.DataSources.Add(new Microsoft.Reporting.WinForms.ReportDataSource("land_useowner_db_FarmerReportClass", GetList())); //显示报表
this.reportViewer1.RefreshReport();
} /// <summary>
/// 获取打印的数据源(CBF表中)
/// </summary>
/// <returns></returns>
private List<FarmerReportClass> GetList()
{ //取得数据集
string sql = "select * from CBF where CBFLX='1' ";
sql += "and CBFBM= '" + strCBFBM + "'";
// 连接数据库
OleDbConnection connct = new OleDbConnection();
string oleDB = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filepath;
connct.ConnectionString = oleDB;
//创建命令
OleDbCommand command = new OleDbCommand(sql, connct);
//执行命令
OleDbDataAdapter dataAdapter = new OleDbDataAdapter(command);
DataTable table = new DataTable();
try
{
connct.Open();
dataAdapter.Fill(table); List<FarmerReportClass> list = new List<FarmerReportClass>();
FarmerReportClass stu = null;
foreach (DataRow row in table.Rows)
{
stu = new FarmerReportClass();
if (row.Table.Columns.Contains("CBFBM") && row["CBFBM"] != null && row["CBFBM"].ToString() != "")
{
stu.farmerBM = row["CBFBM"].ToString();
}
if (row.Table.Columns.Contains("CBFMC") && row["CBFMC"] != null && row["CBFMC"].ToString() != "")
{
stu.farmerMC = row["CBFMC"].ToString();
}
if (row.Table.Columns.Contains("LXDH") && row["LXDH"] != null && row["LXDH"].ToString() != "")
{
stu.farmerLXDH = row["LXDH"].ToString(); ;
}
if (row.Table.Columns.Contains("CBFZJLX") && row["CBFZJLX"] != null && row["CBFZJLX"].ToString() != "")
{
string zjlx = row["CBFZJLX"].ToString();
switch (zjlx)
{
case "": zjlx = "居民身份证"; break;
case "": zjlx = "军官证"; break;
case "": zjlx = "行政、企事业单位机构代码证或法人代码证"; break;
case "": zjlx = "户口簿"; break;
case "": zjlx = "护照"; break;
case "": zjlx = "其他证件"; break;
}
stu.farmerZJLX = zjlx;
}
if (row.Table.Columns.Contains("CBFZJHM") && row["CBFZJHM"] != null && row["CBFZJHM"].ToString() != "")
{
stu.farmerZJHM = row["CBFZJHM"].ToString(); ;
}
if (row.Table.Columns.Contains("CBFDZ") && row["CBFDZ"] != null && row["CBFDZ"].ToString() != "")
{
stu.farmerCBFDZ = row["CBFDZ"].ToString(); ;
}
if (row.Table.Columns.Contains("YZBM") && row["YZBM"] != null && row["YZBM"].ToString() != "")
{
stu.farmerYZBM= row["YZBM"].ToString(); ;
}
if (row.Table.Columns.Contains("CBFCYSL") && row["CBFCYSL"] != null && row["CBFCYSL"].ToString() != "")
{
stu.farmerCBFCYSL = row["CBFCYSL"].ToString(); ;
}
list.Add(stu);
}
return list;
}
finally
{
connct.Close();
command.Dispose();
connct.Dispose();
} }

4、在新建好的报表中就可以通过拖动相应的控件等来设计报表,简单的说就是画报表,安装需求画好相应的报表内容,比如:

C#制作RDLC报表的更多相关文章

  1. 微软RDLC报表打印

    关于微软RDLC报表打印时文字拉伸问题(Windows server 2003 sp2) 最近我们开发的打印服务频频出现打印文字拉伸问题,客户意见络绎不绝,最为明显的是使用黑体加粗后 “2.0份” 打 ...

  2. RDLC报表学习

    RDLC报表由以下三部分构成: 1.制作自己的DateSet集合(就是报表的数据集): 2.制作自己的报表文件.rdlc文件,用于画做报表样式,里面有微软自带的导出和打印功能,其实就为了少做这2个功能 ...

  3. 利用General框架开发RDLC报表

    RDLC是微软推出的自家的报表软件,虽然没有一些第三方的报表软件强大好用,但是作为VisualStudio集成的报表工具,在客户要求不高的情况下还是非常值得一用的,本文将介绍通过General代码生成 ...

  4. RDLC报表总结

    这2天纠结的报表基本上已近完成大部分功能.现在总结一下自己近期的学习成果 首先制作微软RDLC报表由以下三部分构成:1.制作自己的DateSet集合(就是报表的数据集):2.制作自己的报表文件.rdl ...

  5. [转]RDLC报表格式化format表达式

    本文转自:http://www.cnblogs.com/samlin/archive/2012/04/17/FormatDateTime.html 刚开始接触RDLC报表,觉得RDLC报表提供的格式化 ...

  6. 关闭rdlc报表打印预览后,关闭客户端,抛出异常“发生了应用程序级的异常 将退出”

    问题:关闭rdlc报表打印预览后,关闭客户端,抛出异常“发生了应用程序级的异常 将退出” 办法:在容纳ReportViewer的窗体后台代码中,添加如下代码即可 protected override ...

  7. rdlc报表DEMO

    rdlc报表demo  .net 4.0  vs2013 文本框,图像控件,checkbox样式的打印 下载链接

  8. rdlc报表大小设置

    参考:http://stackoverflow.com/questions/427730/how-to-limit-rdlc-report-for-one-page-in-a-pdf 主要设置为:报表 ...

  9. 基于MVC4+EasyUI的Web开发框架经验总结(15)--在MVC项目中使用RDLC报表

    RDLC是一个不错的报表,有着比较不错的设计模式和展现效果,在我的Winform开发里面,使用RDLC也是一个比较方便操作,如可以参考文章<DevExpress的XtraReport和微软RDL ...

随机推荐

  1. ECSHOP农行支付接口开发(含手机端)

    对于ECSHOP来说,支付是以接口的形式存在的.于是: 1:首先添加接口文件 includes\modules\payment下,增加abcbank.php,代码如下: <?php /** * ...

  2. js模版引擎handlebars.js实用教程——关于HTML编码

    返回目录 <!DOCTYPE html> <html> <head> <META http-equiv=Content-Type content=" ...

  3. Redis中5种数据结构的使用场景介绍

    转载于:http://www.itxuexiwang.com/a/shujukujishu/redis/2016/0216/108.html?1455861435 一.redis 数据结构使用场景 原 ...

  4. jQuery 滚动条 滚动到底部(下拉到底部) 加载数据(触发事件、处理逻辑)、分页加载数据

    1.针对浏览器整个窗口滚动 主要代码: <script type="text/javascript"> ; function GetProductListPageFun ...

  5. SQL Server排序函数row_number和rank的区别

    SQL Server排序函数row_number和rank的区别 直接看测试结果 declare @table table(name varchar(100),amount int, memo var ...

  6. SpringBoot常用配置简介

    SpringBoot常用配置简介 1. SpringBoot中几个常用的配置的简单介绍 一个简单的Spring.factories # Bootstrap components org.springf ...

  7. Script Task 引用 package variable

    Script Task 能够使用C#代码进行编程,许多复杂的逻辑都可以使用C# 脚本来实现,不仅灵活,而且强大. 1,能够传递package variable 给 Script Task ,并且Scr ...

  8. 理解模板引擎Razor 的原理

    Razor是ASP.NET MVC 3中新加入的技术,以作为ASPX引擎的一个新的替代项.简洁的语法与.NET Framework 结合,广泛应用于ASP.NET MVC 项目.Razor Pad是一 ...

  9. 仿Java的AtomicMarkableReference的AtomicMarkablePointer(C++)

    //@author: Zou Xiaohang //@describe: this class is like AtomicMarkableReference which is in java con ...

  10. Bmob基础

    BaaS是指专为移动应用开发者提供整合云后端的服务.开发者无需过多研究服务器端程序,而只需调用云计算平台提供的API,使用相应SDK,就能迅速完成数据存储.账户管理.消息推送.社交网络整合等功能.本文 ...