水晶报表初体验

最近的一个Web项目中,由于有打印和导出成PDF格式的应用,而之前都是通过html语法来直接写的,虽然实现了功能,总有一些瑕疵,了解到水晶报表可以解决之前的问题,So,不得不换成水晶报表来做

 

 今天是我第一次接触水晶报表,之前一直都做服务器开发(网络编程),老实说,有点忐忑,又有点兴奋。

 

 和解决大多数问题一样,先看水晶报表的优点,再看水晶报表的缺点,然后了解资料,园子里面的百来篇我关于水晶报表的,我基本上都看过

 优点太多:

1.适合快速开发,能很方便的出各种饼图,柱图,等

2.方便 灵活的导出功能,兼容大多数文件格式

3. 多钟语言的支持

4.齐全的网络资料

5.可以直接访问各种数据源 

缺点也不少:

1.不支持png图片透明(我的这个应用也还是有这个问题,因为是电子签名的)

2.执行效率太慢

3.无源码,无真相

 

经初步了解,水晶报表加载数据有两种方式

1.Pull(拉模式),直连数据库,但要注意连接参数的设置 优点: 方便,快捷 缺点:灵活性太差,适用面窄

2.Push(推模式),该模式允许程序员通过组装在内存中的表来封装数据 当然就更加灵活,丰富多样

 

使用时遇到几个问题

1.数据源的生成:

 举个例子:当我的报表中需要显示多个表的字段,而这些字段又没法在一条SQL语句中查询(当然,可以在内存中构建临时表的方式来做),我只能打破我原有的三层架构,把数据操作层提了上来,通过传输SQL语句的方式来作词组装DataSet

 1 using (System.Data.SqlClient.SqlConnection connection = new System.Data.SqlClient.SqlConnection(Ecms.DbHelper.DbHelperSQL.connectionString))
 2         {
 3             SQLString = "Select ProductCode,ProductName,ProductModel,Unit as Uint,Amount,Price,Amount*Price as Money,Convert(nvarchar(10),DeliveryDate,111) as DeliveryDate,Remark,ContractID From Tbl_Shop Where ContractID=" + m_ContractID;
 4             try
 5             {
 6                 connection.Open();
 7                 System.Data.SqlClient.SqlDataAdapter command = new System.Data.SqlClient.SqlDataAdapter(SQLString, connection);
 8                 command.Fill(contractDataSet, "ContractDetail");
 9             }
10             catch (System.Data.SqlClient.SqlException ex)
11             {
12                 throw new Exception(ex.Message);
13             }
14         }

 

 1 using (System.Data.SqlClient.SqlConnection connection = new System.Data.SqlClient.SqlConnection(Ecms.DbHelper.DbHelperSQL.connectionString))
 2         {
 3             SQLString = "Select CompanyName,Address,CompanyPhone,Fax,Bank,AccountNumber,Heading,Chop From Tbl_CompanyUser Where CompanyID=" + leftComanyID;
 4             try
 5             {
 6                 connection.Open();
 7                 System.Data.SqlClient.SqlDataAdapter command = new System.Data.SqlClient.SqlDataAdapter(SQLString, connection);
 8                 command.Fill(contractDataSet, "leftCompanyModel");
 9             }
10             catch (System.Data.SqlClient.SqlException ex)
11             {
12                 throw new Exception(ex.Message);
13             }

14         } 

 

 

  通过类似上面4次组装,才算把数据源给搞定,然后又通过查询单独数据的方式组装了另一个表

contractDataSet.ImageTable.AddImageTableRow(temprightSignatureBuff,
                                                            temprightSignatureBuff,
                                                            templeftChopBuff,
                                                            temprightChopBuff);

2.自动补白,由于我的报表是合同报表,用户要求合同产品清单少于7条的时候,能用空白填充

说到这里,不得不感谢一下泰哥, 看了他几个DEMO才稍微了解 报表里面的专家是个什么东西

3.ToolBar图片不显示的问题

这个简单,缺少了文件而已

4.报表中显示图片的问题,这个问题折磨了我长达3个小时

问题其实是个小问题,事情是这样的:

在我的数据文件中,我把四个显示图片的字段做成了一个单独的DataTable,然后就拖到报表中,然后给他们赋值,一切都很快(很享受这感觉,呵呵),到要运行的时候,才突然想起来字段的数据类型没有更改。改过之后,又犯了个错误,没有马上刷新数据集,重新设计报表,最终导致了我长达3个小时的杯具,教训啦· 后来,没办法啊,我就开始写Winform使用报表的Demo,结果 很顺利的就出来了,图片 啥的都显示的好好的。最后,找到问题原因 的时候,都快吐血了,记得星爷的唐伯虎点秋香吗,对 ,就像那样狂喷。

问题解决了,所以记录一下。如果文章有人观赏,请勿拍砖,谢谢!最好是能给点您在这方面更加好的经验,期待。。。

上个DataSet图 

 

转载于:https://www.cnblogs.com/DarkNight/archive/2011/08/22/HKing.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 水晶报表是一种高效的报表生成工具,常用于VB编程中。它是由SAP公司开发的一款报表生成工具,具有丰富的功能和灵活的设计方式。水晶报表可以通过VB编程来实现数据与界面的交互和报表的生成。 使用水晶报表可以实现以下功能: 1. 数据源连接:水晶报表可以连接多种类型的数据源,包括数据库、Excel文件等,可以灵活地获取和处理数据。 2. 报表设计:水晶报表提供了丰富的设计工具,可以设计各种样式和格式的报表,包括表格、图表、图像等,使报表具有良好的可视化效果。 3. 数据过滤:水晶报表提供了数据过滤的功能,可以根据用户的需求对数据进行筛选和过滤,进一步精确地展示所需的数据。 4. 报表导出:水晶报表支持多种报表导出格式,包括PDF、Excel、Word等,可以方便地将报表导出和共享给其他人员查看。 5. 报表打印:水晶报表可以实现报表的打印功能,用户可以根据需要选择不同的打印设置,以便满足不同的打印需求。 在VB编程中,使用水晶报表可以通过引用相应的报表生成库来实现,然后在代码中进行相应的配置和调用。首先,需要设置数据源连接,然后设计报表的样式和格式,并通过编程来实现数据的筛选和处理。最后,可以调用水晶报表的导出和打印功能,实现报表的最终生成和输出。 总而言之,水晶报表是一种功能强大的报表生成工具,适用于VB编程中,具有丰富的设计和功能特点,可以提高报表的生成效率和质量,使报表呈现更加直观和精确。 ### 回答2: 水晶报表是一款可用于VB(Visual Basic)开发环境的报表生成工具。它基于SAP的Crystal Reports技术,可以生成各种类型的报表,如销售报表、财务报表、员工考勤报表等。 使用水晶报表,我们可以通过在VB环境中添加相应的控件,轻松地创建和设计报表。首先,我们需要连接到数据库,并获取所需的数据。然后,我们可以选择报表布局和样式,包括报表的标题、页眉、页脚、表格、图表等,以展示数据结果。 水晶报表提供了丰富的数据处理和分析功能,比如数据筛选、排序、分组、汇总等。我们可以根据需要进行数据过滤,对数据进行排序,根据特定字段对数据进行分组,并在报表中显示数据的总计、平均值等统计信息。 生成的报表可以以多种格式输出,如PDF、Excel、Word等,方便与他人共享和打印。水晶报表还支持报表的导出和打印设置,可以自定义页面尺寸、页眉页脚、打印布局等,以满足个性化需求。 在VB环境中使用水晶报表,我们可以轻松地生成具有专业外观和易于阅读的报表,帮助我们更好地分析和展示数据。无论是在企业管理、销售分析、财务报告等领域,水晶报表都是一个非常有用的工具,能够提高我们的工作效率和数据分析能力。 ### 回答3: 水晶报表是一款功能强大的报表工具,用于在VB(Visual Basic)中生成、显示和打印各种格式的报表。它提供了丰富的报表设计功能和交互性,可以轻松地生成复杂的报表。 使用水晶报表需要先安装并配置相关的组件,在VB中引用这些组件,并通过相应的编程接口来调用水晶报表的功能。通过编程接口,我们可以设置报表的数据源、设计报表的布局和样式,以及生成报表的预览和打印。 在报表设计中,我们可以使用水晶报表提供的图形界面工具来创建报表模板,包括添加数据字段、设置报表的标题、页眉、页脚等。我们还可以添加图表、子报表、交叉表等更复杂的报表元素来满足特定的报表需求。 在运行时,我们可以通过编程接口来动态地设置报表的数据源,将数据源中的数据填充到报表中的相应位置。我们还可以通过编程操作来修改报表的样式和内容,以及添加页眉、页脚和页码等。 水晶报表还提供了丰富的导出功能,可以将报表导出为多种格式,如PDF、Excel、Word等,方便与其他系统或人员共享和使用。 总而言之,水晶报表是VB中一款功能强大的报表工具,能够帮助我们轻松地生成、显示和打印各种格式的报表,提高工作效率,并且具备丰富的报表设计和导出功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值