VS2005自带的水晶报表使用和发布步骤总结

水晶报表 VS2005

整个使用和发布水晶报表的过程:

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();

相关文档