打印

文献种类:专题技术文献;

开发工具与关键技术:Visual Studio 2015 数据表格的打印

作者: ;年级: ;撰写时间: 年 月 日

文献编号: ;归档时间: 月 日

                               			  打印

开发工具与关键技术:Visual
Studio 2015   数据表格的打印

作者:廖茂

撰写时间:2019年5月15日

在做项目时,会有很多对项目的要求,更有大量的功能需要我们去实现,接下来我们就来实现数据表格的“打印”这个功能,要打印,需要什么?“数据、表格、编程软件”,数据就是需要打印的数据,表格就是存放打印数据的模板,编程软件就是用来执行打印功能的软件。

在对数据进行打印前,需要查询出需要打印的数据,下面为查询数据的条件:
在这里插入图片描述
根据上面的三个条件来进行查询数据,查出需要的数据再进行打印,接下来看一下需要实现的功能:
在这里插入图片描述
上面一个表格,我们需要实现点击左上角的“打印当前数据”按钮或者右上角的打印图标弹出打印页面的操作,下面为打印的模板:
在这里插入图片描述
打印的模板需要自己设计,在同一个页面里的右上角有着三个图标,分别是旋转、下载和打印,这些图标是编程软件所拥有的功能,点击打印图标就可以对数据表格进行打印,如下:
在这里插入图片描述
功能的操作步骤就是以上步骤,接下来进入代码的编写,首先是视图里面的方法:
在这里插入图片描述
首先是多条件查询方法,声明三个参数接收三个下拉框的值,然后对三个变量进行判断,如果变量为空字符串或者为undefined,就设置变量为零,如下:
在这里插入图片描述
上面是其中一个变量的判断,另外两个变量的判断方法与其相同。

判断完后把三个参数变量赋值给一个变量“strConditions”,如下:

strConditions = "AcademeID="+academeId+"&GradeID="+gradeId+"&ClassID="+classId;

接下来刷新表格数据:
在这里插入图片描述
方法中的路径是连接的是控制器中的查询方法,刷新表格时传进三个查询条件。
接下来编写打印的方法:
在这里插入图片描述
方法较为简单,直接就是添加一个加载层,弹出一个提示,然后关闭加载层,再用window中的中的open方法进入打印页面,方法里面的路径连接的就是控制器中打印的控制流程方法。接下来转到控制器:
在这里插入图片描述
需要接受视图传过来的三个参数,然后开始进行数据的查询,由于在这里打印的是学生的最高成绩,所以先把最高成绩查询出来:
在这里插入图片描述
用Lniq查询,使用group by分组以用户ID为依据查询出用户的最高成绩信息,下面为用户的最高成绩信息的获取:
在这里插入图片描述
接下来再通过联表查询查出“学号、姓名、性别、班级、最有成绩、合格类型、学院ID、年级ID、班级ID”:
在这里插入图片描述
查询结束了,要把传过来的三个参数判断一下,如果参数大于零,就分别设置参数等于学院ID、年级ID、班级ID,下面为其中一个参数的判断:
在这里插入图片描述
数据查询完毕了,就将查询出来的数据转化为DataTable格式,在这里数据转化的方法“LINQToDataTable”需要另做编写,如下:

DataTable dtResult = LINQToDataTable(listResult);

然后实例化数据集

PrintReport.ReportDB dbReport = new PrintReport.ReportDB();

到了这一步,我们就需要一个模板存放数据、先安装一个编程软件,在这里安装的是一个水晶报表编程软件,安装好后,直接在项目里面新建一个文件夹,然后在这个文件夹里面新建项,接着选择到已安装里面的Reporting,然后在选择Reporting里面的Crystal Reports文件,再点击添加:
在这里插入图片描述
然后打开添加的文件:
在这里插入图片描述
进入后对数据库字段进行右键点击,选择数据库专家,然后会弹出一个页面,选择展开“项目数据”,再展开“ADO.NET数据集”,再展开下一级文件,最后双击里面的表格,表格就会传到右边的“选定的表”栏目里面,最后点击确定:
在这里插入图片描述
返回单最初页面后,展开数据库字段,里面就有了选择的那张表,展开表格,里面有多个字段:
在这里插入图片描述
里面有多少个字段决定了报表有多少列,然后根据字段创建模板,模板的编辑点击右键会有一个选项栏,利用选项栏里的工具来创建模板,模板样式已在上面展示,可另做样式。这样就有了存放数据的模板了。接下来把数据放到模板里面,先获取报表的物理文件路径:
在这里插入图片描述
获取到路径之后把报表加载到模板中:

rp.Load(strRpPath);

设置报表的数据源:

rp.SetDataSource(dbReport);

最后将报表转化为文件流输出:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值