报表的打印

开发工具与关键技术: vs mvc
作者:
撰写时间:2019年3月28日

在使用计算机时,或多或少都需要打印一些内容出来,那么在我学习的这个项目中恰好有这个内容,写出来加深些记忆。
在项目中用到的一个插件叫水晶报表,首先是先安装好,才能进行下一步,如果安装好打开新建项会看到这样的一个图标
也建立个文件夹来装一些在建报时需要用到的一些文件,里面放了水晶报表的插件和一个需要用到的数据集。那么还得建个数据集,里面添加有两种方式,一种是从数据库里获取所需要的字段和ID,还有就是自己创建字段但属性需要注意要和数据库的数据类型相同。
在这里插入图片描述在这里插入图片描述
左边的表是自己创建字段的,右边的是从数据库里指定连接数据库所必需的连接字符串。
在自己建表中只需建其中的一种即可。第一张表中的属性的数据类型是需要自己去调一下的,因为创建时它默认的是string类型的。
下一个的步骤就是画报表的样式了,你会看到它给了一个模板,已经划分好了区域让你清楚在哪个地方建表头,哪个地方建页脚。
在这里插入图片描述
然后就要你对页面进行设置把宽高设置后就会增大一点,然后画线,画框,让其看起来有报表该有的模样。画好后的样子,图:
在这里插入图片描述
还有一个预览图:
在这里插入图片描述
那个空隙画了很久,就是不行(想吐槽),那么大体就是这样的一个效果,当然可以画的更美观,通过各种颜色搭配也能很好看。
表画好了也要回到控制器写方法,通过调用才能完成在项目页面的显示。
public ActionResult dayin(int AcademeID, int GradeID, int ClassID)
{
#region 数据查询 #endregion
DataTable dt = LINQToDataTable(listAchiement);//将listResult转化为DataTable类型数据
PrintReport.ReportDB myDB = new PrintReport.ReportDB();
myDB.Tables[“tbAchievement”].Merge(dt); //将dt的数据放入数据集的数据表中
AchievementReport rp = new AchievementReport(); //实例化报表模板
string strRptPath = System.Web.HttpContext.Current.Server.MapPath("~/")+“Areas\ExaminationManagement\PrintReport\AchievementReport.rpt”; //获取报表物理文件地址
rp.Load(strRptPath); //把报表文件加载到ReportDocument
rp.SetDataSource(myDB); //设置报表数据源
Stream stream = rp.ExportToStream(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat);
//把ReportDocument转化为文件流
return File(stream, “application/pdf”); }
在数据查询里面还有大量的多表查询的代码,就不放出来了,这是控制器里调用报表的方法,在这里没有查询的代码其它的都写了相对应的注释,让大家能看得懂这代码是什么意思。
在HTML的页面也要有代表打印报表的按钮,以方便点击打印,给它起个函数,通过单击事件就能使用。
打印报表
这次的水晶报表就写到这,若有不对,请告知。
谢谢阅读。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值