您的位置:首页 > 其它

在VS2005上使用推式(embedded report)水晶报表以及打包部署的方法

2006-06-28 12:23 716 查看
作者[/b] [/b]:[/b]Suny Wong (@PCPartner Limited)[/b]

最近,我将我的[/b]VS2003[/b]的程序升级到[/b]VS2005[/b]。上网稳左好多资料,终于在博客园里面找到一篇叫“[/b]VS2003 WEB[/b]应用程序向[/b]VS2005[/b]的移植“的文章,解决了基本的升级问题。[/b][/b]

接下来遇到的是水晶报表的移植问题,在网上稳左好多关于水晶报表在[/b]VS2005[/b]的使用的文章,都是讲[/b]在VS2005[/b]中不再支持[/b]“embedded report”[/b]嵌入式报表,即是以下事例中的报表形式:[/b][/b]

con = new SqlConnection(Session["SQLCONNECTION"].ToString());
strSql = "SELECT * FROM htOrder";
scm = new SqlCommand(strSql, con);
sda = new SqlDataAdapter(scm);
ds = new DataSet();
sda.Fill(ds, " order ");
rptOrder.SetDataSource(ds.Tables["order"]);
crOrder.ReportSource = rptOrder;

你老细啊,五通我做的所有报表都要重做!!我昏啦,以前的方法甘简单,灵活,又五使考虑用户登录问题![/b][/b]

[/b]

经过[/b]12[/b]个钟的[/b]study[/b]同研究水晶报表的[/b]WEB[/b]部署原理,我终于稳到在[/b]VS2005[/b]中继续使用[/b]EMBEDDED REPORT[/b]的方法:[/b][/b]

[/b]

首先说明在[/b]VS2005[/b]不能使用[/b]EMBBED REPORT[/b]的原因:[/b][/b]

在[/b]VS2005[/b]中[/b]CR[/b]报表的版本是[/b]10.2.xxx[/b],[/b]VS2003[/b]中的版本是[/b]9.0[/b]。[/b]CR9[/b]。[/b]0[/b]的版本是五支持[/b]WEB[/b]应用的。所以我在[/b]VS2003[/b]里面用的是[/b]CR10DEV[/b]版,版本号是[/b]10.0.33 [/b]。就是呢个版本的问题使到[/b]VS2005[/b]不能使用[/b]EMBBED REPORT[/b]

[/b]

解决方法:[/b][/b]

1.[/b]将在[/b]VS2003[/b]的项目里面引用的所有[/b]CR10[/b]的[/b]DLL[/b],引用到[/b]VS2005[/b]里面。这时候见到他们的版本是[/b]10.0. 33[/b],这样就[/b]OK[/b]了。[/b][/b]

[/b]

2.[/b]如果你是用[/b]VS2005[/b]内置的服务器去调试程序,调用报表后,程序可能会出现水晶报表的工具栏的图片不能显示和按钮不能起作用的现象。这是因为水晶报表的[/b]WEB[/b]应用,是建立在虚拟目录之上的。安装[/b]CR10 DEV[/b]时,会在[/b]IIS[/b]里面创建一个[/b]crystalrepottviewers10[/b]的虚拟目录,在程序里面用到的所有[/b]CR10[/b]的资源都在目录里面。所以我们要将这个目录所指向的[/b]FOLDER COPY[/b]到程序所在的根目录之下。现在,再运行一下[/b]PROGRAM[/b],已经可以显示图片和执行按钮的脚本了!!(呢个问题搞左我一日去研究,起初仲以为[/b]VS2005[/b]不支持[/b]CR10.0.33[/b])到目前为止已经可以在[/b] VS2005[/b]上继续使用[/b]EMBBED REPORT[/b]啦,哈哈:)![/b][/b]

[/b]

[/b]

二[/b].[/b]部署到目标[/b]SERVER[/b]的方法:[/b][/b]

[/b]

1. [/b]http://support.businessobjects.com/mergemodules[/b]找[/b]The Crystal Reports 10 merge modules[/b],[/b] DOWNLOAD[/b]落来[/b](83MB),[/b]然后解压[/b],[/b]里面包括[/b]4[/b]个[/b].MSM[/b]文件和一些说明文档[/b].[/b](注意:在[/b]BO[/b]的主页上有[/b]CR10 FOR VS2003 [/b]和[/b]CR10 FOR VS2005DE MERGE MODULE[/b]的,但要用[/b]PUSHEMBED REPORT[/b]的必须要用[/b]FOR VS2003[/b]的[/b]MERGE MODULE[/b]。)[/b][/b]

[/b]

2. [/b]在[/b].NET[/b]的[/b]PROJECT[/b]下[/b],[/b]添加一个[/b]WEB[/b]安装[/b]PROJECT..([/b]我用的[/b]WEB SETUP PROJECT[/b]是早[/b]VS2003[/b]中建立的升级到[/b]VS2005[/b]的[/b])[/b]

[/b]

3. [/b].[/b]加入包含[/b]CRYSTAL REPORT10[/b]的[/b]PROJECT[/b]的输出内容[/b].[/b]系统会自动检测到[/b]CRYSTAL REPORT10[/b]的依赖项[/b].[/b]

[/b]

4,[/b]在[/b]WEB SETUP PROJUECT[/b]图标上右键[/b],[/b]然后选择添加[/b]-->[/b]合并模块[/b].[/b]

去到刚才解压的目录[/b],[/b]按需要选择要合并的模块[/b],[/b]

[/b]

5.[/b] 如果选择合并[/b]CrystalReports10_NET_EmbeddedReporting.msm[/b]模块[/b],[/b]就需要在[/b].NET[/b]下注册这个模块[/b].[/b]选择已经加入[/b]SETUP[/b]项目中的[/b]CrystalReports10_NET_EmbeddedReporting.msm[/b]文件[/b],[/b]在其属性页上展开[/b][/b]

MergeModuleProperties[/b]属性[/b],[/b]在[/b]Keycode[/b]属性中[/b],[/b]输入一个[/b]license key([/b]格式[/b]:"xxxxx-xxxxxxx-xxxxxxx") [/b]

[/b]

6.[/b]生成[/b]SET UP PROJECT. OK[/b]!完全解决[/b]PUSH EMBED REPORT[/b]的使用同部署问题。[/b][/b]

[/b]

[/b]

三.仍然存在的问题:[/b][/b]

[/b]

1. [/b]原来[/b]VS2003[/b]的安装程序类在[/b]VS2005[/b]中,没有执行建立数据库的[/b]SQL[/b]脚本。[/b][/b]

----[/b]请高手指教[/b][/b]

[/b]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: