一步一步教你使用AgileEAS.NET基础类库进行应用开发-WinForm应用篇-实现字典的打印...

系列回顾
         从上一篇文章 一步一步教你使用AgileEAS.NET基础类库进行应用开发-WinForm应用篇-实例一个模块(商品字典)开始我带领大家进入WinForm篇,并且使用示例的形式详细的演示了数据表对象的查询与列表的手工绑定。
本文论点
         今天我将在上一篇文章的基础上介绍信息系统的另一个非常重要的功能,报表与打印,本文要实现的功能就是把商品字典的查询结果(已经显示在UI)打印出来。
         本文结合商品字典的查询我介绍基于ORM实体的报表制做技术与程序中如何应用报表,具体的说就是,如果根据现有的数据对象(数据表对象)建立报表的定义,以及如何在程序中使用报表打印、预览组件,并用商品字典的查询结果(数据表对象)做为报表的填充数据源。
         下面我将先介绍报表的制作:
制做报表
         运行报表设计器ReportDesigner.Start.exe,选择文件菜单的新建--->对象报表,打开“新建数据对象报表”对话框:
image
 
         切换到“数据对象”Tab页,点击“浏览”选择程序集Product.DAL.SQLServer.dll,然后在对象下拉列表中选择“Product.DAL.SQLServer.Product”,然后确定打开设计界面:
image
         上图是报表设计器根据数据实体自动生成的报表,我们需要对其进行修改,修改的合理和好看一些,并预览一下:
 
AE[0]@FNGR6~B]}U3SBT]{W
         在这里面说明一个问题,因为报表是基于数据表对象建立的,没有连接数据库,预览数据是随机生成的,最后我们把报表定义保存到文件中,比如保持为“商品字典.rdl”,这样我们完成了报表的制度。
使用报表
         报表制做完成了,接下来的任务就是如何在程序中使用这个报表,首先我们在Product.UI中引用RdlEngine.dll、RdlViewer.dll、EAS.Report.DAL.Interface.dll、EAS.Report.Controls.dll四个文件,然后我们来编写工具条的打印按钮的Click事件处理代码: 
 
 1       private   void  tsbPrint_Click( object  sender, EventArgs e)
 2      {
 3           if  ( this .lvInfo.Items.Count  ==   0 )
 4          {
 5              MessageBox.Show( " 没有需要打印的数据! " ,  " 提示 " , MessageBoxButtons.OK, MessageBoxIcon.Information);
 6               return ;
 7          }
 8 
 9           if  ( this .printForm  ==   null )
10               this .printForm  =   new  RDLViewDialog();
11 
12           //
13          System.IO.TextReader textReader  =   null ;
14           try
15          {
16               string  fileName  =  Path.Combine(Application.StartupPath,  " Reports\\商品字典.rdl " );
17              textReader  =   new  System.IO.StreamReader(fileName);
18               this .printForm.SourceRdl  =  textReader.ReadToEnd();
19          }
20           finally
21          {
22               if  (textReader  !=   null )
23                  textReader.Close();
24          }
25 
26           this .printForm.DataObject  =   this .lvInfo.Tag;
27           this .printForm.PrintPreview();
28      }
 
编译运行程序,看看效果:
image
 
 
          有关本例子所涉及的数据表结构请参考 基于AgileEAS.NET平台基础类库进行应用开发-总体说明及数据定义一文,有关数据对象模型定义文件、文档、DDL脚本请下载: http://files.cnblogs.com/eastjade/demo.db.doc.sql.rar,本文完整代码下载: Product.Demo.rar
 
链接
QQ群:116773358

本文转自 agilelab 51CTO博客,原文链接:http://blog.51cto.com/agilelab/603117

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值