rdlc 报表字符类数据分为文本数据和表数据,区别就在于文本数据只有一个,表数据可以有多行,然而有很多数据只需要一个传入就可以比如打印某个用户的基本信息,很多信息都是唯一的,如果此时报表传入的数据用可视化的dataset的话,有些浪费资源,在这里就可以先设置 报表属性的 ReportParameters,然后在对应的浏览报表的代码里面添加

当然在上诉datarow对应的datatable的columnname和ReportParameters的设置要相同,传入数据,OK

再说说动态传入dataset,rdlc的表控件对应的数据源为dataset,然而用视图话的dataset很大的不方便,一直没有发现在视图编辑器里面怎么设置报表的dataset,没发现怎么和ReportParameters一样设置参数式的设置dataset,但是rdlc是可编辑的xml文件,可以手动的添加dataset的代码,主要键为 <DataSets>    <DataSet Name="">   <Fields>    <Field Name="">   <DataField></DataField>  <rd:TypeName>System.String</rd:TypeName>可以手动设计好dataset

然后在设置

if (dataGridView1.Rows.Count > 0)
{
DataSet ds_THJL = new DataSet("ds_THJL");
DataTable dt = new DataTable();
ds_THJL.Tables.Add(dt);
dt.Columns.Add("工号");
dt.Columns.Add("员工姓名");
dt.Columns.Add("姓名");
dt.Columns.Add("性别");
dt.Columns.Add("客户名称");
dt.Columns.Add("个人电话");
dt.Columns.Add("通道");
dt.Columns.Add("录音时长");
dt.Columns.Add("通话类型");
dt.Columns.Add("通话时间");
dt.TableName = "dt_THJL";
foreach (DataRow dr in Dataset.Tables[0].Select(Dataset.Tables[0].DefaultView.RowFilter))
{
DataRow ddrr = dt.NewRow();
ddrr["工号"] = dr["工号"];
ddrr["员工姓名"] = dr["员工姓名"];
ddrr["姓名"] = dr["姓名"];
ddrr["性别"] = dr["性别"];
ddrr["客户名称"] = dr["客户名称"];
ddrr["个人电话"] = dr["个人电话"];
ddrr["通道"] = dr["通道"];
ddrr["录音时长"] = dr["录音时长/秒"];
ddrr["通话类型"] = dr["通话类型"];
ddrr["通话时间"] = dr["通话时间"];
dt.Rows.Add(ddrr);
}
frmRptTh frmrptTh = new frmRptTh(dt);
frmrptTh.ShowDialog();
}

this.reportViewer1.LocalReport.DataSources.Clear();
this.reportViewer1.LocalReport.DataSources.Add(new ReportDataSource("ds_THJL", dataTable));
this.reportViewer1.SetDisplayMode(DisplayMode.PrintLayout);
this.reportViewer1.RefreshReport();

一切都看得到,发生错误也很好调整,用视图模式的方便性及错误的调试都不如这样好

(转)关于rdlc报表的数据源的更多相关文章

  1. RDLC系列(一)ASP.NET RDLC 报表自定义数据源

    最近一段时间开发ERP系统中要用到不少报表打印,在网上找了一圈发现想些好用的报表控件大部分要收费,一些面免费要么不好用要么IE8不兼容,最后还是用了微软自带的RDLC报表,把自己遇到的坑和技巧整理分享 ...

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

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

  3. DevExpress的XtraReport和微软RDLC报表的使用和对比

    我们开发程序的时候,经常会碰到一些报表,如果是Winform的报表,一般可以采用DevExpress控件组的XtraReport,或者微软的RDLC报表,当然还有一些其他的,在此不再赘述.由于本人在W ...

  4. 会员管理系统的设计和开发(2)-- RDLC报表的设计及动态加载

    在上篇<会员管理系统的设计和开发(1)>介绍了关于会员系统的一些总体设计思路和要点,经过一段时间开发,软件终于完成并发布.在这期间,碰到了不少技术难点,并积累了不少开发心得和经验,本篇继续 ...

  5. C#制作RDLC报表

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

  6. 动态生成RDLC报表

    前段时间,做了RDLC报表,主要是三块功能: 1.从DataGrid提取(包括最新的增删改)的数据,自动生成对应的RDLC报表文件(以流的形式驻存在内存中),用ReportViewer类来展示.打印. ...

  7. 项目中使用RDLC报表

    原文地址:http://www.cnblogs.com/wuhuacong/p/4109833.html RDLC是一个不错的报表,有着比较不错的设计模式和展现效果,在我的Winform开发里面,使用 ...

  8. C# 条码标签打印程序,RDLC报表动态显示多条码标签的方法

    初学c#,因最近公司客户要求原出货标签需实现条码化,练手的机会来了,遂动手做这个程序,开始都是一些增删改查操作一直很顺利,但到RDLC报表将条码显示到报表上犯难了,因为初学未接触过报表,上网查资料均一 ...

  9. 在MVC项目中使用RDLC报表

    原文地址:http://www.cnblogs.com/wuhuacong/p/4109833.html RDLC是一个不错的报表,有着比较不错的设计模式和展现效果,在我的Winform开发里面,使用 ...

随机推荐

  1. 给 input 中 type="text" 设置CSS样式

    input[type="text"], input[type="password"] {    border: 1px solid #ccc;    paddi ...

  2. 3.发布Maven项目到nexus中

    1.在pom.xml文件中配置需要发布的工厂 如果想把项目发布到nexus中,需要在pom.xml中配置releases和snapshots版本发布的具体repository <distribu ...

  3. Post Complex JavaScript Objects to ASP.NET MVC Controllers

    http://www.nickriggs.com/posts/post-complex-javascript-objects-to-asp-net-mvc-controllers/     Post ...

  4. ajax方法完整的事件流

  5. oracle ORA-01747(系统保留关键字)user.table.column, table.column 或列说明无效 hibernate映射oracle保留关键字

    1.查询系统关键 select * from v$reserved_words 确认你使用的是否为关键字: select * from v$reserved_words w where w.KEYWO ...

  6. Intent传递数据从一个Activity到另一个Activity

    MainActivity package com.test.intentdemo; import android.app.Activity; import android.content.Intent ...

  7. Java 读Properties

    import java.io.*; import java.util.Properties; public class Study { public static void main(String[] ...

  8. WPF性能改善---之化整为零(蜂窝的衍生应用)

    在有的项目中,有这样的需求,由于显示器的显示区域是有限的,而软件却要展示一个远大于显示区域的一些元素,此时就要引入放大.缩小.拖动等UI控制技术,而在使用这些技术的同时,在后台有效的控制渲染元素的个数 ...

  9. Python控制流语句(if,while,for)

    if.py number=23 guess=int(input("enter an int:")) if guess==number: print ("congratul ...

  10. 解密 Uber 数据团队的基础数据架构优化之路

    如果你用过Uber,你一定会注意到它的操作是如此的简单.你一键叫车,随后车就来找你了,最后自动完成支付,整个过程行云流水.但是,在这简单的流程背后其实是用Hadoop和Spark这样复杂的基础大数据架 ...