打印报表
开发工具与关键技术:Visual Studio 2015
作者:李仁海
撰写时间:2019.4.18
一、
1、打印水晶报表首先要做的就是查询,这个查询呢单表、多表查询不一样的就是要加多一部分group by分组语法;首先var再自定义一个变量listAchievement等于from再自定义一个范围变量tbAchievement再in实例化myModels的字段后.表PW_Achievement学生表,group元素分组、也就是给表进行分组。
2、用户ID UserID 等于范围变量tbStudent加个Key的属性是 返回进行分组的关键字段的值 ,单表与多表查询不一样的就是加多了一步表的分组,如图下所显示的一样
3、然后就是多表进行查询了,首先List以通过索引来访问对象,提供对表进行搜索、排序的操作方法 ,那么接着可以自定义一个变量等于括号from再自定义一个范围变量tbAchievemnt再in listAchievement就是拿到上面分组的自定义变量然后直接换行join连接表, 就可以进行join的多表连接模式进行多表连接查询了;
4、再者之后就是这个List拿到这些学号的名称、姓名的名称等等,接着的ID数据就是传参的数据了,三个ID就是从视图那边传过来的参数再进行对比等于表这里的ID相同之处了,也就是筛选的数据。
5、条件筛选就是将上面的三个传过来的ID进行条件的筛选
(1)if判断AcademeID 大于0,然后局部变量listResult 也就是上面查询自定义的局部变量,再等于局部变量然后基于谓词筛选值序列,接着m参数等于大于参数m的 AcademeID 等于等于AcademeID ,ToList()所谓的创建一个,
(2) if判断GradeID大于0,然后局部变量listResult 也就是上面查询自定义的局部变量,再等于局部变量然后基于谓词筛选值序列,接着m参数等于大于参数m的 GradeID等于等于GradeID,ToList()所谓的创建一个,
(3) if判断ClassID大于0,然后局部变量listResult 也就是上面查询自定义的局部变量,再等于局部变量然后基于谓词筛选值序列,接着m参数等于大于参数m的 ClassID等于等于ClassID,ToList()所谓的创建一个,
就如图1中所显示的代码了
图1
二、就是要将查询出来的数据,将他转换为DataTable的格式类型:就如这DataTable后自定义一个名称dtResult等于LINQToDataTable括号把查询的自定义名称局部变量listResult拿到这,就是要将查询的数据转换为DataTable的格式类型了。
(1)、转换为DataTable的格式类型了之后就要进行实例化了,把数据进行实例化了他,
(2)、然后拿到实例化的自定义局部变量dbReport再给一个Tables来个中括号放tbAchievement的数据集表,再Merge在括号放进dtResult的转换为DataTable的格式类型的自定义局部变量就是把它放进tbAchievement的数据集里面。
(3)、那么就要再次将实例化数据报表。
(4)、接着再来个获取报表的物理文件路径;
(5)、也是时候将加载到的数据加载到报表模板中去了;
(6)、加载到报表模板,就要慎重报表的数据源了
(7)、最后一步就是将这些数据报表转换为文件流来输出了
图2
(这是现在跟老师学习MVC的一个项目内容)