WinForm程序报表制作
- 格式:docx
- 大小:75.34 KB
- 文档页数:2
winform报表开发实例一、引言在现代软件开发中,报表功能已成为许多应用系统的必备模块。
WinForm 作为一款成熟的Windows桌面应用程序开发框架,其报表开发功能也日益受到开发者的关注。
本文将为大家介绍WinForm报表开发的实例,帮助大家更好地掌握WinForm报表开发的技巧和方法。
二、WinForm报表开发基础知识1.报表概念与分类报表是一种以表格、图表等形式展示数据的方式。
根据用途和展现形式,报表可分为:表格报表、图表报表、交叉报表、分析报表等。
2.WinForm报表开发环境搭建在WinForm中,我们可以使用Visual Studio等集成开发环境进行报表开发。
首先,创建一个新的WinForm项目,然后在项目中添加所需的报表控件。
3.常用报表控件介绍WinForm中常用的报表控件包括:DataGridView、DataTable、GridView、ListView等。
这些控件可以根据实际需求进行组合使用,以实现不同的报表展示效果。
三、WinForm报表实例详解1.创建一个简单的报表在Visual Studio中,新建一个WinForm项目,然后添加一个DataGridView控件。
将数据源(如数据库、Excel文件等)绑定到DataGridView控件,即可实现数据的展示。
2.报表数据绑定与显示数据绑定是报表开发的核心环节。
在WinForm中,我们可以使用数据源控件(如SqlDataSource、ObjectDataSource等)将数据绑定到报表控件上。
同时,通过设置报表控件的属性,如CellStyle、RowHeaderStyle等,可以实现报表的个性化展示。
3.报表排序与筛选在WinForm报表中,我们可以为报表控件添加Sorting和Filtering事件处理程序,实现报表数据的排序和筛选功能。
例如,在DataGridView控件上添加Sorting事件处理程序,根据用户需求对数据进行排序。
.net winform fastreport 例子FastReport是一个用于.NET WinForms应用程序的报表生成器。
以下是一个简单的FastReport示例,它创建一个包含两个文本框和一条汇总行的报表。
首先,您需要在项目中安装FastReport。
可以通过NuGet包管理器来安装FastReport。
在Visual Studio中,右键单击项目并选择“管理NuGet程序包”,然后在搜索框中输入“FastReport”并安装。
下面是使用FastReport生成简单报表的代码示例:在Visual Studio中创建一个新的WinForms应用程序项目。
在窗体上放置一个FastReport.Report控件。
打开代码文件(例如Form1.cs),并添加以下代码:csharp复制代码using System;using System.Windows.Forms;using FastReport;namespace FastReportExample{public partial class Form1 : Form{public Form1(){InitializeComponent();}private void Form1_Load(object sender, EventArgs e){// 创建报表对象Report report = new Report();report.Load("report1.frx"); // 加载报表模板文件(例如report1.frx)// 设置报表数据源report.RegisterData(new DataTable("Products"), "Products");// 准备报表数据源report.Prepare();// 显示报表预览窗口reportViewer1.ShowReport(report);}}}创建一个报表模板文件(例如report1.frx),并添加以下内容:xml复制代码<FastReport xmlns="网址/schema/fr4winforms" xmlns:xsi="网址g/2001/XMLSchema-instance"><Subreports></Subreports><Detail><TextObject><Value>Product Name: [Products.ProductName]</Value></TextObject><TextObject><Value>Quantity: [Products.Quantity]</Value></TextObject></Detail><Summary><Total><TextObject><Value>Total</Value></TextObject><SumFunction>[Products.Quantity]</SumFunction></Total></Summary></FastReport>运行应用程序,您将看到一个包含产品名称和数量的报表,以及一个汇总行显示总数量。
winform报表开发实例一、引言随着信息时代的到来,报表在企业管理、数据分析等方面发挥着越来越重要的作用。
WinForm报表开发作为一种常见的报表实现方式,具有易于操作、功能强大等特点。
本文将为您介绍WinForm报表开发的实例,帮助您快速掌握报表开发的技巧。
二、WinForm报表开发基础知识1.报表概念与分类报表是一种以表格、图形等形式展示数据的文档。
根据用途和展示内容,报表可分为:表格报表、图表报表、交叉表报表、分组报表等。
2.WinForm报表开发环境搭建在开始WinForm报表开发前,需要先安装Visual Studio等开发工具。
安装完成后,新建一个WinForm项目,即可开始报表开发。
3.常用报表组件介绍WinForm报表开发中,常用的报表组件包括:DataGrid、DataTable、DataView、GridView等。
这些组件可方便地实现数据展示、编辑、过滤等功能。
三、WinForm报表实例详解1.报表设计步骤(1)新建项目:在Visual Studio中新建一个WinForm项目。
(2)添加报表数据源:在项目中添加一个数据源,如SQL Server数据库、Excel文件等。
(3)设计报表布局:使用报表设计器设计报表的行列、标题、单元格样式等。
(4)设置报表样式:通过样式设置,调整报表的整体外观,如背景色、字体、边框等。
(5)生成报表:预览并生成报表。
2.实例1:简单表格报表(1)创建数据源:添加一个数据源,如SQL Server数据库。
(2)设计表格布局:设置表格的行列数、列宽、间距等。
(3)添加行列标题:在表格中添加行列标题,如“姓名”、“年龄”等。
(4)设置表格样式:调整表格背景色、字体、边框等。
(5)生成报表:预览并生成报表。
3.实例2:分组报表(1)创建数据源:添加一个数据源,如SQL Server数据库。
(2)设计分组报表布局:设置分组字段、分组标签、子报表等。
(3)添加分组字段:在报表设计器中设置分组字段,如“部门”、“地区”等。
WinForm中使⽤CrystalReport⽔晶报表——基础,分组统计,⾃定义数据源开篇本篇⽂章主要是帮助刚开始接触CrystalReport报表的新⼿提供⼀个循序渐进的教程。
该教程主要分为三个部分1)CrystalReport的基本使⽤⽅法;2)使⽤CrystalReport对数据进⾏分组求和;3)CrystalReport如何使⽤⾃定义的数据源(如内存中的DataTable表)三个⽅⾯来写。
相信看懂了这个教程之后,对于⾃⼰项⽬中的实现报表这⼀功能,应该就能轻松的应对了。
⼀ CrystalReport模板的制作及显⽰A模板的制作1、右键【项⽬属性】添加⼀个⽔晶报表(在vs中需要安装CrystalReport模块,不同vs版本下载不同的CrystalReport版本:CrystalReport下载链接:)2、添加报表的设计界⾯如下:⼀个报表包括(报表头,页眉,详细资料,报表尾,页眉)5个基本部分。
3、现在我们需要给新建的报表添加⼀个数据源,右键左边的【数据库字段】选择相应的数据源,进⾏绑定。
我这⾥选择的是sqlserver数据库。
4、输⼊数据库的登录信息,然后选择需要绑定的数据库表,除了绑定数据表之外,还可以绑定sql语句查询的结果,以及存储过程和视图,下⾯给出绑定数据库表格,和绑定sql查询。
1)绑定数据库表格2)点击连接下⾯的【添加命令】绑定sql语句。
5、绑定数据库之后在报表左侧的【字段管理器】中就会出现该表以及sql查询结果的的相应表头字段。
6、把相应的字段在报表视图中进⾏布局。
到此⽔晶报表的模板已经做好了。
注意:页眉中的userName,courseName,score是可以更改。
B模板的显⽰1、⾸先在窗体上拖⼀个CrystalReportView控件作为显⽰报表模板。
2、在form_load事件⾥⾯写如下代码:CrystalReport1 cr = new CrystalReport1();//实例化⼀个报表模板this.crystalReportViewer1.ReportSource = cr;//为报表显⽰控件设置数据源3、运⾏报表设计点丑,但是你可以根基⾃⼰的风格进⾏排版设计,如字体,⼤⼩,颜⾊等啦。
Winform或WebForm使⽤ReportViewer报表设计,⼯具栏按钮英⽂显⽰的解决办法 在项⽬开发中,我们总是会⽤到rdlc报表设计器,⼤多数情况下在本地开发环境中⼯具栏按钮显⽰的是中⽂,但是部署到客户环境后发现显⽰的是英⽂。
解决这个问题也是⾛了很多弯路,给⼤家简单说⼀下: 1、最初以为安装.NET Framework 的语⾔包就可以解决问题,但是后来发现ReportViewer不属于.NET类库,它属于VS中的⼀个插件,所以安装NET Framework 的语⾔包语⾔包根本就不能解决问题。
所以就想有没有ReportViewer的语⾔包,⽹上说有,官⽹中也有下载的,但是安装后并没有解决我的问题。
2、系统环境安装VS2008后在C:\Windows\assembly下边有⼏个资源⽂件,说是拷贝到C:\Windows\assembly\GAC_MSIL下就可以,试了并没有什么⽤。
3、下边就是最简单,最有效的⽅法,在你的项⽬下新建⼀个类,类名称随意,符合C#代码命名规则即可,继成接⼝IReportViewerMessages。
然后写代码:public class ReportViewerMessages: IReportViewerMessages{ #region IReportViewerMessages Memberspublic string BackButtonToolTip{get { return ("返回"); }}public string BackMenuItemText{get { return ("返回"); }}public string ChangeCredentialsText{get { return ("Add your custom text here."); }}public string CurrentPageTextBoxToolTip{get { return ("当前页"); }}public string DocumentMapButtonToolTip{get { return ("⽂档结构"); }}public string DocumentMapMenuItemText{get { return ("⽂档结构"); }}public string ExportButtonToolTip{get { return ("导出"); }}public string ExportMenuItemText{get { return ("导出"); }}public string FalseValueText{get { return ("FalseValueText"); }}public string FindButtonText{get { return ("查找"); }}public string FindButtonToolTip{get { return ("查找"); }}public string FindNextButtonText{get { return ("下⼀个"); }}public string FindNextButtonToolTip{get { return ("下⼀个"); }}public string FirstPageButtonToolTip{get { return ("⾸页"); }}public string LastPageButtonToolTip{get { return ("最后⼀页"); }}public string NextPageButtonToolTip{get { return ("下⼀页"); }}public string NoMoreMatches{get { return ("⽆其他匹配项"); }}public string NullCheckBoxText{get { return ("NullCheckBoxText"); }}public string NullCheckBoxToolTip{get { return ("NullCheckBoxToolTip"); }}public string NullValueText{get { return ("NullValueText"); }}public string PageOf{get { return ("/"); }}public string PageSetupButtonToolTip{get { return ("页⾯设置"); }}public string PageSetupMenuItemText{get { return ("页⾯设置"); }}public string ParameterAreaButtonToolTip{get { return ("ParameterAreaButtonToolTip"); } }public string PasswordPrompt{get { return ("PasswordPrompt"); }}public string PreviousPageButtonToolTip{get { return ("上⼀页"); }}public string PrintButtonToolTip{get { return ("打印"); }}public string PrintLayoutButtonToolTip{get { return ("打印布局"); }}public string PrintLayoutMenuItemText{get { return ("打印布局"); }}public string PrintMenuItemText{get { return ("打印"); }}public string ProgressText{get { return ("正在⽣成报表"); }}public string RefreshButtonToolTip{get { return ("刷新"); }}public string RefreshMenuItemText{get { return ("刷新"); }}public string SearchTextBoxToolTip{get { return ("在报表中查找⽂本"); }}public string SelectAValue{get { return ("SelectAValue"); }}public string SelectAll{get { return ("SelectAll"); }}public string StopButtonToolTip{get { return ("停⽌"); }}public string StopMenuItemText{get { return ("停⽌"); }}public string TextNotFound{get { return ("Add your custom text here."); } }public string TotalPagesToolTip{get { return ("全部页"); }}public string TrueValueText{get { return ("Add your custom text here."); } }public string UserNamePrompt{get { return ("Add your custom text here."); } }public string ViewReportButtonText{get { return ("Add your custom text here."); } }public string ViewReportButtonToolTip{get { return ("Add your custom text here."); } }public string ZoomControlToolTip{get { return ("缩放"); }}public string ZoomMenuItemText{get { return ("缩放"); }}public string ZoomToPageWidth{get { return ("页宽"); }}public string ZoomToWholePage{get { return ("整页"); }}#endregion} 最后,在你放置ReportViewer的那个界⾯的Load事件或者页⾯构造⽅法⾥边增加⼀⾏代码:ReportViewer1.Messages = new ReportViewerMessages();。
水晶报表基础操作从入门到精通1、水晶报表注册码在使用自带的水晶报表时,请注册,否则只能使用30次,水晶报表注册码如下:注册号:6707437608密码:AAP5GKS0000GDE100DS2、中使用水晶报表我们采用下面的几步使用Push模式执行水晶报表:1设计一个DataSet右击“解决方案浏览器”,选择“添加”--“添加新项”-->“数据集”,从“服务器资源管理器”中的“SQL Server”中拖放“Stores”表(位于PUBS数据库中)。
再将此表拖入数据集中。
而 .xsd文件中仅仅包含一个结构图,但是不会有任何数据在里面。
2创建一个.rpt文件同时将其指定给上一步建立的DataSet。
使用上面的介绍过的方法创建此文件,唯一的不同就是使用数据集来代替前面的直接连接数据。
建立.rpt文件之后,右击“详细资料”-->“添加/删除数据库”,在”数据库专家“窗口中,展开”项目数据“(代替以前的OleDb),展开“数据集”--“DataSet1”,选择“Stores”表。
将“Stores”表添加到“选定的表”中,点击“OK”。
3在aspx页面中拖放一个CrystalReportViewer控件同时将其与前面的rpt文件建立联系。
使用PULL模式下的方法,建立一个WebForm,添加一个Crystal Report Viewer 控件,并设定其属性,此处与PULL模式下是一致的。
代码如下:private void Page_Load(object sender, System.EventArgs e{DataSet1 ds = new DataSet1(;oCR = new MyReport(;SqlConnection MyConn = newSqlConnection(ConfigurationSettings.AppSettings["SqlConn"];MyConn.Open(;//直接访问数据表//string strSel = "select * from tbtree";//SqlDataAdapter MyAdapter = new SqlDataAdapter(strSel,MyConn;//MyAdapter.Fill(ds,"tbtree";//使用存储过程SqlCommand cmd = new SqlCommand("display", MyConn;mandType = CommandType.StoredProcedure;SqlDataAdapter MyAdapter = new SqlDataAdapter(cmd;MyAdapter.Fill(ds,"tbtree";oCR.SetDataSource(ds;}注意:在上面的代码中,你得注意一下oRpt是"Strongly Typed"的报表文件。
winform报表开发实例WinForm报表开发通常涉及到使用Microsoft ReportViewer控件,它允许您创建、设计和呈现复杂的报表。
以下是一个简单的WinForm报表开发实例:1. 创建WinForm项目:打开Visual Studio。
选择“创建新项目”。
选择“Windows Forms App (.NET Framework)”。
命名项目并点击“创建”。
2. 添加ReportViewer控件:在工具箱中找到`ReportViewer`控件。
将它拖到Form上。
3. 准备数据源:添加一个类来模拟数据源,例如`Employees`类。
```csharppublic class Employee{public int Id { get; set; }public string Name { get; set; }public string Department { get; set; }}```4. 设置数据源:在Form的代码文件中,创建一个`List<Employee>`对象作为数据源。
```csharppublic partial class MainForm : Form{private List<Employee> employees = new List<Employee>{new Employee { Id = 1, Name = "John Doe", Department = "HR" },new Employee { Id = 2, Name = "Jane Smith", Department = "IT" },// 添加更多员工数据...};}```5. 设置报表:在`ReportViewer`控件的属性中,设置`ProcessingMode`为`Local`。
在Winform开发中使⽤Grid++报表之前⼀直使⽤各种报表⼯具,如RDLC、DevExpress套件的XtraReport报表,在之前⼀些随笔也有介绍,最近接触锐浪的Grid++报表,做了⼀些测试例⼦和辅助类来处理报表内容,觉得还是很不错的,特别是它的作者提供了很多报表的设计模板案例,功能还是⾮常强⼤的。
试着⽤来做⼀些简单的报表,测试下功能,发现常规的⼆维表、套打、条形码⼆维码等我关注的功能都有,是⼀个⽐较强⼤的报表控件,本篇随笔主要介绍在Winform开发中使⽤Grid++报表设计报表模板,以及绑定数据的处理过程。
1、报表模板设计这个报表系统,报表模板提供了很多案例,我们可以⼤概浏览下其功能。
它对应在相应的⽂件⽬录⾥⾯,我们可以逐⼀查看了解下,感觉提供这么多报表还是很赞的,我们可以参考着来⽤,⾮常好。
整个报表主要是基于现有数据进⾏⼀个报表的模板设计的,如果要预览效果,我们⼀般是需要绑定现有的数据,可以从各种数据库提供数据源,然后设计报表模板,进⾏实时的数据和格式查看及调整。
空⽩的报表模板⼤概如下所⽰,包含页眉页脚,以及明细表格的内容。
根据它的教程,模仿着简单的做了⼀个报表,也主要是设计报表格式的调整,和数据源的处理的关系,我们做⼀个两个报表就可以很快上⼿了。
为了动态的加⼊我们表格所需要的列,我们可以通过数据库⾥⾯的字段进⾏加⼊,⾸先提供数据源,指定我们具体的表即可(如果是⾃定义的信息,则可以⼿⼯添加字段)这个⾥⾯就是配置不同的数据库数据源了如SQLServer数据库的配置信息如下。
为了⽅便,我们可以利⽤案例的Access数据库,也就是Northwind.mdb来测试我们的报表,弄好这些我们指定对应的数据表数据即可。
这⾥⾯配置好数据库表信息后,我们就可以⽤它⽣成相关的字段和对应的列信息了修改列的表头,让它符合中⽂的表头列,如下所⽰。
我们在页脚出,加⼊了打印时间,页码的⼀些系统变量,具体操作就是添加⼀个综合⽂本,然后在内容⾥⾯插⼊指定的域内容即可,如下所⽰预览报表,我们就可以看到具体的报表格式显⽰了。
1.报表制作
(1)新建报表:利用工具箱中报表项下的工具制作报表,如需给报表里的数据逐一赋值,需要使用”报表数据“窗口下的参数进行赋值。
如图:
新建参数可以点击”参数“,右键->添加参数。
如果需要显示图片,要选择”图像“工具,并且要设置报表显示控件ReportView的本地报表属性的EnableExternalImages的值为True。
(2)给报表指定自定义数据源
reportViewer.LocalReport.DataSources.Clear();
ReportDataSources ds=new ReportDataSources();
ds.value=你自己定义的数据源(可以是table、list<>等等)
reportViewer.LocalReport.DataSources.Add(ds);
(3)给报表的参数赋值
reportViewer.LocalReport.SetParameters(可以一个一个赋值,也可以以list<>的方式赋值) 至此报表制作就完成了。
2.报表打印
(1)需要添加三个引用(必不可少)
报表制作完成之后,可以新建个窗体,添加ReportViewer报表显示控件,为报表显示控件设置要显示的报表,点击右上角的小三角设置显示的报表。
默认添加的引用有两个mon;Microsoft.ReportViewer.WinForms,因为调试时候引用的是本地引用,实际运行的时候会报错,所以需要把引用复制到运行目录下。
右键点击需要复制到运行目录下的引用,在属性里把->复制本地设置为True。
第三个引用需要自己添加,右键点击->引用->添加引用->浏览->C:\Windows\assembly\GAC_MSIL\Microsoft.ReportViewer.ProcessingObjectModel\11.
0.0.0__89845dcd8080cc91\Microsoft.ReportViewer.ProcessingObjectModel.DLL 点击->添加就可以了,同理:需要设置下复制本地
(2)把报表添加到运行目录
右键需要设置的报表,在属性里设置->复制到输出目录:始终复制。