报表以前我只做过水晶报表,但是最近发现家里的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. Linux网络编程系列-TCP传输控制

    滑动窗口(sliding window) 滑动窗口是用于流量控制的,发送端根据接收端的处理能力发送数据,不至于造成过多的丢包. 是发送方和接收方间的协调,对方的接收窗口大小就是自己的发送窗口大小. 在 ...

  2. C#高级二

    编程小虾米大侠之梦 软件环境:win7 开发工具:vs 2010 平台:.NET 语言:C# 类库版本:.NET Framework 2.0 语言特点:强类型语言 规划知识点: 1..net fram ...

  3. 爱上MVC3~在控制器或Action上动态设定模板页(Layout)

    回到目录 很多境况下,我们需要设置自己模块的layout,即它的布局页面,在MVC2中叫它模板页面,你可以在return view方法时设置它,当然,这不是一种好方法,因为我不想每个action都去设 ...

  4. 你可能不知道console强大

    写在前面 大家都有用过各种类型的浏览器,每种浏览器都有自己的特色,本人拙见,在我用过的浏览器当中,我是最喜欢Chrome的,因为它对于调试脚本及前端设计调试都有它比其它浏览器有过之而无不及的地方.可能 ...

  5. Atitit 图像清晰度 模糊度 检测 识别 评价算法 源码实现attilax总结

    Atitit 图像清晰度 模糊度 检测 识别 评价算法 源码实现attilax总结 1.1. 原理,主要使用像素模糊后的差别会变小1 1.2. 具体流程1 1.3. 提升性能 可以使用采样法即可..1 ...

  6. vagrant homestead laravel 编程环境搭建

    这里面其实坑不少的,首先介绍 VirtualBox  虚拟机,windows下安装linux必须用的一个工具 vagrant 封装虚拟机的一个软件,可以设置好系统,安装好软件,什么时候用,直接导入就行 ...

  7. How Google TestsSoftware - Part One

    This is the firstin a series of posts on this topic.The one question I get morethan any other is &qu ...

  8. loadrunner协议选择

    协议选择参考: 应用类型 协议选择 web网站 http/HTML FTP服务器 FTP 邮件服务器 IMAP\POP3\SMTP CS:客户端以ADO,OLEDB方法连接后台数据库 MS SQLSe ...

  9. js对象、数组转换字符串

    对象转换成字符串需要使用toString()方法. 1 var a = function(){ 2 console.log(111); 3 }; 4 var b = a.toString(); 5 c ...

  10. 自动生成Mapper和Entity工具MybatisGenerator的使用

    新建一个XML文件crmGeneratorConfig.xml,文件具体内容如下.把MybatisGenerator.zip解压出来,把MybatisGenerator文件夹复制到Eclipse安装目 ...