水晶报表部署问题

合集下载

asp.net水晶报表的一些问题

asp.net水晶报表的一些问题

1。

第一步是添加新项CrystalReport12。

在CrystalReport1.rp t面页右键选择:”数据库”à”添加/删除数据库”出现下面对话框:然后点开OLE D B(AD O)的加号,将弹出选择数据库的对话框其中”项目数据”里面的”当前连接”显示的就是OLE DB(AD O)的连接,这样就可以将表添加到右边的”选定的表”中了(切记:不要既从”OLE DB” 中选表或命令又从”当前连接”中选,如果你用了数据集,也是一样的道理,否则全提示出”登陆失败”的错误!)3。

字段资料管理器里面”数据库字段”里把字段直接拖到CrystalReport.rpt里面了.布置好布局.4。

回到WebForm1.asp x页面,选择控件CrystalReportVie wer将其放到页面上。

5。

代码using CrystalDecisio ns.Shared;using CrystalDecisio ns.CrystalReports.Engine;在WebForm1.aspx.cs的Form_Load里面添加代码:TableLogOnInfo log OnInfo = ne w TableLog OnInfo();Repo rtDocument rpdMy0= ne w ReportDocume nt();logOnInfo.Co nnectio nInfo.Serve rName = "NNN";logOnInfo.Co nnectio nInfo.Password="dong";logOnInfo.Co nnectio nInfo.Da tabaseName="Lab";logOnInfo.Co nnectio e rID = "sa";String path = Serve r.MapPa th("CrystalReport2.rpt");rpdMy0.Load(path);rpdMy0.Da tabase.Tables[0].ApplyLog OnInfo(logOnInfo);CrystalReportVie wer1.ReportSo urce = rpd My0;其中:TableLogOnInfo类是: 提供属性,以便检索和设置表连接选项.它有一个连接的属性Co nnectio nInfo,用来设置与数据库的连接.如上面的Se rverNa me等.生成一个报表文档对象将前面我们做好的那个CrystalReport1.rp t赋给它.在这里要注意的是Da tabase属性!然后把报表对象做为CrystalReportVie wer1的数据源.或者,获得数据库的方法改为直接从数据库获得DataSetusing System.Da ta.SqlClie nt;using System.Collectio ns.Specialized;string strCo nn=Syste m.Config uratio n.Co nfigura tionSettings.AppSe ttings["DB"].ToString(); using (SqlConnectio n co nn = ne w SqlCo nnectio n(strCo nn)){SqlData Adapter da = ne w SqlDa taAdapte r(strSQL,conn);//strSQL是SQL语言"select * from dbo.table1"Da taSe t ds=ne w Da taSe t();da.Fill( ds);CrystalReport1 cr1 = ne w CrystalReport1();cr1.Se tData Source( ds);CrystalReportViewe r1.ReportSo urce = cr1;}using CrystalDecisio ns.Shared;using CrystalDecisio ns.CrystalReports.Engine;在WebForm1.aspx.cs的Form_Load里面添加代码:TableLogOnInfo log OnInfo = ne w TableLog OnInfo();Repo rtDocument rpdMy0= ne w ReportDocume nt();logOnInfo.Co nnectio nInfo.Serve rName = "NNN";logOnInfo.Co nnectio nInfo.Password="dong";logOnInfo.Co nnectio nInfo.Da tabaseName="Lab";logOnInfo.Co nnectio e rID = "sa";String path = Serve r.MapPa th("CrystalReport2.rpt");rpdMy0.Load(path);rpdMy0.Da tabase.Tables[0].ApplyLog OnInfo(logOnInfo);CrystalReportVie wer1.ReportSo urce = rpd My0;其中:TableLogOnInfo类是: 提供属性,以便检索和设置表连接选项.它有一个连接的属性Co nnectio nInfo,用来设置与数据库的连接.如上面的Se rverNa me等.生成一个报表文档对象将前面我们做好的那个CrystalReport1.rp t赋给它.在这里要注意的是Da tabase属性!然后把报表对象做为CrystalReportVie wer1的数据源.或者,获得数据库的方法改为直接从数据库获得DataSetusing System.Da ta.SqlClie nt;using System.Collectio ns.Specialized;string strCo nn=Syste m.Config uratio n.Co nfigura tionSettings.AppSe ttings["DB"].ToString();using (SqlConnectio n co nn = ne w SqlCo nnectio n(strCo nn)){SqlData Adapter da = ne w SqlDa taAdapte r(strSQL,conn);//strSQL是SQL语言"select * from dbo.table1"Da taSe t ds=ne w Da taSe t();da.Fill( ds);CrystalReport1 cr1 = ne w CrystalReport1();cr1.Se tData Source( ds);CrystalReportViewe r1.ReportSo urce = cr1;}using CrystalDecisio ns.Shared;using CrystalDecisio ns.CrystalReports.Engine;在WebForm1.aspx.cs的Form_Load里面添加代码:TableLogOnInfo log OnInfo = ne w TableLog OnInfo();Repo rtDocument rpdMy0= ne w ReportDocume nt();logOnInfo.Co nnectio nInfo.Serve rName = "NNN";logOnInfo.Co nnectio nInfo.Password="dong";logOnInfo.Co nnectio nInfo.Da tabaseName="Lab";logOnInfo.Co nnectio e rID = "sa";String path = Serve r.MapPa th("CrystalReport2.rpt");rpdMy0.Load(path);rpdMy0.Da tabase.Tables[0].ApplyLog OnInfo(logOnInfo);CrystalReportVie wer1.ReportSo urce = rpd My0;其中:TableLogOnInfo类是: 提供属性,以便检索和设置表连接选项.它有一个连接的属性Co nnectio nInfo,用来设置与数据库的连接.如上面的Se rverNa me等.生成一个报表文档对象将前面我们做好的那个CrystalReport1.rp t赋给它.在这里要注意的是Da tabase属性!然后把报表对象做为CrystalReportVie wer1的数据源.或者,获得数据库的方法改为直接从数据库获得DataSetusing System.Da ta.SqlClie nt;using System.Collectio ns.Specialized;string strCo nn=Syste m.Config uratio n.Co nfigura tionSettings.AppSe ttings["DB"].ToString(); using (SqlConnectio n co nn = ne w SqlCo nnectio n(strCo nn)){SqlData Adapter da = ne w SqlDa taAdapte r(strSQL,conn);//strSQL是SQL语言"select * from dbo.table1"Da taSe t ds=ne w Da taSe t();da.Fill( ds);CrystalReport1 cr1 = ne w CrystalReport1();cr1.Se tData Source( ds);CrystalReportViewe r1.ReportSo urce = cr1;}如果你用的是水晶报表的推模式,一般不用设置登陆信息,但是要这样写:obj.Se tData Source(this.ds.Tables["tablename"]);如果你写成了obj.Se tDa taSource(this.ds)就会有登陆框的。

水晶报表调用存储过程的问题[6页]

水晶报表调用存储过程的问题[6页]

水晶报表调用存储过程的问题前言:现在碰到了水晶报表调用存储过程的问题,问题是这样的:ERP软件里有很多的数据表,有些报表的字段要从多个数据表里取数据,并且要对数据进行处理,来作为报表的字段,我看了些资料,说可以通过存储过程来取数据和运算数据后直接插入到水晶报表里,注意报表有多个字段大多字段需要运算的,要怎样做?回复:1、在项目中添加一个xsd,在设计界面中将存储过程拖入设计界面2、设计报表,将添加的xsd作为报表的数据源3、在页面代码中添加以下代码SqlClient.SqlCommand cmd =new SqlClient.SqlCommand();cmd.Connection = new SqlClient.SqlConnection( " ");mandType = CommandType.StoredProcedure;mandText = "spname ";//cmd.Parameters.Add( "@p1 ");//cmd.Parameters[ "@p1 "].Value = " "//传递存储程参数SqlClient.SqlDataAdapter() pt = new SqlClient.SqlDataAdapter(cmd);Dataset1 ds = new Dataset1(); //前面添加的强类型数据集pt.Fill(ds, "spname ");ReportDocument rpt = new ReportDocument();rpt.Load(Server.MapPath( "CrystalReport1 "));rpt.SetDataSource(ds)this.CrystalReportViewer1.ReportSource = rpt详解:做报表要的只是一个结构.你可以用DATASET文件结构来做报表,然后再运行storepr ocedure去FILL一个DATASET结构的实例,再rpt.setDataSource(DataSet),就行了..至于你在storeprocedure里做什么,根本跟报表没啥关系.只要输出一个结构相同的表就行了.本示例操作主要实现a. ReportViewer关联Report1.rdlc的简单呈现b. 对带有报表参数的Report1.rdlc的呈现c. 利用程式生成的DataSet 填充报表d. 调用存储过程生成DataSet 填充报表==========简单的呈现==========1. 打开VS2005,文件->新建->网站选择语言种类(C#)2. 在该解决方案下设计其已经生成的Default.aspx3. 将工具箱-数据下的ReportViewer 拉入Default.aspx的设计界面4. 在用鼠标选中ReportViewer1时可以看到其右上角的小三角图标5. 用鼠标点击该小三角将展开ReportViewer任务快捷菜单6. 由于本项目目前还没有做好的报表所以选择设计新报表7. 点击设计新报表后将呈现报表Report1.rdlc的设计界面8. 由于本项目目前还没有做好的网站数据源所以此时要添加新数据源(如果没有呈现“网站数据源”界面,可以点击报表设计界面,此时上方菜单中多出现“数据”,“报表”等选项可以在“数据”菜单下,选择“显示数据源”)9. 点击“添加新数据源” 会出现“TableAdapter 配置向导”10. 选择数据连接(如连接到本机的Northwind数据库),下一步11. 选择是否要将连接字符串保存到应用程序配置文件中,下一步12. 选择命令类型,此时可以点击取消按钮,退出向导13. 全部保存14. 选择视图菜单下“服务器资源管理器”,可以看到刚才所建立的数据连接,可以看到Northwind数据库下的表,视图,存储过程,函数15. 在解决方案的树下找到并打开App_Code文件夹下的DataSet1.xsd数据集16. 可以看到打开的数据集设计器是空的,此时可以将“服务器资源管理器”下的Northwind的表或存储过程等拉入数据集设计器(如此时拉入了Orders表和Sales by Year这个存储过程)17. 全部保存18. 双击Report1.rdlc,打开报表设计界面将此时的报表设计工具箱中的报表项的表拉入报表设计界面19. 选择“数据”菜单下的“显示数据源”,可以在网站数据源下看到DataSet1 下的两个表Orders 和Sales by Year 20. 此时选择Orders下的任意字段(如OrderID 和CustomerID)拉到Report1.rdlc设计界面的表的“详细资料”处用于报表显示21. 全部保存22. 回到Default.aspx的设计界面,为ReportViewer1 绑定报表选择ReportViewer1显示刚才设计好的Report1.rdlc23. 全部保存,按F5或Ctrl+F5 运行,以查看初步效果======================================接下来要为Report1.rdlc添加一个报表参数======================================24. 回到报表Report1.rdlc的设计界面点击报表菜单下的“报表参数”25. 在报表参数在设置框中添加一个报表参数进行相关设置并确定以保存(如其参数名称为rptParaA,类型为String)26. 拉入一个文本框的报表项到Report1.rdlc的设计界面以做为该报表的标题显示27. 选中并右键单击该文本框,在弹出的菜单中选择“表达式”,进入“编辑表达式”的对话框28. 在“编辑表达式”的对话框中,选择参数,并双击刚才设置的rptParaA,使文本框的值=Parameters!rptParaA.Value29. 保存对Report1.rdlc的修改30. 因为新的Report1.rdlc报表的文本框需要有报表参数值的传入所以要在ReportViewer1 对Report1.rdlc的呈现时对Default.aspx.cs的编辑31. 在Default.aspx.cs加入引用using Microsoft.Reporting.WebForms;在Page_Load中加入如下代码ReportParameter rptParaA = new ReportParameter("rptParaA", "测试报表参数");ReportViewer1.LocalReport.SetParameters(new ReportParameter[] { rpt ParaA });32.保存并运行以查看效果=========================================接下来,需要对所要呈现的报表资料进行定制也就是通过设计DataSet用符合需要的数据对报表进行资料绑定和呈现=========================================33.设置ReportViewer1的Visible为false34.在Default.aspx的设计界面加入一个按钮Button1将通过此按钮的Click事件实现对数据库的访问以及DataSet的数据填充和对ReportViewer1的资料绑定35. Default.aspx.cs加入引用using System.Data.SqlClient;using Microsoft.Reporting.WebForms;Button1_Click中的代码示例如下SqlConnection myConn = new SqlConnection("Data Source=192.168.0.36; Initial Catalog=Northwind;User ID=sa;Password=sa");SqlDataAdapter myda = new SqlDataAdapter("select top 5 * from orders ", myConn);DataSet myds = new DataSet();myConn.Open();myda.Fill(myds);myConn.Close();ReportViewer1.Visible = true;ReportParameter rptParaA = new ReportParameter("rptParaA", "测试报表参数");ReportViewer1.LocalReport.SetParameters(new ReportParameter[] { rpt ParaA });ReportDataSource rds = new ReportDataSource("DataSet1_Orders", myds. Tables[0]);ReportViewer1.LocalReport.DataSources.Clear();ReportViewer1.LocalReport.DataSources.Add(rds);ReportViewer1.LocalReport.Refresh();注意ReportDataSource rds = new ReportDataSource("DataSet1_Orders", myds.Tables[0]);的"DataSet1_Orders"是与前台html程序的<rsweb:ReportViewer ID="ReportViewer1" runat="server" Font-Names=" Verdana" Font-Size="8pt" Height="400px" Visible="False" Width="400px"> <LocalReport ReportPath="Report1.rdlc"><DataSources><rsweb:ReportDataSource DataSourceId="ObjectDataSource1" N ame="DataSet1_Orders"/></DataSources></LocalReport></rsweb:ReportViewer>中的<DataSources>的Name="DataSet1_Orders"是一致的可以通过对DataSet的填充时的sql语句等的定制来得到所需要的数据以便报表呈现需要注意的是由于ReportViewer1此时的关联报表为Report1.rdlc,所以DataSet 的Tables[0]中的结构一定要包含Report1.rdlc所呈现的字段,所以,这里的Sql语句为select top 5 * f rom orders36.保存运行点击Button1 以便报表呈现=============================================== 如果报表所要呈现的数据来源于存储过程那么在装载DataSet时使其数据来源于存储过程即可===============================================37.右击项目添加新项,选择报表,向项目中加入Report2.rdlc,设置其呈现的数据来源为存储过程Sales by Year同样的在Report2.rdlc的设计界面加入“表”报表项并将网站数据源下的DataSet1下的Sales by Year表中的字段拉入报表项“表”在详细数据中进行显示38.如同Default.aspx 向项目中添加新的页面Default2.aspx向Default2.aspx加入一个Button 和ReportViewer1并设置ReportViewer1所要呈现的报表为Report2.rdlc设置ReportViewer1的Visible为false双击Button 进行其Click事件的编写设置Default2.aspx为项目的起始页39.在Default2.aspx.cs加入引用using System.Data.SqlClient;using Microsoft.Reporting.WebForms;40.Button1_Click的事件代码示例如下protected void Button1_Click(object sender, EventArgs e){SqlConnection myConn = new SqlConnection("Data Source=192.168.0.36; Initial Catalog=Northwind;User ID=sa;Password=sa");SqlDataAdapter myda = new SqlDataAdapter("Sales by Year", myConn); myda.SelectCommand.Parameters.AddWithValue("@Beginning_Date", "19 97-10-10");myda.SelectCommand.Parameters.AddWithValue("@Ending_Date", "2000-10-10");mandType = CommandType.StoredProcedure; DataSet myds = new DataSet();myConn.Open();myda.Fill(myds);myConn.Close();ReportViewer1.Visible = true;ReportDataSource rds = new ReportDataSource("DataSet1_Sales_by_Year ", myds.Tables[0]);ReportViewer1.LocalReport.DataSources.Clear();ReportViewer1.LocalReport.DataSources.Add(rds);ReportViewer1.LocalReport.Refresh();}。

水晶报表使用经验(不断扩充中) [6页]

水晶报表使用经验(不断扩充中) [6页]

水晶报表使用经验(不断扩充中)一:水晶报表获取数据库字段前一段的课程中我讲了关于如何获取报表的数据库字段,当时讲的方法是使用OLE DB建立新的数据链接,通过SQL语句来获取要在报表中绑定的数据库字段的,从而避免了使用强类型数据集,实际上这是使用了PULL模式,在实际应用上它会两次链接到数据库,会造成性能损失。

下面我介绍一下使用“仅字段定义”方法来获取数据库字段:1. 1:建立新报表。

2:在“数据库专家”中选择“创建新连接”中的“仅字段定义”。

如下图:在弹出的窗体中选择“创建文件”,如下图:在弹出的“数据库定义工具”中输入字段名称、选择字段类型即可编辑所需要的字段了,(如下图)。

创建完字段后关闭窗体,弹出窗体,选择“保存”会生成ttx类型的文件,(如下图),此文件无须放到项目中,删掉也无所谓,亦可以保留以待日后更改。

以上是通过“仅定义字段”方法来获取绑定字段的方法。

通过这种方法来获取字段更快捷灵活,且不会占用数据库资源,而且也不用使用强类型数据集。

二:样式表的应用。

初始状态:一个web页,一个CrystalReportViewer控件,使用CrystalReportViewer控件加载rpt文件。

实现方法有两种:1:在web页的Html 编码内进行样式表的引用,然后在rpt文件中的要进行设置的对象的CssClass属性写入样式名称即可。

2:在CrystalReportViewer控件的CssFileName属性中写入样式表文件的相对路径,然后再在rpt文件中在设置即可。

三:含有子报表的报表的显示问题。

初始:使用“仅字段定义”方法定义了两个表,一个用在主报表上,一个用在子报表上。

设计完报表后,示例代码如下:RPT.PingShenForLiGang rpt = new CRForCA.RPT.PingShenForLiGang();System.Data.DataSet ds = BuildDS();rpt.SetDataSource(ds);this.CrystalReportViewer1.ReportSource = rpt;这样做在运行时会弹出窗体要什么验证的,所以需要对子报表的数据进行绑定,那么,如何解决呢?引用命名空间:using CrystalDecisions.CrystalReports.Engine;以上代码改为:RPT.PingShenForLiGang rpt = new CRForCA.RPT.PingShenForLiGang();System.Data.DataSet ds = BuildDS();//获取子报表SubreportObject oSubreport1 =(SubreportObject)rpt.DetailSection3.ReportObjects["Subreport5"];ReportDocument oSub1 = oSubreport1.OpenSubreport("mytest");//绑定子报表oSub1.SetDataSource(ds);//绑定主报表rpt.SetDataSource(ds);this.CrystalReportViewer1.ReportSource = rpt;需要对子报表在进行数据绑定,这样就会解决这个问题了。

VS2008完整水晶报表发布部署总结

VS2008完整水晶报表发布部署总结

VS2008水晶报表发布部总结一、安装运行时支撑文件如果你安装了VS2008,那么可以找到如下目录:C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bootstrapper\Packages\CrystalReports1 0_5此目录下有如下文件:COPY到服务器上根据服务器CPU情况选择性地安装一下。

二、将WEB项目打包成安装程序1. 在WEB解决方案中新建一个项目,选择项如下:2. 右键点击项目名称,选择“视图”-“文件系统”3. 按下图操作:4. 设置项目的启动文件:5. 在项目名称上右击,按下图操作,选“项目输出”:6. 选“内容文件”后再“确定”:7. 按SHIFT+F6即可生成安装文件,可以在项目的目录下能找到如下结果文件:Copy这个MSI文件到服务器上安装完就可以浏览了。

三、修补水晶报表的图标显示和打印功能问题:如上所述,是可以浏览了,但是报表显示的工具栏上图标出不来:如下:看到吗,小图标出不来。

其它你再试试,打印也没法选打印机的。

解决办法:1. 在自己开发的PC上找到如下目录:C:\WINDOWS\\Framework\v2.0.50727\ClientFiles\CrystalReportWeb FormViewer4注意:CrystalReportWebFormViewer4中的4有可能与你的不一样,无所谓的。

2. 将CrystalReportWebFormViewer4目录复制到你的WEB服务器上项目所在目录中,如:C:\???????\aspnet_client\system_web\2_0_50727\CrystalReportWebFormViewer4再试试看吧,问题解决!祝好运!水晶报表安装部署(vs2005,vs2008)1.水晶报表安装程序和汉化包C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\BootStrapper\Packages\CrystalRepo rts2.安装水晶报表运行时支持,打包下面这个目录到需要安装的服务器,然后点击“CRRedist2008_x86.msi” C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bootstrapper\Packages\CrystalReports1 0_53.将下面几个dll拷贝到/bin下,注意版本号 2005,在这个目录C:\Program Files\Microsoft Visual Studio 8\ReportViewer 2008,在这个目录C:\Program Files\Microsoft Visual Studio 9.0\ReportViewermon.dllmicrosoft.reportviewer.processingobjectmodel.dllmicrosoft. reportviewer.webforms.dll安装一下,然后重启服务器,再访问就OK了从网上找的方法是合并msm什么的,我的程序又不是用msi打包的,所以,不能用,换种方法:C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bootstrapper\Packages\CrystalReports1 0_5这里可以看到CRRedist2008_x86.msi及zh-CHS\CRRedist2008_x86_chs.msi只要把这两个安装了,水晶报表就可以使用了,因为网上有人说水晶报表30天会过期,我把日期调到30天后,看了看,正常发布软件时,把以上水晶报表的两个安装文件给打包过去安装就OK了。

vs2005水晶报表打包部署

vs2005水晶报表打包部署

vs2005水晶报表打包部署vs2005中的crystalReport客户端分发C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\BootStrapper\Packages\CrystalReportsCRRedist2005_x86.msi在客户端运行上面的文件即可1)新建“安装和部署项目”-->“安装项目”,确定后在我们的解决方案中多了个安装和部署的项目2)右键点击刚建的安装项目-->添加--->项目输出-->从列表中选择主输出-->选择输出的项目3)右键点击刚建的安装项目-->添加--->合并模块-->把我们下载到的10 net 部署的合并模块全部添加进去4)注意有个CrystalReports10_NET_EmbeddedReporting.msm的模块,我们查看它的属性,把AV860-01CS00G-U7000NC填写到keycode属性值中,要不编译不通过的.5)最后我们来编译生成我们项目的安装文件,setup.exe在客户端就可以安装正常使用了下载合并模块简体中文(cr10_net_merge_modules_chs.zip)/communityCS/FilesAndUpdates/cr10_net_merge_modules_chs.zip.aspcr10_net_merge_modules_chs.zip解压后有四个合并模块分别为:CrystalReports10_maps.msm ;CrystalReports10_NET_EmbeddedReporting.msm;CrystalReports10_NET_RemoteReporting.msm;CrystalReports10_NET_WebServiceReporting.msm前几天用VS2005做了个简单的医务系统的演示程序,B/S模式的,里面用到了水晶报表,说实话,这还是我第一次用水晶报表,看了看帮助就开始做,还算是顺利吧,以为是演示用,要求不太高.做完了就发布,然后就把程序给人家了,结果到了人家那水晶报表那块不能看!他说水晶报表发布的时候需要考几个库,VS发布的时候不能自己把dll文件打包放到里面去,我就把那两个文件(CRDesigner.dll,crvspackage.dll,放在VS安装目录的Crystal Reports文件夹里)给人家考了过去,结果还是不行,后来上网查说需要Crystal Reports 合并模块,从网上down了一个,做一个了安装程序把它装上了也行不通,没办法回来了。

VS2017中水晶报表插件下载安装方法

VS2017中水晶报表插件下载安装方法

VS2017中水晶报表插件下载安装方法篇一:vs2005水晶报表打包部署vs2005水晶报表打包部署vs2005中的crystalReport客户端分发C:\Program Files\Microsoft Visual Studio 8\SDK\\BootStrapper\Packages\CrystalReportsCRRedist2005_在客户端运行上面的文件即可1)新建“安装和部署项目”-->“安装项目”,确定后在我们的解决方案中多了个安装和部署的项目2)右键点击刚建的安装项目-->添加--->项目输出-->从列表中选择主输出-->选择输出的项目3)右键点击刚建的安装项目-->添加--->合并模块-->把我们下载到的10 net 部署的合并模块全部添加进去4)注意有个CrystalReports10_NET_的模块,我们查看它的属性,把AV860-01CS00G-U7000NC填写到keycode属性值中,要不编译不通过的.5)最后我们来编译生成我们项目的安装文件,在客户端就可以安装正常使用了下载合并模块简体中文 (cr10_net_merge_modules_)FilesAndUpdates/cr10_net_merge_modules_cr10_net_merge_modules_解压后有四个合并模块分别为:CrystalReports10_ ;CrystalReports10_NET_;CrystalReports10_NET_;CrystalReports10_NET_前几天用VS2005做了个简单的医务系统的演示程序,B/S模式的,里面用到了水晶报表,说实话,这还是我第一次用水晶报表,看了看帮助就开始做,还算是顺利吧,以为是演示用,要求不太高.做完了就发布,然后就把程序给人家了,结果到了人家那水晶报表那块不能看!他说水晶报表发布的时候需要考几个库,VS发布的时候不能自己把dll 文件打包放到里面去,我就把那两个文件(,,放在VS安装目录的Crystal Reports文件夹里)给人家考了过去,结果还是不行,后来上网查说需要Crystal Reports 合并模块,从网上down了一个,做一个了安装程序把它装上了也行不通,没办法回来了。

Web水晶报表部署总结

Web水晶报表部署总结

将webconfig 中<identity impersonate="true"/>true更改为false具体为修改注册表下面两个键的值。

[HKEY_LOCAL_MACHINE\SOFTWARE\Crystal Decisions\10.2\Report Application Server\InProcServer]修改"PrintJobLimit"="1000"修改为1000[HKEY_LOCAL_MACHINE\SOFTWARE\Crystal Decisions\10.2\Report ApplicationServer\Server]修改"PrintJobLimit"="1000"下载注册表文件PS:另外一种修改方法是改成-1如果还不行,请参考此贴,需要修改代码/Forums/en-US/vscrystalreports/thread/143f3517-c5c4-4c17-9da0-8c4bd54b6604水晶报表打印不出来,请更换本机的PrintControl.cab包替换。

1.进入Windows功能窗口,然后看到internet信息服务选项,然后按照图中设置即可,Ps:打√的选项下面为全选,方圈的下面按照图中打√的选择即可。

2.然后确定,会进入系统安装设置,此时可能需要等待两三分钟的样子。

缺少水晶报表DLL没有添加默认页面安装CRRuntime_32bit_13_0去解决 log4net问题如果是报表未能加载,是权限问题,请将net service 用户加入到c:/Windows/Temp文件夹的权限列表*windows server 2012R2中如果找不到netserveice,则查找 NETWORK SERVICE 用户IE11下水晶报表不能打印问题,如果遇到,安装服务器vs2013,以及vs2013所需要的报表开发包,然后重启服务器,在客户端机器上,先把IE调成兼容IE8模式,然后再打印报表,最后调回IE11,报表打印正常。

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

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

VS2005自带的水晶报表使用和发布步骤总结整个使用和发布水晶报表的过程:1.新建一个Dataset,在Dataset中建你所要的表Table2.将建好的Dataset做为数据源模板,构建想要的水晶报表样式,该报表文件可暂命名为:CrySJBB.rpt2.写“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 就是最后我们要取得路径,即服务器上已下载到本地后的报表路径,加载这个路径就可以查看我们已经做好的水晶报表了。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

没有图标解决办法
1:把你本地机上的C:\Inetpub\wwwroot\aspnet_client目錄拷貝覆蓋到服務器上,不行你就放你的网站根目录试试看
2: 把在ProgramFiles\Microsoft Visual Studio 8\SDK\v2.0\BootStrapper\Packages\CrystalReports\找到: CRRedist2005_x86.msi及zh- chs\CRREdist2005_x86_chs.msi在服务器上安装一下
我试过了,没问题的,要是你水晶报表软件已经在服务安装注册了,第二部就可以省了
水晶报表如何发布到服务器
2011-08-20 12:13:55| 分类:水晶报表|举报|字号订阅
1,要在服务器安装CRRedist2008_X64.msi CRRedist2008_X64_CHS.msi CRRedist2008_x86.msi CRREdist2008_x86_chs.msi这几个文件,因为我们的服务器是Win2008,所以我选择了CRRedist2008_X64.msi
CRRedist2008_X64_CHS.msi 这两个文件进行安装。

这个是必须安装的,否则页面会报以下错误:
未能加载文件或程序集“mLayer, Version=10.2.3600.0, Culture=neutral,
PublicKeyToken=692fbea5521e1304”或它的某一个依赖项。

系统找不到指定的文件。

2,文件发布的时候,web.config下要有以下几个引用:
<add assembly="CrystalDecisions.Data.AdoDotNetInterop,
Version=10.5.3700.0, Culture=neutral,
PublicKeyToken=692FBEA5521E1304"/>
<add assembly="CrystalDecisions.CrystalReports.Engine,
Version=10.5.3700.0, Culture=neutral,
PublicKeyToken=692FBEA5521E1304"/>
<add assembly="CrystalDecisions.ReportSource, Version=10.5.3700.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
<add assembly="CrystalDecisions.Shared, Version=10.5.3700.0,
Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
<add assembly="CrystalDecisions.VSDesigner, Version=10.5.3700.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
<add assembly="CrystalDecisions.Web, Version=10.5.3700.0,
Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
<add assembly="CrystalDecisions.Windows.Forms, Version=10.5.3700.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
并且bin目录下必须有这几个引用,如果没有,把这几个文件拷贝进来(在C盘里找就可以);3,要把C:\Program Files\Common Files\Business
Objects\2.7\Managed 下所有的文件都COPY到服务器网站的BIN目录下,这一步也是必要的,否则页面会报以下错误:
注意:这一步我没有在服务器中找到,所以我没有做;未能加载文件或程序集“CrystalDecisions.Web, Version=10.2.3600.0, Culture=neutral, PublicKeyToken=692fbea5521e1304”或它的某一个依赖项。

系统找不到指定
的文件。

4,如果水晶报表工具条无法显示,图片变成一个一个红叉,那我们还需要把本机C:\Inetpub\wwwroot下的aspnet_client目录copy到服务器网站根目录下。

以上功课做完了,按理说水晶报表应该可以正常运行了(我做到这已经可以了),但是打开页面又跳出来一个错误:
文件UNKNOWN.RPT 内出错:无法将请求提交给后台处理。

在网上搜了一下,应该是因为
“出现这个错误的主要原因是水晶报表引擎没有权限生成报表。

查看了一个服务器的权限设置,发现C盘的根目录Users组没有权限,只要把Users组设置为对C盘有写入的权限问题就解决了。

如果认为User组对整个C盘有写入权限不安全,也可以把Temp目录设为有写入权限,问题也可以解决。

初步估计水晶报表引擎可能要在Temp目录里生成一些临时的交换文件,所以需要C盘Temp目录的操作权限。

”。

相关文档
最新文档