打印水晶报表

既然要用到水晶报表,我们就要去官网下载水晶报表插件SAP Crystal Reports
在这里插入图片描述
然后在项目添加个文件夹,再添加新建项Reporting中的Crystal Reports,这里我们水晶报表名称为AchievementReport,然后还要添加一个新建项数据集,分别建立我们所需要的数据字段

接着,我们在AchievementReport也就是水晶报表中,在字段资源管理器中右键数据库字段,选择数据库专家,然后添加自己创建的数据集,这里我们的数据集为tbAchivment
在这里插入图片描述
然后就是在报表中画出我们所想要的样式,这里总共6种数据,需要我们分别从数据库字段中拉出来,拉到Section3(详细资料)这位置,然后它上面的就是我们的表头,我们可以分别去改,下面就是我们的数据了,还有一些标题,时间等,我们直接右键添加所需要的就可以了
在这里插入图片描述
完成上面步骤,接下来就是我们的代码了,首先在控制器中定义一个方法ExporStudentAchievement(),把我们所需要的数据查询出来,可以用linq或其他方法查询出来,因为查询的数据格式跟报表格式不一样,所以我们就要把数据listAchievememts转换为DataTable类型,这里LINQToDataTable()是我们定义好的方法,可以将IEnumerable类型转化为DataTable类型,然后实例化数据集dbReport,将dt的数据放入数据集的数据表tbAchivemt中,接着实例化报表,把报表文件加载到ReportDocument,设置报表的数据源,然后将它转化为文件流,然后返回
在这里插入图片描述
视图层我们可以绑定个单击按钮,去请求这个方法,看自己的需求

注:LINQToDataTable()方法
在这里插入图片描述