打印报表

                                   打印报表
开发工具与关键技术: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的一个项目内容)

reprint 使用说明 直接从datasource,dbgrid,stringgrid导入数据, 只需简单设置,不用手工制作,即可生成您需要的报表,具有预览功能。即可自定义纸张,又可适应 打印机默认纸张。各种打印设置,功能更强大。 一 、控件属性: 1、colstitle 设置报表的列标题属性 (1)alignment 列标题对齐方式。 (2)font 列标题字体 (3)print 设置是否打印列标题 (4)rowspace 列标题行的高度 2、datasource 选择要打印的datasource 3、dbgrid 选择要打印的dbgrid 4、stringgrid 选择要打印的stringgrid 5、detail 设置要打印的明细数据属性 (1)arrange 设置明细字段排列方向 Horizontal 横向打印(默认的一般打印) Vertical 竖向打印(字段竖向排列适合打印字段内容较长的报表如“会议纪录”) (2)aotureturn 打印明细字段时,如果字段超过列的宽度是否允许自动换行 (3)colsline 设置竖线属性引用tpen类 (4)footer 设置明细尾 (5)frame 设置明细边框属性引用tpen类 (6)head 设置明细头同footer (7)rowsline 设置横线属性引用tpen类 (8)rowspace 设置明细行的高度 (9)top 明细与标题的距离 6、page 设置纸张的上下左右边距 7、pagefooter 设置页脚同明细尾 8、pageheader 设置页眉同页脚 9、printobject 选择要打印的对象 (datasource 、dbgrid、 stringgrid ) 10、title 设置标题类页眉、页脚 二 、控件方法: (1) preview 预览 (2) print 打印 (3) SaveToFile() 保存为报表文件 (4) SaveToStream() 保存为流(然后就可把整个报表存到数据库了很方便哦! ~_~) (5) PrintFile() 打印报表文件 (6) PrintStream() 打印流(流的数据库存取就不用多说了吧) (7) PreviewFile() 预览文件 (8) PreviewStream() 预览流 (9) OptionToStream() 报表的属性保存为流 (10) OptionFromStream() 从流中得到报表属性 三、 控件事件: AfterPrint 打印后 BeforePrint 打印前 (本来很多事件,但没有预览,后来加上预览以及一些方法后实现很困难就去掉了!) 四、注意事项 (1) text 属性,输入“¦;#¦;”打印页码值,如果想打印页码可输入“第¦;#¦;页” 输入¦;RecordCount¦;”打印记录数 (2) 不同的打印机,打印和预览效果可能有一点点不同(保证数据打印完全正确一致)。本人用一台针式和一台激光打印机做测试,开始差别较大后经过调试基本一致,不知其他打印机如何。 就这些个吧基本满足了我的软件开发需要,解决了很多问题,关键是做报表省了很大力气,当然了很复杂的报表还是要其它报表控件来解决。如果有其他问题或好的建议可与我联系。 程序设计:吴进昊 E-mail :jinhaowu@hotmail.com qq :54254770 2003.01.03 新增明细栏的左右对齐. 纸张类型、打印方向设置! 标题的每页打印设置。 列标题的每页,每行打印设置。 修改了打印时的错误!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值