泰哥,水晶报表问题

caroal 2008-11-27 03:04:51
有两个问题,
1:在开发一个b/s程序,涉及到一些水晶报表的问题,想只要安装到服务器上,别的机器只要能上网就能访问,请问安装部署程序应该装哪种的,看msdn上有三种,哪种合适呢,是包含合并模块的呢,还是不包含的msi文件?
2:报表想做成表格形式的,需要加表格,怎么加,按您的意见把“可以扩大”打钩了,可是下面的横线怎么加,我是在下面加了一条横线,可是当有的记录需要换行时,就会产生交叉。
...全文
43 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
lxlongnw 2009-05-13
  • 打赏
  • 举报
回复
以下是最近做的一个项目中使用和发布水晶报表的总结,可供参考:
整个使用和发布水晶报表的过程:
1.新建一个Dataset,在Dataset中建你所要的表Table
2.将建好的Dataset做为数据源模板,构建想要的水晶报表样式,该报表文件可暂命名为:CrySJBB.rpt
2.写“Select”的SQL语句,注意:Table中的字段一定要在所写的语句中的字段找得到!
3.为报表赋数据源并加载该报表,代码可如下:
//reportPath为报表路径,下面会谈起怎么取的。
reportDocument1.Load(reportPath);
reportDocument1.SetDataSource(数据源);
CryReViewer.ReportSource = reportDocument1;
4.注:加载该报表时的路径一定不能用网上所说的取应用程序下的相对路径,因为那样在发布后是找不到报表路径的.
5.报表文件CrySJBB的路径rptreportPath的取法:
(1).将建好的报表文件CrySJBB放在某工程下(也可以放在应用程序下,这里以应用程序为例)的Resources资源文件中,这一点应该会添加吧。(点开Properties下的Resources.resx,双击它,点击里头的“添加资源”的“添加现有文件”即可)
(2).写代码,去取得该Resources资源文件下的报表文件,这样做,不但是运行程序还是发布程序,都能自动去找到报表文件。(我这是C/S模式,B/S模式也可以这样做,只是将取得报表文件后的路径重新设置一下就可以了)
using System.Resources;//引用命名空间;

string AppPath = Application.StartupPath; //C/S模式下下载客户端到本地的应用程序路径;
string RptFileFullName = AppPath + @"\CrySJBB.rpt"; //假定取得报表文件后的路径;
//取得Resources资源文件下的报表文件,ZJFF应用程序名
ResourceManager resources = new ResourceManager(typeof(ZJFF.Properties.Resources));
byte[] bytes = (byte[])resources.GetObject("CrySJBB");//只写报表名称,不带后缀

if (File.Exists(RptFileFullName)) //若假定路径中有该文件,则删除,否则新建一个
File.Delete(RptFileFullName);
FileStream fileStream = new FileStream(RptFileFullName, FileMode.CreateNew);
BinaryWriter binWriter = new BinaryWriter(fileStream);
binWriter.Write(bytes, 0, bytes.Length);
binWriter.Close();
fileStream.Close();
reportPath = RptFileFullName;
reportPath 就是最后我们要取得路径,即服务器上已下载到本地后的报表路径,加载这个路径就可以查看我们已经做好的水晶报表了。
6.在发布时,不需要网上所说的合并模块,安装项目之类东西,那些根本没啥用处,因为在C/S模式下,以后程序升级时,用合并模块的话是不会自动查找是否有新版本的程序并且自动升级的。
发布步骤:
(1).点击应用程序的【属性】
(2).点击【发布】项中的【系统必备】,选择其中的.NET Framework 2.0 和Crystal Report for .NET Framework 2.0两项就可以了,
(3).然后点击发布向导,一步一步进行直至完成,或者填写其他项直接点击立即发布,这样发布就完成了!
阿泰 2008-11-27
  • 打赏
  • 举报
回复
1:使用BS方式开发后,就已经能实现改效果。实质上与部署方式无关,不过一般建议是用合并模块。
2:关于可以扩大后引发的跨行问题,请参考解决方法
http://www.cnblogs.com/babyt/archive/2008/05/27/1208044.html

4,816

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 图表区
社区管理员
  • 图表区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧