Oracle[转]C# ReportViewer报表 详解

正文转自:http://www.cnblogs.com/szytwo/archive/2012/04/12/2444145.html

C#表控件ReportViewer rdlc
例(1)

 

起先VS2005新建一个窗体项目,命名为TestProj

Oracle 1

每当左边的窗体内选择“添加新数据源”或以菜单上操作“添加新数据源”:

Oracle 2

挑后面世对话窗体,选择“数据库”,进入“下一样步”:

Oracle 3

本数据源以SqlServer2000所提供的Northwind数据库也条例,因此当数据库内选择驱动程序为SqlServer,具体操作视所用数据库而定(如果连接为Oracle,建议用Oracle所提供的ODP
for .NET,地址:http://www.oracle.com/technology/global/cn/software/tech/windows/odpnet/index.html)。

 

Oracle 4

挑数据源后,指定数据库文件,并进行测试,如果连接不通,请检查你的软件安装。

Oracle 5

开展下一致步,至显示有库文件内之表及视图,然后打开申,并选取中的Employees,选择好。

Oracle 6

于多少源窗口中显示有所挑选表及表内的字段,以备使用。

Oracle 7

再者于资源管理器中,也得以看出新增加的数据文件。

Oracle 8

2       报表浏览器

每当新建的窗体内,放入报表浏览控件:

Oracle 9

其一报表浏览控件集成了表格查看和打印预览的作用,可一直出口到打印机,也不过直接出口至Excel文件要PDF文件,对于爱好看Excel表格的客户的话,这个表控件非常科学。关于这报表的来源以及台前幕后的各种说法,请好查询相关的网站。

3       建立报表文件

入选报表浏览器控件后,在控件的右手上角会出现一个小三角,点击后,出现一个菜系,选择“设计新报表”或在解决方案资源管理器中上加一个新的表格文件:

Oracle 10

双击“报表项”内的“表”,则规划空白表内生成一个报表,我们得以当报表内加加多少项。

Oracle 11

其一报表的设计方式接近于MS以前的VB下表设计条件。在表设计器中,我拿平份报表分为五个组成部分,从达成到下吧:报表标题区、列标题区、数据显示区、合计及页脚。如果拿报表的设计款式显得出页眉及页脚,报表的样式会扣押得重复了解些:

选择页眉及页脚:

Oracle 12

显示结果:

Oracle 13

今昔始发设计报表:

每当“页眉”区内放入一个文本框,将内容变更为“测试报表”,居中,字体放大加粗:

Oracle 14

自从数据源窗口中精选适当的排列,用鼠标拖到报表内之“详细信息”表格上,数据会自动填写:

Oracle 15

Oracle 16

用统筹之报表保存后,返回报表浏览窗口,并也表浏览器选择我们计划的报表:

Oracle 17

当选报表文件后,菜单呢享有转:

Oracle 18

再也为夫报表文件指定数据源,选择数据源:

Oracle 19

确定,保存文件并运行测试文件。

4       预览

表生成后预览如下:

Oracle 20

 

凡是未是怪简单?我们吧可以针对这大概的表格进行美化,当然,我长美化的片段意义后,可能效果又不比,但这里就是以演示用法。

Ø         为数量加以表格。

以表格设计器中,选择得加表格框的区域

Oracle 21

下一场在工具栏中选取边框工具

Oracle 22

加什么样的框线根据需要,此处我选择“所有框线”。

Oracle 23

看起来较原的灰线能有些黑有,在预览时便会看出来了。

Ø         加打印时间显示

加入一个显打印时间之文本框,在地方按右键,选属性:

Oracle 24

当“文件框属性”内,选择“值”后面的表达式生成:

Oracle 25

每当表达式中挑选时间:

Oracle 26

毫不忘记表达式的先头一定要发一个“=”,如果没,手工加上一个。为了还符合我们的惯,前面可加个说明,如打印时间相当,表达式的写法就要有点做变更:还是因为“=”开头,后面长“打印时间:”,再因为“&”连接生成的Now函数即可得到我们想只要的榜样。

Oracle 27

Ø         为行加序号

为演示,我拿序号列加在了报表了最终列

入一个新的排列:

Oracle 28

每当展示序号的排列被输入相关的价值:

Oracle 29

 

于此表达式的后面是Nothing,不是null,不要搞错。

Oracle 30

老三件功能都就,预览:

Oracle 31

 

 

 

 

 

C#报表控件ReportViewer rdlc
例(2)

 

比较原可以啊?至少实用了一些。

使用RDLC报表(二)–使用于定义数据集

<!–[if !supportLists]–>1<!–[endif]–>新建窗体

Oracle 32

<!–[if !supportLists]–>2<!–[endif]–>建立数据源

Oracle 33

3<!–[endif]–>建立报表

 

Oracle 34

新的数据报表已经转,下面开始针对数据源进行设置。

<!–[if !supportLists]–>4<!–[endif]–>对表自动生成的数据源进行安装

 

 

 

 

 

 

分选工具栏 à 报表 à
数据源,选中所假设改的数源后,用“重命名”对该展开改动,如myds。

Oracle 35

修改完成后,确定退出是窗口。

入选报表设计器内之表,显示属性。将表格的数量集名称更改为面修改的称谓。

Oracle 36

要一个表文件内只有发一个数据源,则表格内的数据值可一直写吧“=Fields!字段.Value”的格式,如果含有多个数据源,则要针对之字段的取值进行点名,如“=(Fields!字段.value,“数据集名称””。

<!–[if !supportLists]–>5<!–[endif]–>手动生成数据源

手动生成的多少集内必须包含报表文件内设计之字段名称,否则会运作出现错误

转变数据集:

       /// <summary>

        /// 报表执行操作

        /// </summary>

        /// <param
name=”sender”></param>

        /// <param
name=”e”></param>

        private void
button1_Click(object sender, EventArgs e)

        {

            //取得数据集

            string connstring = “Data
Source=.;Initial Catalog=Northwind;Integrated Security=True”;

           
System.Data.SqlClient.SqlConnection conn1 = new
System.Data.SqlClient.SqlConnection(connstring);

           
System.Data.SqlClient.SqlCommand command1 = new
System.Data.SqlClient.SqlCommand(“select * from customers”,
conn1);

           
System.Data.SqlClient.SqlDataAdapter ada1 = new
System.Data.SqlClient.SqlDataAdapter(command1);

            DataSet c_ds = new
DataSet();

            try

            {

                conn1.Open();

               
ada1.Fill(c_ds);

            }

            finally

            {

                conn1.Close();

               
command1.Dispose();

               
conn1.Dispose();

            }

 

           
//为报表浏览器指定报表文件

           
this.reportViewer1.LocalReport.ReportEmbeddedResource =
“report.Report1.rdlc”;

           
//指定数据集,数据集名称后也说明,不是DataSet类型的数据集

           
this.reportViewer1.LocalReport.DataSources.Clear();

           
this.reportViewer1.LocalReport.DataSources.Add(new
Microsoft.Reporting.WinForms.ReportDataSource(“myds”,
c_ds.Tables[0]));

            //显示报表

           
this.reportViewer1.RefreshReport();

        }

运行后底数展示:

Oracle 37

posted on 2006-04-21 19:42 龙少爷 阅读(1189) 评论(8)  编辑 收藏 引用
网摘 所属分类: RDLC报表使用

 

动用RDLC报表(三)–向RDLC报表传入参数

在以报表向客户出示结果数据经常,实时的在表格被展示某些特定的多少是必备的,如:显示的单位、打印的日子等。本文特简单的示范为报表内传播一个字符值。如产生外问题,欢迎讨论。

1、新建一个工程TestReport,一个Form窗体,放入一个TextBox、一个Button按钮,再放入一个ReportViewer控件。
2、在ReportViewer上摘取新建一个表格
3、在打开的报表设计器中,选择工具栏的“报表”中之“报表参数”,新加一个参数,名称为content,数据类型为string,确定。
4、在报表设计器的页面上放入一个文本框,在文本框上按鼠标右键->属性,在“文本框属性”窗口被,选择“常规”选项卡内下部的“值”后面的“编辑表达式”按钮(就是不行Fx),在此窗口外,左下框内选择参数,在右手下束将会晤油然而生于达标同步着安装的参数,双击此参数,在方的框内将起所待的表达式:=Parameters!content.Value。保存之报表。报表默认名称为Report1.rdlc。
5、在Form窗体内双击按钮,编写如下代码:

            this.reportViewer1.LocalReport.ReportEmbeddedResource =
“TestReport.Report1.rdlc”;             ReportParameter rp = new
ReportParameter(“content”, this.textBox1.Text);            
this.reportViewer1.LocalReport.SetParameters(new ReportParameter[] {
rp });             this.reportViewer1.RefreshReport();

6、运行工程,在文件输入框内输入数据,按下按钮,数据是匪是曾扩散报表了?
Oracle 38

posted on 2007-03-06 14:41 龙少爷 阅读(393) 评论(8)  编辑 收藏 引用 网摘
所属分类: RDLC报表使用

 

使用RDLC报表(四)–钻取式报表

本文内以MSServer自带Northwind库文件内之Customers及Orders这片只说明也条例,建立两独表格文件,在询问得出Customers的阐明数据后,点击是表内的CustomerID数据,报表将转入到下一个表,并展示和的有关的Orders的数码,即VS中所谓的钻取式报表。

1、打开一个工程,并新建一个From,放入一个Button及一个ReportViewer控件。
2、在工程外新建一个数据源,连接受Northwind库文件,显示Customers及Orders这简单独表
3、新建一个报表文件,并盖表的样式来显示数据,将Customers表内的CustomerID、CompanyName及Address三只字段放入,形成相同卖起表头及数码的简易报表,并以是报表保存命名为customerReport
4、再打一个报表文件,与customerReport相同,也盖表的形式来显示报表,将Orders内之OrderID、CustomerID、ShipName及OrderDate四单字段放入表格内,报表保存也orderReport
5、orderReport的数据源根据主报表customerReport的数目来规定数据源的数目,查看表格的数码集名称,我之亮为NorthwindDataSet_Orders,也可好另外打一个,具体方法见自己的《RDLC报表(二)》
6、再打开customerReport报表,将CustomerID设置成可点击的索引字段,以便转入下一个表。选择CustomerID字段,按鼠标右键,在”文本框属性“窗口被,选择”导航“选项卡,在脚的”超链接“中挑选”跳至报表“,在表格名称中精选”orderReport“,再依下后的”参数…“按钮,输入一个参数名称,如customerid,参数值选择=Fields!CustomerID.Value。为了与其余数据交互区别,可以将此列数据因自己的习惯改变颜色或加下划线
7、在orderReport中,设置一个报表参数,与CurtomerReprot中的名号一致,以收父表中传播的参数
8、新建两单获得数据的措施,一个于Customers中拿走数据集,另一个从Orders中取得数据集,且带来参数。此两个点子可自己编辑类库来促成,也得于VS的多少集内添加。为了演示方便,我直接利用了Customers的GetData(),并编制了一个Orders的GetDataByCustomerID(@cid)的点子。
9、在From的Button中修如下代码:         private void
button2_Click(object sender, EventArgs e)         {            
NorthwindDataSet.CustomersDataTable dt1 = new
NorthwindDataSetTableAdapters.CustomersTableAdapter().GetData();            
this.reportViewer1.LocalReport.ReportEmbeddedResource =
“TestReport.customerReport.rdlc”;            
this.reportViewer1.LocalReport.DataSources.Clear();            
this.reportViewer1.LocalReport.DataSources.Add(new
ReportDataSource(“NorthwindDataSet_Customers”, dt1));            
this.reportViewer1.RefreshReport();         }

10、使用报表的Drillthrough事件,当选择了钻取项时会时有发生这事件,给下一个报表取值,代码如下:        
private void reportViewer1_Drillthrough(object sender,
DrillthroughEventArgs e)         {             LocalReport lp =
(LocalReport)e.Report;             string customerid =
lp.GetParameters()[“customerid”].Values[0].Trim();

            lp.DataSources.Clear();             lp.DataSources.Add(new
ReportDataSource(“NorthwindDataSet_Orders”,                 new
NorthwindDataSetTableAdapters.OrdersTableAdapter().GetDataByCustomerID(customerid)));        
} 运到结果:

 

运转第一份报表: Oracle 39
钻取后运行第二卖报表: Oracle 40

相关文章