资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,C#,程序设计,第九章,水晶报表设计与产品发布,本章任务,能使用水晶报表设计器设计报表,能在报表中设置数据筛选、排序与分组,能通过创建安装项目的方法进行应用程序打包,任务,9.1“,学生信息管理系统”项目,学生成绩报表设计,在前面介绍的任务,8.3,框架的基础上,添加一个窗体到,“,学生信息管理系统,”,项目的表示层项目中,用于显示成绩查询报表。在查询条件中输入相应的条件后单击,“,生成报表,”,按钮,在窗体右侧的报表显示控件中将会显示符合条件的学生成绩信息,任务,9.1“,学生信息管理系统”项目,学生成绩报表设计,在本任务中我们使用了,CrystalReportViewer,控件来显示报表,使用报表设计器设计了报表的格式,并完成了基于三层架构为报表提供动态的数据源代码的编写。水晶报表设计器不仅提供了设计报表格式的工具,同时它还能实现报表数据的排序、筛选和分组显示等功能,在数据库中添加表和视图,创建报表显示窗体,在“学生信息管理系统”的表示层项目中,添加一个窗体,StuResultsReport,作为报表显示窗体,窗体上的控件类型及布局如图所示,设计报表文档,在表示层项目中添加新建项,项目类型选择“,Reporting”,,模板选择“,Crystal,报表”,命名为“,StuResultsReport,”,,如图所示,完成后的报表格式如右图所示,完成后的报表格式如图所示,添加数据访问层代码,在数据访问层项目添加一个,StuResaultDB.cs,类,在该类中设计一个,GetStuResaults,()方法,用于实现返回一个,DataTable,数据集,,StuResaultDB.cs,类代码如下,public class,StuResaultDB,public,DataTable,GetStuResaults(string,sql,),return DBHelper.GetDataSet(sql).Tables0;,添加业务逻辑层代码,public class,StuResaultService,StuResaultDB,srdb,=new,StuResaultDB();/实例化一个数据访问层类对象,public,DataTable,GetStuResaultBysql(string,sql,),return,srdb.GetStuResaults(sql,);,在业务逻辑层项目中添加一个,StuResaultService.cs,类,设计一个,GetStuResaultBysql,()方法,用于为数据访问层提供服务,代码如下:,运行调试,代码编写完成后按,F5,进行调试,不输入任何查询条件,按“生成成绩报表”按钮,报表运行结果如图所示,CrystalReportViewer控件,属,性,属性,说明,DisplayToolbar,设置报表工具栏是显示还是隐藏,DisplayStatusBar,设置报表状态栏是显示还是隐藏,EnableToolTips,设置是否在报表查看器中显示工具栏,ReportSource,设置报表文档源,Crystal报表设计器,报表数据排序,记录排序专家,记录排序结果,报表数据分组,2,、分组结果,1,、组专家对话框,报表数据筛选,1,、选择专家对话框,2,、数据筛选结果,在报表中插入图表,1,、图表专家对话框,2,、运行结果,任务,9.2“,学生信息管理系统”项目,应用程序打包发布,将“学生信息管理系统”项目打包发布到其他计算机上,要求:,(,1,)能在桌面和程序菜单中为应用程序创建快捷方式并指定快捷方式的图标;,(,2,)能创建与应用程序安装对应的卸载程序;,(,3,)能安装系统数据库。,创建安装部署项目,添加项目输出,生成安装文件,添加程序卸载类,class Program,static void,Main(string,args,),string,sysroot,=,System.Environment.SystemDirectory,;,string,productcode,=95394279-B44B-4C36-8D5C-7AF496FF7EA0;,System.Diagnostics.Process.Start(sysroot,+,msiexec.exe,/x+,productcode,+/,qr,);,Program.cs,关键代码:,添加快捷方式及运行结果,添加数据安装程序类,添加类代码,/,该方法的功能是创建附加数据库的SQL操作语句,请注意底纹部分的代码应根据应用程序中数据库连接、字符串中的database的值做相应的改动,private string,CreateSqlStr,(),string,sqlstr,=;,string,datafile,=,System.IO.Path.Combine(dbpath,StudentManagement.mdf,);,string,logfile,=,System.IO.Path.Combine(dbpath,StudentManagement_log.ldf,);,sqlstr,=exec,sp_attach_db,NStudentManagement,N,+,datafile,+,N+,logfile,+;,return,sqlstr,;,private void,ExecuteSql(string,DatabaseName,string,SqlStr,),string,SqlConnectionStr,=server=+,servername,+;,uid,=+username+;,pwd,=+password;,SqlConnection,myConnection,=new,SqlConnection(SqlConnectionStr,);,SqlCommand,myCommand,=new,SqlCommand(SqlStr,myConnection,);,myCommand.Connection.Open,();,myCommand.Connection.ChangeDatabase(DatabaseName,);,myCommand.ExecuteNonQuery,();,myCommand.Connection.Close,();,设计用户界面,添加自定义窗体,项目运行结果,谢 谢!,
展开阅读全文