winform 子报表数据源赋值

this.reportViewer1.LocalReport.DataSources.Add(new Microsoft.Reporting.WinForms.ReportDataSource("DataSet2", ds_com.Tables[0]));
this.reportViewer1.LocalReport.DataSources.Add(new Microsoft.Reporting.WinForms.ReportDataSource("DataSet1", dtDisHearder));

this.reportViewer1.LocalReport.SubreportProcessing += (s1, e1) => {
                        e1.DataSources.Add(new Microsoft.Reporting.WinForms.ReportDataSource("DataSet2", ds_com.Tables[0]));
                    };

ReportParameter rp = new ReportParameter("logUser", DB.loginUserName);
this.reportViewer1.LocalReport.SetParameters(new ReportParameter[] { rp });

//FDA值

rp = new ReportParameter("fdaValue", _fdaValue.ToString());

this.reportViewer1.LocalReport.SetParameters(new ReportParameter[] { rp });

//非FDA值

rp = new ReportParameter("nFdaValue", _nFdaValue.ToString());

this.reportViewer1.LocalReport.SetParameters(new ReportParameter[] { rp });

rp = new ReportParameter("add_signor", strSignor);
this.reportViewer1.LocalReport.SetParameters(new ReportParameter[] { rp });
rp = new ReportParameter("addr_footer", strFooter);
this.reportViewer1.LocalReport.SetParameters(new ReportParameter[] { rp });
rp = new ReportParameter("addr_remark", strRemark);
this.reportViewer1.LocalReport.SetParameters(new ReportParameter[] { rp });                          
rp = new ReportParameter("totalValue", _totalPrice.ToString());
this.reportViewer1.LocalReport.SetParameters(new ReportParameter[] { rp });
this.reportViewer1.RefreshReport();

时间: 2024-07-30 21:59:32

winform 子报表数据源赋值的相关文章

RDLC系列之二 子报表

本文实现简单的子报表 一.效果图 二.步骤 1.项目下新添加报表SubReport.rdlc,在主报表中添加子报表:右键=>插入=>子报表 2.(可选)传参给子报表 a.在主报表的子报表控件上设置参数 b.在子报表上添加参数 则子报表即可使用该参数 3.为子报表添加数据 添加SubDataSet.xsd,新建表,添加字段address.字段zipcode 在子报表中,指定数据集,并设计界面 添加后台代码(全部代码) using Microsoft.Reporting.WinForms; usi

JasperReports报表数据源10

数据源的结构数据容器.同时生成报告,Jasper报表引擎获得来自数据源的数据.数据可以从数据库,XML文件,对象数组和集合中的对象来获得.我们将在本章填充报告所看到的fillReportXXX()方法,预计将收到该报告的数据源其以填充,在net.sf.jasperreports.engine.JRDataSource对象或一个java.sql.Connection中的形式(当报表数据在关系数据库中找到). JRDataSource接口只有两个方法,这应该被实现: public boolean n

集算器替代存储过程实现报表数据源

存储过程是SQL语句和流程控制语句的集合,常用来把一个复杂的计算目标分解为多个简单的计算步骤.虽然以复杂性换来了灵活性,但SQL语句固有的缺点仍然体现在存储过程中,比如:分步不彻底.数据无序.缺乏集合.缺乏引用,之前我们也分析过存储过程作为报表数据源的利弊,可点击这里查看. 集算器解决了存储过程的上述缺陷,降低了对开发人员的技术要求,是存储过程理想的替代工具. 报表例子说明 某电信产品厂商有一张报表,主要目的是分析优势产品的销售额.销量.环比等指标,其中优势产品的定义是"在每个州的销量均在前10

报表制作2(传入一个sql主键 含子报表)

转自:http://www.cnblogs.com/ms-grf/p/6756243.html 报表js $scope.printCpTempletMasterDetail = function (cpId) { var parameters = { reportFileName: "reports/doctorstation/CpTempletMasterDetail.jasper", parameters: { 'cpId': cpId } }; var printInfoObje

存储过程实现报表数据源的利弊分析

在报表项目中,当数据计算较为复杂的时候,报表开发者可能会考虑是否用存储过程来实现报表数据源准备. 这里,我们从几个不同的方面来看一下.用存储过程来实现报表数据源计算的利和弊. 一. 性能 说到存储过程的长处,性能是最常被提及的.存储过程进行报表数据计算的时候.不须要将数据取出数据库,会获得较高的性能.其主要原因是数据库IO通道(比如:JDBC)效率一向非常差,大量数据取出来非常费时间. 即便如此.这个问题还是要深入分析的: 1.写在存储过程中的SQL语句是预先编译的.因此比外部程序提交的SQL要

WinForm 子窗体在父窗体范围内移动,不能出父窗体 摘自于网络

详细解释:1, 主窗体Form1属性IsMdiContainer设为True,并添加ToolStrip控件, Toolstrip中添加一个按钮toolStripButton1.         2,添加新窗体Form2.           3,主窗体Form1中toolStripButton1的Click事件           private void toolStripButton1_Click(object sender, EventArgs e)         {          

关于RDLC子报表添加参数 错误“本地报表处理期间出错 。值不能为空。 参数名:value” 错误解决方法

由于对RDLC报表不够熟悉,在出现这个错误时,也是找了一阵才找到解决方案1.首先在网上找了一堆方法后  这句话提醒了我  自定义的名称必须和子报表参数同名 2.然后我仔细比对了一下我的报表和子报表 下图为父报表的子报表参数(此处没有问题) 3.然后我在回到子报表  检查子报表中是否有同名的参数和数据集,并设置参数可为空 (注意: 查询的SQL 必须也要有这个字段) 4. 最后一点很重要,属性, 在筛选器中填写表达式  注意 表达式和值不一样 这样基本就OK了!

创建RDLC子报表

一.创建步骤? 1.建立主报表? 2.建立子报表?,添加参数,用于接受主报表关联字段的值. 3.在主报表中插入"子报表"控件,设置子报表的"常规"和"参数"属性."常规"属性用于设定子报表的名称,"参数"属性用于将子报表与主报表通过子报表的参数.主报表的关联字段将二者关联起来.? 4.在后台代码中为主报表指定ReportDataSource? 5.在后台代码中注册(也称为订阅)子报表事件? 6.在子报表事件

WinForm 子线程修改主线程(UI线程)

原文http://www.cnblogs.com/SkySoot/archive/2012/03/14/2396552.html 我们先来看一段运行时会抛出 InvalidOperationException 异常的代码段: 1 public partial class TestThread : Form 2 { 3 public TestThread() 4 { 5 InitializeComponent(); 6 } 7 8 Thread thread; 9 10 void SetText(