水晶报表操作WebForm
- 格式:pdf
- 大小:223.99 KB
- 文档页数:13
水晶报表的基本使用方法水晶报表是一种数据可视化工具,可以帮助用户更直观、清晰地呈现数据。
使用水晶报表可以轻松创建各种类型的报表,包括数据表格、图表、交叉表等。
本文将介绍水晶报表的基本使用方法。
一、创建报表在水晶报表软件中,可以通过多种方式创建报表。
最常用的方法是使用向导或模板来创建报表。
用户可以根据需要选择不同的报表类型和样式,然后按照向导的指引逐步完成报表的设计和设置。
二、导入数据在创建报表之前,首先需要导入数据。
水晶报表支持多种数据源,包括数据库、Excel表格、文本文件等。
用户可以选择合适的数据源,并根据需要设置数据连接参数。
导入数据后,可以对数据进行预处理,如筛选、排序、分组等操作。
三、设计报表在导入数据后,可以开始设计报表的布局和样式。
水晶报表提供了丰富的设计工具和功能,可以轻松创建各种类型的报表。
用户可以选择合适的数据字段,并根据需要设置字段的显示格式、计算公式等。
此外,还可以添加标题、页眉、页脚等元素,以及设置报表的背景、字体、颜色等样式。
四、创建数据透视表水晶报表还支持创建数据透视表,可以帮助用户更好地分析和汇总数据。
用户可以选择需要分析的字段和计算方式,然后根据需要进行数据透视表的设置和调整。
通过数据透视表,可以快速生成汇总表、交叉表等报表,并进行数据筛选、排序、分组等操作。
五、添加图表水晶报表提供了丰富的图表类型,包括柱状图、折线图、饼图等。
用户可以根据需要选择合适的图表类型,并将数据字段拖拽到图表中进行数据分析和展示。
通过设置图表的样式、颜色、标签等属性,可以使报表更加直观、易于理解。
六、设置报表参数在设计报表过程中,还可以设置报表的参数,以便用户在查看报表时进行灵活的数据筛选和分析。
用户可以添加参数字段,并设置参数的类型、默认值、取值范围等属性。
通过参数设置,可以实现报表的动态筛选和交互式操作。
七、导出报表完成报表设计后,可以将报表导出为不同的格式,如PDF、Excel、Word等。
1。
第一步是添加新项CrystalReport12。
在CrystalReport1.rpt面页右键选择:”数据库” ”添加/删除数据库”出现下面对话框:然后点开OLE DB(ADO)的加号,将弹出选择数据库的对话框其中”项目数据”里面的”当前连接”显示的就是OLE DB(ADO)的连接,这样就可以将表添加到右边的”选定的表”中了(切记:不要既从”OLE DB”中选表或命令又从”当前连接”中选,如果你用了数据集,也是一样的道理,否则全提示出”登陆失败”的错误!)3。
字段资料管理器里面”数据库字段”里把字段直接拖到CrystalReport.rpt里面了.布置好布局.4。
回到WebForm1.aspx页面,选择控件CrystalReportViewer将其放到页面上。
5。
代码using CrystalDecisions.Shared;using CrystalDecisions.CrystalReports.Engine;在WebForm1.aspx.cs的Form_Load里面添加代码:TableLogOnInfo logOnInfo = new TableLogOnInfo();ReportDocument rpdMy0= new ReportDocument();logOnInfo.ConnectionInfo.ServerName = "NNN";logOnInfo.ConnectionInfo.Password="dong";logOnInfo.ConnectionInfo.DatabaseName="Lab";erID = "sa";String path = Server.MapPath("CrystalReport2.rpt");rpdMy0.Load(path);rpdMy0.Database.Tables[0].ApplyLogOnInfo(logOnInfo);CrystalReportViewer1.ReportSource = rpdMy0;其中:TableLogOnInfo类是:提供属性,以便检索和设置表连接选项.它有一个连接的属性ConnectionInfo,用来设置与数据库的连接.如上面的ServerName等.生成一个报表文档对象将前面我们做好的那个CrystalReport1.rpt赋给它.在这里要注意的是Database属性!然后把报表对象做为CrystalReportViewer1的数据源.或者,获得数据库的方法改为直接从数据库获得DataSetusing System.Data.SqlClient;using System.Collections.Specialized;string strConn=System.Configuration.ConfigurationSettings. AppSettings["DB"].ToString();using (SqlConnection conn = new SqlConnection(strConn)) {SqlDataAdapter da = new SqlDataAdapter(strSQL,conn); //strSQL是SQL语言"select * from dbo.table1"DataSet ds=new DataSet();da.Fill( ds);CrystalReport1 cr1 = new CrystalReport1();cr1.SetDataSource( ds);CrystalReportViewer1.ReportSource = cr1;}using CrystalDecisions.Shared;using CrystalDecisions.CrystalReports.Engine;在WebForm1.aspx.cs的Form_Load里面添加代码:TableLogOnInfo logOnInfo = new TableLogOnInfo();ReportDocument rpdMy0= new ReportDocument();logOnInfo.ConnectionInfo.ServerName = "NNN";logOnInfo.ConnectionInfo.Password="dong";logOnInfo.ConnectionInfo.DatabaseName="Lab";erID = "sa";String path = Server.MapPath("CrystalReport2.rpt");rpdMy0.Load(path);rpdMy0.Database.Tables[0].ApplyLogOnInfo(logOnInfo);CrystalReportViewer1.ReportSource = rpdMy0;其中:TableLogOnInfo类是:提供属性,以便检索和设置表连接选项.它有一个连接的属性ConnectionInfo,用来设置与数据库的连接.如上面的ServerName等.生成一个报表文档对象将前面我们做好的那个CrystalReport1.rpt赋给它.在这里要注意的是Database属性!然后把报表对象做为CrystalReportViewer1的数据源.或者,获得数据库的方法改为直接从数据库获得DataSetusing System.Data.SqlClient;using System.Collections.Specialized;string strConn=System.Configuration.ConfigurationSettings. AppSettings["DB"].ToString();using (SqlConnection conn = new SqlConnection(strConn)) {SqlDataAdapter da = new SqlDataAdapter(strSQL,conn); //strSQL是SQL语言"select * from dbo.table1"DataSet ds=new DataSet();da.Fill( ds);CrystalReport1 cr1 = new CrystalReport1();cr1.SetDataSource( ds);CrystalReportViewer1.ReportSource = cr1;}using CrystalDecisions.Shared;using CrystalDecisions.CrystalReports.Engine;在WebForm1.aspx.cs的Form_Load里面添加代码:TableLogOnInfo logOnInfo = new TableLogOnInfo();ReportDocument rpdMy0= new ReportDocument();logOnInfo.ConnectionInfo.ServerName = "NNN";logOnInfo.ConnectionInfo.Password="dong";logOnInfo.ConnectionInfo.DatabaseName="Lab";erID = "sa";String path = Server.MapPath("CrystalReport2.rpt");rpdMy0.Load(path);rpdMy0.Database.Tables[0].ApplyLogOnInfo(logOnInfo);CrystalReportViewer1.ReportSource = rpdMy0;其中:TableLogOnInfo类是:提供属性,以便检索和设置表连接选项.它有一个连接的属性ConnectionInfo,用来设置与数据库的连接.如上面的ServerName等.生成一个报表文档对象将前面我们做好的那个CrystalReport1.rpt赋给它.在这里要注意的是Database属性!然后把报表对象做为CrystalReportViewer1的数据源.或者,获得数据库的方法改为直接从数据库获得DataSetusing System.Data.SqlClient;using System.Collections.Specialized;string strConn=System.Configuration.ConfigurationSettings. AppSettings["DB"].ToString();using (SqlConnection conn = new SqlConnection(strConn)) {SqlDataAdapter da = new SqlDataAdapter(strSQL,conn);//strSQL是SQL语言"select * from dbo.table1"DataSet ds=new DataSet();da.Fill( ds);CrystalReport1 cr1 = new CrystalReport1(); cr1.SetDataSource( ds);CrystalReportViewer1.ReportSource = cr1;}。
水晶报表应用? 水晶报表有下面一些主要的优点:1.快速的报表开发2.能够导出成为复杂的交互性图表3.可以与其它控件一起在WebForm中使用能够动态地将报表导出为pdf,.doc,xls,html,rtf等多种格式.水晶报表中的重要组件:.rpt报表文件在项目中添加crystalreport文件。
创建后在该页面的同一个目录有一个.rpt文件Data Source.rpt文件取得数据库的方法取决于你方法的选择,你能选择让水晶报表自己选择数据而不使用任何代码或者也可以选择手动的组装DataSet,然后再将其传送到报表文件。
水晶报表查看控件(Crystal Report Viewer web form Control (CRWebFormViewer.dll))执行模式Pull 模式:被请求时,水晶报表直接根据指定的驱动连接数据库然后组装这些数据。
1. 显示系统自带的报表文件在CrystalReportViewer1的DataBindings中ReportSource的自定义绑定表达式中格式应该是"F:\\张华杰的文件\\常用文件\\工作文件\\教学资料\\力龙试点班\\STP教学PPT\\第十二讲STP结项管理理论\\程序示例\\CrystalReport\\报表示例\\World Sales Report.rpt" 2. 创建报表文件(.rpt)1) 在右击”解决方案游览器“,在弹出的菜单中选择”添加“--”添加新项“-->”Crystal Report”2) 在”Crystal Report 库”中选择”作为空白报表“单选按钮,最后单击“确定“。
3) 这里将弹出水晶报表设计器。
4) 右击报表中的”详细资料区”,选择“数据库”->“添加/删除数据库..."5) 在弹出的”数据库专家“中,扩展”OLE DB(ADO)“选项,此时会弹出另外一个”OLE DB(ADO)“窗口。
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、运⾏报表设计点丑,但是你可以根基⾃⼰的风格进⾏排版设计,如字体,⼤⼩,颜⾊等啦。
在网上查询了很多资料,一直都没有找到在MVC模式下使用水晶报表的例子,大多都认为水晶报表在MVC模式下不兼容,没法使用。
因为报表需要套打,用EXCEL做报表,根据记录数分页,本人认为写记录太过麻烦,所以就不停测试使用水晶报表,功夫不负有心人,在本人一个月的不停测试中,终于实现了,水晶报表在MVC模式下调用。
在MVC模式下使用水晶报表的步骤:1.在controller文件夹里面建立自己的水晶报表StackingDemoRep2.在需要调用报表的controller.cs里写入代码:////定义报表实体StackingDemoRep rep = new StackingDemoRep();////查询报表页眉中字段string headsql = string.Format("Select * from tsmdw01 where stacking_no='{0}' order by stacking_no", Tsmdw01s[0].stacking_no);var headrec = db.ExecuteDataTable(headsql);///动态绑定页眉中字段///页眉中收货单位名字:TextConsignUserNameCrystalDecisions.CrystalReports.Engine.TextObject textconsignusername = (CrystalDecisions.CrystalReports.Engine.TextObject)rep.ReportDefinition.ReportObjects["TextC onsignUserName"];textconsignusername.Text = headrec.Rows[0]["consign_user_name"].ToString();/////查询报表内容/////建立ORACLE连接OracleConnection oraconn = new OracleConnection();oraconn.ConnectionString = "Data Source=dbname;Persist Security Info=True;User ID=dbuser;Password=dbpass;Unicode=True";oraconn.Open();string sqlstr = string.Format("SELECT mat_no, order_no,"+ " mat_thick, mat_width,"+ " mat_len, sg_sign,"+ " stacking_no, mat_net_wt,"+ " sg_std, heat_no "+ "FROM TSMDFA1 "+ " WHERE stacking_no = '{0}' ", Tsmdw01s[0].stacking_no);///创建水晶视图CrystalReportViewer repview = new CrystalReportViewer();////////查询数据OracleDataAdapter rd = new OracleDataAdapter(sqlstr, oraconn);DataSet repdataset = new DataSet();//////绑定数据集rd.Fill(repdataset, "tsmdfa1");///////报表连接数据库,根据建水晶报表时的连接字符串设置////必须要有这个过程,否则调用报表时就会报错没有登陆rep.SetDatabaseLogon("dbuser", "dbpassword");/////报表绑定repview.ReportSource = rep;/////设置横向打印//////在这里设置横向,是不起作用的,必须在//////本人最后是选择不设置,而通过设定页边距来设置一页的大小rep.PrintOptions.PaperOrientation =CrystalDecisions.Shared.PaperOrientation.Portrait;///服务器打印//rep.PrintToPrinter(1, true, 0, 0); ///在服务器端打印//rep.ExportToDisk(CrystalDecisions.Shared.ExportFormatType.Excel,"C:\\Documents and Settings\\Administrator\\桌面\\码单.xls");//rep.ExportToDisk(CrystalDecisions.Shared.ExportFormatType.WordForWindows, "C:\\Documents and Settings\\Administrator\\桌面\\码单.doc");/////保存报表并上传至服务器rep.ExportToDisk(CrystalDecisions.Shared.ExportFormatType.WordForWindows,Server.MapPath("~/r eport/套打报表.doc"));rep.Close();oraconn.Close();//////保存至本地FileInfo fi = new FileInfo(Server.MapPath("~/report/套打报表.doc"));Response.AddHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode());Response.AddHeader("Content-Length", fi.Length.ToString());Response.ContentType = "application/octet-stream";Response.WriteFile(fi.FullName, 0, fi.Length);Response.Flush();3.打开word打印另外:水晶报表发布时必须注意以下几个问题:1.服务器上必须安装水晶报表,否则会导致所有controller 失效:Program Files\MicrosoftSDKs\Windows\v6.0A\Bootstrapper\Packages\CrystalReports10_52.将Program Files\Microsoft Visual Studio 9.0\ReportViewer文件夹下的DLL文件都拷贝到BIN文件夹下。
JA V A水晶报表使用过程及注意事项一、第一阶段1.软件安装:Crystal Reports XI + Eclipse2.首先打开Eclipse,新建报表模板:new→other→ Crystal Reports web Project,姑且命名为Pen 注:此时可能会显示错误,不要紧,请不要理会。
3.在Java Resources:src下面的默认包中创建欲使用的JavaBean,如:Pen.java注意:一定要保存4.右键点击JavaBean下面的,选择Crystal Report→ add to a new Crystal Report,并自行创建名称注:名称的创建是有用处的,这便是生成模板的过程5.这时选择左下角的Layout,即可看见可视化编辑窗口,在右侧的Field Explorer中可选择所创建的虚拟字段(所创建的JavaBean中的属性)放入窗口中。
二、第二阶段6.打开MyEclipse,创建web project,命名为PenDemo。
7.复制Pen(Crystal Reports web Project中)项目src文件夹下的com文件夹、CRConfig.xml和log4j.properties文件到PenDemo(MyEclipse中的正常web project)中相应的目录下。
注:这时你会看见有错误,下一步解决8.复制Pen(Crystal Reports web Project中)项目WEB-INF下的全部内容到PenDemo(MyEclipse 中的正常web project)到相应的目录下。
注:请刷新PenDemo项目你会发现错误消失9.请将PenDemo(MyEclipse中的正常web project)src下面包中的生成的report模板cut至webroot 下。
10.copy资料包中的除了web-inf以外的所有文件(夹)至项目工程PenDemo相应的目录下注:刷新又出现错误了,不要紧,这是因为我们本末倒置的缘故,具体原因自己思考11.为了节省时间,我们可以copy资料包中的相关对数据操作的业务类来直接用,首先copy资料包中的DataSource.java至PenDemo项目中,存放的包及路径自己定。