搜档网
当前位置:搜档网 › VS2010中水晶报表应用与部署

VS2010中水晶报表应用与部署

VS2010中水晶报表应用与部署





Vs2010的水晶报表; 选择下面一个下载(1是包括所有DLL);

下载安装后打开VS2010就可以在左边工具栏中看到CRYSTALREPORTVIEWER,并且可以新建水晶报表了;

用法跟以前版本的用法类似; 不过要注意下面几点;

A. 运行环境不能为.NET FRAMEWORK 4.0 CLINET PROFILE,要改为.NET FRAMEWORK 4,选中项目右键属性就可以更改了;

B.在项目中加一个APP.CONFIG(这是针对WINFORM项目),如果是WEB项目就不用加了,里面有一个WEB.CONFIG;在这配置文件中加上



这可以避免https://www.sodocs.net/doc/92609441.html,与水晶报表运行时由于.NET版本问题出错

1)SAP Crystal Reports, version for Visual Studio 2010 -
包括了报有DLL的水晶报表文件

2)SAP Crystal Reports, version for Visual Studio 2010 -
水晶报表部署时用到的文件

3)SAP Crystal Reports runtime engine for .NET Framework 4 (32-bit)

只支持32位系统的包

4)SAP Crystal Reports runtime engine for .NET Framework 4 (64-bit)

只支持64位系统的

(1)下面做一个简单的水晶报表,在项目中建一个窗体FORM1,一个水晶报表CrystalReport1,一个数据集 DATASET1;(水晶报表的设置跟以前版本的一样)

在窗体上放一个CRYSTALREPORTVIEWER,然后在FORM1的LOAD事件下写上;我这是把水晶报表放在DEBUG这个文件夹下动态加载的;你也可以直接放在项目中在CRYSTALREPORTVIEWER上指定报表名称;

private void Form1_Load(object sender, EventArgs e)

{

SqlConnection con = new SqlConnection("Data Source=10.100.100.5;Initial Catalog=cldz;User ID=proc4;Password=77cc88");

con.Open();

SqlDataAdapter da = new SqlDataAdapter("select top 100 * from ZZZPJ", con);

DataSet ds = new DataSet();

da.Fill(ds, "ZZZPJ");

string reportPath = Application.StartupPath + @"\CrystalReport1.rpt";

ReportDocument rd = new ReportDocument();

rd.Load(reportPath);

rd.SetDataSource(ds.Tables[0].DefaultView);

this.crystalReportViewer1.ReportSource = rd;/

}

(2)vs2010水晶报表的发布有两种方式;

一,就直接下载MSI文件安装在客户端,客户端就可以用了;32位的下载上面的3);如果是64位的下载上面的4);

二,就是下载上面2)中的MSM文件,里面第一个是CRRuntime_13_0.msm这个是英文包;如果需要支持中文就加一个MSM,( CRRuntime_13_0_zh_cn.msm); 另外加一个CRRuntime_13_0_maps.msm 这个可以不用;

用VS2010自带的打包软件打包发布,新建一个安装项目,安装项目的制作过程这里就不详细说了,跟以前的制过程一样;制作完后,右键项目选添加―――合并模块――把上面提到的三个以.MSM结尾的文件加入进去,并且把

C:\Program Files\C

ommon Files\Merge Modules文件夹中的VC100的MSM加入进去,如果是32位的就加X86的,如果是64位的就加X64的;最后确定;

再右键项目选属性,点击“系统必备”按钮;在弹出的对话框中选中 VISUAL C++ 2010 运行库,注意根据系统选,有32与64位的;

在下面的单选按钮中选第二项“从与我的应用程序相同的位置下载系统必备组件”;

这样发布的准备工作就做完了,选择菜单上的生成――生成项目或者右键项目点生存就可以了;

注意:(我在上面所有提到的“项目”不是VS工具栏上面菜单中的“项目”;是你解决方案下的项目,比如你新建了一个安装项目叫SETUP1,那就是指SETUP1)

如果制作好的安装程序在安装过程中出未能注册某一个模块请到下面网址下载一个适合你系统版本的文件安装,就可以避免出错了;
https://www.sodocs.net/doc/92609441.html,/downloads/en/details.aspx?familyid=766a6af7-ec73-40ff-b072-9112bab119c2&displaylang=en











1、首先下载安装水晶报表for vs 2010

2、新建wpf项目

3、在工具箱新建选项卡“水晶报表for vs2010”,在选择卡下添加水晶报表for vs2010提供的控件(程序集都以SAPBusinessObjects开头),其中包括CrystalReportsViewer控件。

4、需要注意的一点是,wpf项目所用的“目标框架”必须改成“.Net Framework4”,默认是".Net Framework 4 Client Profile",修改方法,在解决方案资源管理器中右击wpf项目名,选属性,在“应用程序”选项卡中的“目标框架”下拉列表中选".Net Framework 4 "。如果不改成.Net Framework 4 ,水晶报表for vs2010提供的控件在运行时将不可用,报错。

以上准备工作已完成。

接下来分pull和push两种模式简要说明一下在wpf项目中水晶报表for vs2010的用法。

1、pull模式

将水晶报表for vs2010提供的CrystalReportsViewer控件拖到wpf窗体上,然后添加水晶报表,和在winform中的pull模式用法操作一 样,设置水晶报表的数据源。假设水晶报表名为CrystalReport1,在wpf窗体的Window_Loaded事件处理函数中首先实例化该水晶报 表包装类(即CrystalReport1),代码如下:

CrystalReport1 rpt=new CrystalReport1();

然后将CrystalReportsViewer控件的报表数据源设置成rpt,假设CrystalReportsViewer的名为crystalReportsViewer1如下:

crystalReportsViewer1.ViewerCore.ReportSource = rpt;

完成,运行即可。

2、push模式

同样将CrystalReportsViewer控件拖到wpf窗体上,之后添加数据集即.xsd文件,打开数据集文件,添加要在报表上显示的数据表结构 (注意表名要与数据库表同名,字段也要一样),然后生成项目(F6)(此步相当重要,否则等下添加水晶报表时找不到刚才添加的数据集).

然后添加水晶报表,水晶报

表数据源选择为“标准报表创建向导”下的“可用数据源”中的“项目数据”下的“https://www.sodocs.net/doc/92609441.html,数据集”下的刚才添加的数据集下的表。完成水晶报表的添加。

之后在wpf窗体的Window_Loaded窗体加载事件处理函数中添加如下代码:

SqlConnection conn = new SqlConnection("此处为数据库连接字符串");
SqlDataAdapter sda = new SqlDataAdapter("此处为sql语句",conn);
DataSet1 ds1 = new DataSet1(); //DataSet1即为刚才添加的数据集名称
sda.Fill(https://www.sodocs.net/doc/92609441.html,erInfo); //UserInfo即为刚才在DataSet1数据集中添加的数据表名称

CrystalReport1 rpt = new CrystalReport1(); //将报表作为嵌入式报表,实例化
SetDBLoginInfo(rpt); //在将报表显示在CrystalReportsViewer控件之前设置水晶报表连接数据库的信息,具体函数在下面
crystalReportsViewer1.ViewerCore.ReportSource = rpt; //将报表rpt在CrystalReportsViewer控件中显示



private void SetDBLoginInfo(CrystalReport1 report) //CrystalReport1 是刚才添加的水晶报表名称,在这里作为一个包装类
{
CrystalDecisions.Shared.ConnectionInfo connInfo = new CrystalDecisions.Shared.ConnectionInfo();

//这个函数的作用是为了避免每次生成报表或刷新界面时都弹出一个对话框让输入数据库连接信息
connInfo.DatabaseName = "Test"; //数据库名称
https://www.sodocs.net/doc/92609441.html,erID = "sa"; //用户名
connInfo.Password = "sa"; //密码

CrystalDecisions.CrystalReports.Engine.Tables tables = report.Database.Tables;
foreach(CrystalDecisions.CrystalReports.Engine.Table table in tables)
{
CrystalDecisions.Shared.TableLogOnInfo logOnInfo = table.LogOnInfo;
logOnInfo.ConnectionInfo = connInfo;
table.ApplyLogOnInfo(logOnInfo);
}
}

更多ConnectionInfo 的信息可参考MSDN。

说明:有些地方需要使用using来导入命名空间,这些都很简单,不再说明。




VS2010中水晶报表应用及实例
基本分类如下:
第一部分:VS2010简介
VS2010是微软的提供的一套完整的开发环境,功能也是相当的大
微软宣布了下一代开发工具和平台的正式名称,分别称为“Visual Studio Team System 2010”和“.NET Framework 4.0”,很显然二者会在2010年发布。

VSTS 2010开发代号“Rosario”(阿根廷港市罗萨里奥),将致力于引领下一代平台发展、提高开发人员的工作效率和热情、创建突破性应用程序、推动云计算等新兴趋势、合理化应用程序生命周期管理(ALM)。

VSTS 2010将支持统一建模语言(UML)和特定域语言(DSL),可为各类开发人员提供合适的工具,而这也是微软更大模型平台的一部分,“Oslo”技术也是它的一部分。
第二部分:报表功能“水晶报表”
1)S

AP Crystal Reports, version for Visual Studio 2010 -
https://www.sodocs.net/doc/92609441.html,/akdlm/cr4vs2010/CRforVS_13_0.exe
包括了报有DLL的水晶报表文件

2)SAP Crystal Reports, version for Visual Studio 2010 -
https://www.sodocs.net/doc/92609441.html,/akdlm/cr4vs2010/CRforVS_mergemodules_13_0.zip
水晶报表部署时用到的文件

3)SAP Crystal Reports runtime engine for .NET Framework 4 (32-bit)
https://www.sodocs.net/doc/92609441.html,/akdlm/cr4vs2010/CRforVS_redist_install_32bit_13_0.zip
只支持32位系统的包

4)SAP Crystal Reports runtime engine for .NET Framework 4 (64-bit)
https://www.sodocs.net/doc/92609441.html,/akdlm/cr4vs2010/CRforVS_redist_install_64bit_13_0.zip
只支持64位系统的













(1)下面做一个简单的水晶报表,在项目中建一个窗体FORM1,一个水晶报表CrystalReport1,一个数据集 DATASET1;(水晶报表的设置跟以前版本的一样)

在窗体上放一个CRYSTALREPORTVIEWER,然后在FORM1的LOAD事件下写上;我这是把水晶报表放在DEBUG这个文件夹下动态加载的; 你也可以直接放在项目中在CRYSTALREPORTVIEWER上指定报表名称;

private void Form1_Load(object sender, EventArgs e)

{

SqlConnection con = new SqlConnection("Data Source=127.0.0.1;Initial Catalog=cldz;User ID=sa;Password=888");

con.Open();

SqlDataAdapter da = new SqlDataAdapter("select top 100 * from table", con);

DataSet ds = new DataSet();

da.Fill(ds, "ZZZPJ");

string reportPath = Application.StartupPath + @"/CrystalReport1.rpt";

ReportDocument rd = new ReportDocument();

rd.Load(reportPath);

rd.SetDataSource(ds.Tables[0].DefaultView);

this.crystalReportViewer1.ReportSource = rd;/





}



(2)vs2010水晶报表的发布有两种方式;

一,就直接下载MSI文件安装在客户端,客户端就可以用了;32位的下载上面的3);如果是64位的下载上面的4);

二,就是下载上面2)中的MSM文件,里面第一个是CRRuntime_13_0.msm这个是英文包;如果需要支持中文就加一个MSM,( CRRuntime_13_0_zh_cn.msm); 另外加一个CRRuntime_13_0_maps.msm 这个可以不用;

用VS2010自带的打包软件打包发布,新建一个安装项目,安装项目的制作过程这里就不详细说了,跟以前的制过程一样; 制作完后,右键项目选添加―――合并模块――把上面提到的三个以.MSM结尾的文件加入进去,并且把

C:/Program Files/Common Files/Merge Modules文件夹中的VC100的MSM加入进去,如果是32位的就加X86的,如果是64位的就加X64的;最后确定;

再右键项目选属性,点击“系统必备”按钮;在弹出的对话框中选中 VISUAL C++ 2010 运行库,注意根据系统选,有32与64位的;

在下面的单选按钮中选第二项“从与我的应用程序相同的位置下载系统必备组件”;

这样发布的准备工作就做完了

,选择菜单上的生成――生成项目或者右键项目点生存就可以了;

注意:(我在上面所有提到的“项目”不是VS工具栏上面菜单中的“项目”;是你解决方案下的项目,比如你新建了一个安装项目叫SETUP1,那就是指SETUP1)

如果制作好的安装程序在安装过程中出未能注册某一个模块请到下面网址下载一个适合你系统版本的文件安装,就可以避免出错了;






CrystalReport for vs2010 水晶报表安装方式如下:
1、在你的开发环境中找到Visual Studio安装目录下的"SDK"v2.0"BootStrapper"Packages"CrystalReports,将安装文件CRRedist2010_x86.msi,复制到服务器中并安装。

2、如果程序还不能运行,需要将水晶报表的五个dll文件复制到你的网站下的bin目录,其五大将的名称如下:

CrystalDecisions.CrystalReports.Engine.dll

CrystalDecisions.ReportSource.dll

CrystalDecisions.Shared.dll

CrystalDecisions.Web.dll

CrystalDecisions.Windows.Forms.dll





相关主题