ReportViewer控件最简单教程-Xieris
- 格式:doc
- 大小:1.63 MB
- 文档页数:7
reportviewerReportViewer文档1. 介绍ReportViewerReportViewer是一个用于创建、显示和管理报表的控件。
它是由Microsoft开发的工具,可用于在Web或Windows应用程序中生成和呈现报表。
ReportViewer提供了一个功能强大的界面,使用户能够轻松地创建和管理报表。
2. ReportViewer的功能ReportViewer提供了多种功能,使用户能够创建、显示和管理报表。
以下是ReportViewer的一些主要功能:a. 报表设计工具:ReportViewer提供了一个报表设计工具,用户可以使用该工具创建自定义报表。
用户可以选择从多种预定义报表模板开始,然后根据自己的需求进行修改和定制。
报表设计工具提供了多种元素和控件,如文本框、图表、表格等,使用户能够创建丰富多样的报表。
b. 数据源连接:ReportViewer支持多种数据源,包括数据库、Web服务、XML文件等。
用户可以轻松地连接到不同的数据源,并将数据源中的数据用于报表的生成和呈现。
c. 报表预览:ReportViewer提供了一个实时预览功能,用户可以在报表设计过程中随时预览报表的效果。
这使得用户能够快速调整报表的布局和样式,以获得最佳的呈现效果。
d. 报表导出:ReportViewer支持多种报表导出格式,包括PDF、Excel、Word等。
用户可以将报表导出为这些格式,以便在不同的应用程序或平台上使用和共享报表。
e. 数据筛选和排序:ReportViewer允许用户对报表中的数据进行筛选和排序。
用户可以根据自己的需求定义筛选条件,并对报表中的数据进行排序。
这使得报表更加灵活和易于分析。
3. 使用ReportViewer创建报表使用ReportViewer创建报表非常简单。
以下是使用ReportViewer创建报表的一般步骤:a. 定义报表数据源:首先,用户需要定义报表的数据源。
ReportView报表的使⽤今天刚接触报表,花了好久时间,⾛了很多弯路,感觉应该写出来和⼤家分享下,前车之鉴。
⾸先创建项⽬,添加新建项⽬—数据—数据集,在⼯具箱中拖⼊DataTable控件,右击控件添加列,设置列名添加新建项⽬—Reporting—报表,得到.relc结尾的⽂件,在右侧报表数据⾥,右击数据集—添加数据集右击—插⼊表(默认为2⾏3列的表),修改名的hander为编号、姓名、年龄,在第⼆列点击选择相对应的数据集⾥的数据*需要注意将Report1.rdlc⽂件的⽣成操作属性改为内容接下来新建⼀个类,写⼊代码public class Person{public int ID { get; set; }public string Name { get; set; }public int Age { get; set; }}接着新建web窗体,在窗体⾥写⼊三个控件:ReportView、button控件和ScriptManager(没什么⽤,但没有这个控件,会报错)<div><asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager><rsweb:ReportViewer ID="ReportViewer1" runat="server" Height="386px" Width="619px"></rsweb:ReportViewer><asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="确定" /></div>之后给button控件的点击时间写⼊代码:1 protected void Button1_Click(object sender, EventArgs e)2 {3 /*先清空原来数据集*/4 ReportViewer1.LocalReport.DataSources.Clear();5 /*设置报表⽂件*/6 ReportViewer1.LocalReport.ReportPath = @"D:\task\Exercise1\Learn\Report1.rdlc";7 /*数据集的填充*/8 ReportDataSource rds = new ReportDataSource("DataSet1", loadData());9 /*将数据集添加到本地报表*/10 ReportViewer1.LocalReport.DataSources.Add(rds);11 /*刷新报表显⽰*/12 ReportViewer1.LocalReport.Refresh();13 }注意第6⾏的地址⼀定不能写错,否则会报错最后写⼊l对象包含的数据loadData1 private List<Person> loadData()2 {3 List<Person> per = new List<Person>();4 for (int i = 0; i < 5; i++)5 {6 per.Add(new Person() { ID = i + 1, Name = "name", Age = i + 18 });7 }8 return per;9 }启动程序,完成!。
[C#]ReportView显⽰本地报表使⽤ReportView控件可以显⽰远端Report service的报表,也可以处理⽣成本地报表,⽤法也⽐较简单,下⾯列举⼀下简单的步骤。
⾸先使⽤Report Wizard添加⼀个rdlc报表⽂件到⼯程项⽬,使⽤这个wizard会⾃动创建报表使⽤的DataSet等,其实这些后⾯都可以⽤⾃⼰的DataSource来替换掉。
设计好⼀个Table的报表,在报表中添加FromDate和ToDate两个参数,然后添加两个TextBox在报表上显⽰这两个参数的值。
然后添加⼀个ReportView控件到Form,在⼀个按钮事件中来初始化和刷新报表:private void button1_Click(object sender, EventArgs e){reportViewer1.LocalReport.ReportEmbeddedResource = "ReportsApplication1.Report1.rdlc";ReportDataSource reportDataSource= new ReportDataSource(); = "MESDBDataSet_ProdFinish";reportDataSource.Value = getProdFinishTable();reportViewer1.LocalReport.DataSources.Clear();reportViewer1.LocalReport.DataSources.Add(reportDataSource);ReportParameter fromParam= new ReportParameter("FromDate",dateTimePicker1.Value.ToShortDateString());ReportParameter toParam = new ReportParameter("ToDate", dateTimePicker1.Value.ToShortDateString());reportViewer1.LocalReport.SetParameters(new ReportParameter[]{fromParam,toParam});reportViewer1.RefreshReport();}private DataTable getProdFinishTable(){SqlConnection connection= new SqlConnection(Properties.Settings.Default.MESDBConnectionString);connection.Open();string sql = "select * from prodfinish where proddate>=@fromdate and proddate<dateadd(day,1,@todate)";SqlDataAdapter adapter= new SqlDataAdapter(sql,connection);adapter.SelectCommand.Parameters.AddWithValue("fromdate",dateTimePicker1.Value.Date);adapter.SelectCommand.Parameters.AddWithValue("todate", dateTimePicker2.Value.Date);DataTable dataTable = new DataTable();adapter.Fill(dataTable);connection.Close();return dataTable;}。
ReportViewer报表的使用及参数传递新建一个Default页面,添加一个ReportViewer.在ReportViewer的最右上角有一个小三角,点击,设计新报表,这时就会跳到Reprot.rdlc里,点击工具箱,表,新建一个DataSet数据集。
新建连接,配置好数据源。
选择一个数据库,测试连接,成功,下一步,写SQK语句select * from table ,完成。
此时,到Report里,会看到网站数据源中就有刚刚的字段了。
现在可以把要显示的字段拖到表的详细信息中,再到Default中,点击小三角,选择报表Report1,此时,一个简单的报表就作好了。
下面再作一个需要参数的报表。
和刚刚一样,新建Default,报表页,数据集。
或是在刚刚的基础上,在DataSet中,点击右键,配置。
可以重写SQL语句。
数据集的查询语句像这样写。
select * from table where state=@state.这里是根据state查询在Report中,点击报表,报表参数,可以添加一个参数,state,,类型为boolean在工具箱中选择一个文本框。
在文本框上点击右键,表达式,选择参数,双击State,确定。
在Default中添加一个TextBox,Button.在 Default的数据源中,选择带参数的那个方法,到定义参数页面,参数源选择control,controlId选择传入参数的Id,如TextBox1,DefaultValue可以给一个默认值,Default页有一个TextBox1,和一个Button引用using Microsoft.Reporting.WebForms;在button的事件里写。
ReportParameter[] p = new ReportParameter[1];p[0] = new ReportParameter("state", TextBox1.Text); this.ReportViewer1.LocalReport.SetParameters(p); this.ReportViewer1.ShowParameterPrompts = false;这样,一个代参数的报表就作好了。
Winfrom的ReportViewer报表控件和.rdlc后缀的报表绑定应⽤1.创建⼀个winfrom项⽬,从⼯具箱添加ReportViewer控件,命名ReportViewer12.在项⽬中添加⼀个报表,命名Report1.rdlc3.打开刚刚添加的报表,画出模板4.添加⼀个数据集,⽤于报表绑定,命名DataSet15.在数据集中添加⼀个DataTable,命名DataTable1,有3列C1,C2,C36.在报表Report1.rdlc中添加数据集,命名DTTEST7.在报表中绑定数据 数据类型有⽂本,图⽚等等,本例就讲解这两种如何绑定。
1).⽂本:3种⽅式绑定。
A.在⽂本属性-值-输⼊栏中直接输⼊[C2] B.在⽂本属性-值-fx,输⼊=Fields!C2.Value c..在⽂本属性-值-fx-数据集-DTTEST-First(C2) 2).图⽚ a.静态图⽚:图⽚属性,图像源选择嵌⼊,然后点击导⼊。
2).动态图⽚:例如⼆维码、条形码,原理:把图⽚转成byte[],byte[]再转成base64数字编码的等效字符串。
A.图⽚属性,图像源选择数据库,选择对应MIME类型image/jpeg,字段点击fx,输⼊=System.Convert.FromBase64String(Fields!C1.Value)8.详细代码如下:using System;using System.Collections.Generic;using ponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;using Microsoft.Reporting.WinForms;using System.IO;using System.Drawing.Imaging;namespace WindowsFormsApplication1{public partial class Form1 : Form{public Form1(){InitializeComponent();}private void Form1_Load(object sender, EventArgs e){DataTable dt = new DataTable();dt.Columns.Add("C1", typeof(string));//列名必须与数据集的列名⼀致dt.Columns.Add("C2", typeof(string));//列名必须与数据集的列名⼀致dt.Columns.Add("C3", typeof(string));//列名必须与数据集的列名⼀致//动态图⽚绑定string c = Convert.ToBase64String(ImageToBytes("F:\\wenbin\\⼯作⽂件\\SF\\LOGO\\顺丰logo简体.jpg"));dt.Rows.Add(c, "陈先⽣收", "深圳市");//控件绑定报表reportViewer1.LocalReport.ReportPath = @"F:\test\QueueTest\WindowsFormsApplication1\Report1.rdlc";//报表绑定数据集reportViewer1.LocalReport.DataSources.Add(new ReportDataSource("DTTEST", dt));this.reportViewer1.RefreshReport();}///<summary>///将图⽚转成byte[]///</summary>///<param name="path">图⽚路径</param>///<returns></returns>public byte[] ImageToBytes(string path){Image image = Image.FromFile(path);//ImageFormat format = image.RawFormat;using (MemoryStream ms = new MemoryStream()) {image.Save(ms, image.RawFormat);byte[] buffer = new byte[ms.Length];//ms.Position = 0;//ms.Seek(0, SeekOrigin.Begin); //ms.Read(buffer, 0, buffer.Length);buffer = ms.ToArray();return buffer;}}///<summary>///将byte[]转成图⽚///</summary>///<param name="buffer">byte[]</param>///<returns></returns>public Image BytesToImage(byte[] buffer){MemoryStream ms = new MemoryStream(buffer);Image image = Image.FromStream(ms);return image;}}}。
Navicat Report Viewer使用教程Navicat Report Viewer是一个容易使用的查看器,可以快捷和简单地浏览报表文件。
拥有用户友好的图形用户界面,下载、安装和激活也很方便。
下面的Navicat Report Viewer使用教程我们就从功能,界面,安装来给大家介绍介绍。
一、Navicat Report Viewer的功能:安全连接Navicat Report Viewer可通过SSH通道创建安全的SSH阶段作业,确保两台主机之间的连接受到强大验证和安全加密的保护。
验证方式可使用密码、公钥、私钥。
Navicat Report Viewer也支持HTTP通道,灵活地绕过限制直接连接互联网服务供应商。
浏览报表Navicat Report Viewer浏览报表在Navicat Report Viewer中,用户可以打开和查看记载最新数据的.rtm报表文件或报表存档,使用不同的工具去浏览报表,即搜索、刷新、放大或缩小和页面浏览。
报表打印Navicat Report Viewer提供打印支持,不仅可以打印报表到打印机,还可转换成不同的文件格式,即PDF、HTML、Excel以及更多。
实用工具虚拟组:利用虚拟组功能分类对象到组,组织Navicat Report Viewer的连接和报表。
Navicat Report Viewer虚拟组树筛选:使用树筛选功能,减少显示在Navicat Report Viewer的连接和报表列表。
输入文本,Navicat Report Viewer只会显示符合指定字符串的对象。
Navicat Report Viewer树筛选二、Navicat Report Viewer的界面介绍:Navicat Report Viewer 允许用户跟一些没有 Navicat 安装在计算机,但有安装 Navicat Report Viewer 的人分享报表,高度地增加查看报表的灵活性及便利性。
服务器控件使用之Reportviewer 报表收藏1.Reportviewer 报表1.1.Reportviewer控件注:本教程附2个事例:●演练:在本地处理模式下将数据库数据源与ReportViewer Web 服务器控件一起使用●演练:在本地处理模式下将业务对象数据源与ReportViewer Web 服务器控件一起使用如果您已经对ReportViewer控件基础知识比较了解,可以直接参阅事例。
1.1.1.简介Microsoft Visual Studio 2005 包括报表设计功能和ReportViewer 控件,使您可以将功能完整的报表添加到自定义应用程序。
报表可以包含表格格式数据、聚合数据和多维数据。
提供ReportViewer 控件的目的是可以处理和显示应用程序中的报表。
控件有两种版本。
ReportViewer Web 服务器控件用于在 项目中驻留报表。
ReportViewer Windows 窗体控件用于在Windows 应用程序项目中驻留报表。
这两种版本的控件都可以配置为以本地处理模式或远程处理模式运行。
配置为何种处理模式将影响有关报表从设计到部署的所有方面。
●“本地处理模式”是指ReportViewer 控件在客户端应用程序中处理报表。
所有报表都是使用应用程序提供的数据作为本地过程处理的。
若要创建本地处理模式下使用的报表,需要使用Visual Studio 中的报表项目模板。
有关详细信息,请参阅将ReportViewer 配置为进行本地处理。
●“远程处理模式”是指由SQL Server 2005 Reporting Services 报表服务器处理报表。
在远程处理模式下,ReportViewer 控件用作查看器,显示已经在Reporting Services 报表服务器上发布的预定义报表。
从数据检索到报表呈现的所有操作都是在报表服务器上处理的。
若要使用远程处理模式,则必须具有SQL Server 2005 Reporting Services 的许可副本。
报告查看器 (ReportViewer) 是一个功能强大的报告工具,它能在.NET应用程序中方便地显示和管理报表。
而 ReportViewerCore 是ReportViewer 在 .NET Core 环境下的一个轻量级版本,它提供了与原版 ReportViewer 相似的功能,同时也方便开发者在 .NET Core 项目中使用报表功能。
接下来,我们将深入探讨 ReportViewerCore 的使用方法,帮助开发者更好地使用这一工具。
1. ReportViewerCore 是什么?ReportViewerCore 是一个在 .NET Core 应用程序中使用报表功能的工具。
它提供了类似于传统ReportViewer 的功能,包括报表的呈现、导出和打印等。
与传统的 ReportViewer 不同的是,ReportViewerCore 更轻量级,适用于 .NET Core 项目,同时也更加灵活,开发者可以更加自由地定制报表的显示和功能。
2. 使用 ReportViewerCore 的基本步骤要在 .NET Core 项目中使用 ReportViewerCore,首先需要在项目中安装相应的 NuGet 包。
安装完毕后,可以通过引用命名空间和初始化ReportViewerCore 来使用报表功能。
在初始化 ReportViewerCore 后,可以通过设置报表的路径、参数和数据源等信息来加载和显示报表。
还可以通过代码来定制报表的样式和功能,以满足项目的需求。
3. ReportViewerCore 的高级功能和定制除了基本的报表显示和管理功能,ReportViewerCore 还提供了一些高级的功能和定制选项。
可以通过设置报表的参数来实现动态筛选和查询功能;可以通过设置报表的主题和样式来定制报表的外观;还可以通过使用报表事件来控制报表的行为,比如在报表加载完成后执行特定的操作等。
这些高级功能和定制选项使得开发者可以更加灵活地使用 ReportViewerCore,并为项目定制符合需求的报表功能。
ReportViewer实例教程本示例操作主要实现a. ReportViewer关联Report1.rdlc的简单呈现b. 对带有报表参数的Report1.rdlc的呈现c. 利用程式生成的DataSet 填充报表d. 调用存储过程生成DataSet 填充报表==========简单的呈现==========1. 打开VS2005,文件->新建->网站选择语言种类(C#)2. 在该解决方案下设计其已经生成的Default.aspx3. 将工具箱-数据下的ReportViewer 拉入Default.aspx的设计界面4. 在用鼠标选中ReportViewer1时可以看到其右上角的小三角图标5. 用鼠标点击该小三角将展开ReportViewer任务快捷菜单6. 由于本项目目前还没有做好的报表所以选择设计新报表7. 点击设计新报表后将呈现报表Report1.rdlc的设计界面8. 由于本项目目前还没有做好的网站数据源所以此时要添加新数据源(如果没有呈现“网站数据源”界面,可以点击报表设计界面,此时上方菜单中多出现“数据”,“报表”等选项可以在“数据”菜单下,选择“显示数据源”)9. 点击“添加新数据源” 会出现“T ableAdapter 配置向导”10. 选择数据连接(如连接到本机的Northwind数据库),下一步11. 选择是否要将连接字符串保存到应用程序配置文件中,下一步12. 选择命令类型,此时可以点击取消按钮,退出向导13. 全部保存14. 选择视图菜单下“服务器资源管理器”,可以看到刚才所建立的数据连接,可以看到Northwind数据库下的表,视图,存储过程,函数15. 在解决方案的树下找到并打开App_Code文件夹下的DataSet1.xsd数据集16. 可以看到打开的数据集设计器是空的,此时可以将“服务器资源管理器”下的Northwind的表或存储过程等拉入数据集设计器(如此时拉入了Orders表和Sales by Year这个存储过程)17. 全部保存18. 双击Report1.rdlc,打开报表设计界面将此时的报表设计工具箱中的【报表项】的【表】拉入报表设计界面19. 选择“数据”菜单下的“显示数据源”,可以在网站数据源下看到DataSet1 下的两个表orders 和Sales by Year 20. 此时选择Orders下的任意字段(如OrderID 和CustomerID)拉到Report1.rdlc设计界面的表的“详细资料”处用于报表显示21. 全部保存22. 回到Default.aspx的设计界面,为ReportViewer1 绑定报表选择ReportViewer1显示刚才设计好的Report1.rdlc23. 全部保存,按F5或Ctrl F5 运行,以查看初步效果======================================接下来要为Report1.rdlc添加一个报表参数======================================24. 回到报表Report1.rdlc的设计界面点击报表菜单下的“报表参数”25. 在报表参数在设置框中添加一个报表参数进行相关设置并确定以保存(如其参数名称为rptParaA,类型为String)26. 拉入一个文本框的报表项到Report1.rdlc的设计界面以做为该报表的标题显示27. 选中并右键单击该文本框,在弹出的菜单中选择“表达式”,进入“编辑表达式”的对话框28. 在“编辑表达式”的对话框中,选择参数,并双击刚才设置的rptParaA,使文本框的值=Parameters!rptParaA.Value29. 保存对Report1.rdlc的修改30. 因为新的Report1.rdlc报表的文本框需要有报表参数值的传入所以要在ReportViewer1 对Report1.rdlc的呈现时对Default.aspx.cs的编辑31. 在Default.aspx.cs加入引用using Microsoft.Reporting.WebForms;在Page_Load中加入如下代码ReportParameter rptParaA = new ReportParameter("rptParaA", "测试报表参数");ReportViewer1.LocalReport.SetParameters(new ReportParameter[] { rptParaA });32.保存并运行以查看效果=========================================接下来,需要对所要呈现的报表资料进行定制也就是通过设计DataSet用符合需要的数据对报表进行资料绑定和呈现=========================================33.设置ReportViewer1的Visible为false34.在Default.aspx的设计界面加入一个按钮Button1将通过此按钮的Click事件实现对数据库的访问以及DataSet的数据填充和对ReportViewer1的资料绑定35. Default.aspx.cs加入引用using System.Data.SqlClient;using Microsoft.Reporting.WebForms;Button1_Click中的代码示例如下SqlConnection myConn = new SqlConnection("Data Source=192.168.0.36;Initial Catalog=Northwind;User ID=sa;Password=sa");SqlDataAdapter myda = new SqlDataAdapter("select top 5 * from orders", myConn);DataSet myds = new DataSet();myConn.Open();myda.Fill(myds);myConn.Close();ReportViewer1.Visible = true;ReportParameter rptParaA = new ReportParameter("rptParaA", "测试报表参数");ReportViewer1.LocalReport.SetParameters(new ReportParameter[] { rptParaA });ReportDataSource rds = new ReportDataSource("DataSet1_Orders", myds.Tables[0]);ReportViewer1.LocalReport.DataSources.Clear();ReportViewer1.LocalReport.DataSources.Add(rds);ReportViewer1.LocalReport.Refresh();注意ReportDataSource rds = new ReportDataSource("DataSet1_Orders", myds.Tables[0]);的"DataSet1_Orders"是与前台html程序的<rsweb:ReportViewer ID="ReportViewer1" runat="server" Font-Names="Verdana" Font-Size="8pt" Height="400px" Visible="False" Width="400px"><LocalReport ReportPath="Report1.rdlc"><DataSources> <rsweb:ReportDataSource DataSourceId="ObjectDataSource1" Name="DataSet1_Orders" /></DataSources></LocalReport></rsweb:ReportViewer>中的<DataSources>的Name="DataSet1_Orders"是一致的可以通过对DataSet的填充时的sql语句等的定制来得到所需要的数据以便报表呈现需要注意的是由于ReportViewer1此时的关联报表为Report1.rdlc,所以DataSet 的Tables[0]中的结构一定要包含Report1.rdlc所呈现的字段,所以,这里的Sql语句为select top 5 * from orders36.保存运行点击Button1 以便报表呈现===============================================如果报表所要呈现的数据来源于存储过程那么在装载DataSet时使其数据来源于存储过程即可===============================================37.右击项目添加新项,选择报表,向项目中加入Report2.rdlc,设置其呈现的数据来源为存储过程Sales by Year同样的在Report2.rdlc的设计界面加入“表”报表项并将网站数据源下的DataSet1下的Sales by Year表中的字段拉入报表项“表”在详细数据中进行显示38.如同Default.aspx 向项目中添加新的页面Default2.aspx向Default2.aspx加入一个Button 和ReportViewer1并设置ReportViewer1所要呈现的报表为Report2.rdlc设置ReportViewer1的Visible为false双击Button 进行其Click事件的编写设置Default2.aspx为项目的起始页39.在Default2.aspx.cs加入引用using System.Data.SqlClient;using Microsoft.Reporting.WebForms;40.Button1_Click的事件代码示例如下protected void Button1_Click(object sender, EventArgs e){SqlConnection myConn = new SqlConnection("Data Source=192.168.0.36;Initial Catalog=Northwind;User ID=sa;Password=sa");SqlDataAdapter myda = new SqlDataAdapter("Sales by Year", myConn);myda.SelectCommand.Parameters.AddWithValue("@Beginning_Date", "1997-10-10");myda.SelectCommand.Parameters.AddWithValue("@Ending_Date", "2000-10-10");mandType = CommandType.StoredProcedure;DataSet myds = new DataSet();myConn.Open();myda.Fill(myds);myConn.Close();ReportViewer1.Visible = true;ReportDataSource rds = new ReportDataSource("DataSet1_Sales_by_Year", myds.Tables[0]);ReportViewer1.LocalReport.DataSources.Clear();ReportViewer1.LocalReport.DataSources.Add(rds);ReportViewer1.LocalReport.Refresh();}41.保存运行点击按钮报表效果查看。