水晶报表部署问题

合集下载

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 就是最后我们要取得路径,即服务器上已下载到本地后的报表路径,加载这个路径就可以查看我们已经做好的水晶报表了。

水晶报表(使用详细过程及注意事项)

水晶报表(使用详细过程及注意事项)

JA V A水晶报表使用过程及注意事项一、第一阶段1.软件安装:Crystal Reports XI + Eclipse2.首先打开Eclipse,新建报表模板:new→other→ Crystal Reports web Project,姑且命名为Pen 注:此时可能会显示错误,不要紧,请不要理会。

3.在Java Resources:src下面的默认包中创建欲使用的JavaBean,如:Pen.java注意:一定要保存4.右键点击JavaBean下面的,选择Crystal Report→ add to a new Crystal Report,并自行创建名称注:名称的创建是有用处的,这便是生成模板的过程5.这时选择左下角的Layout,即可看见可视化编辑窗口,在右侧的Field Explorer中可选择所创建的虚拟字段(所创建的JavaBean中的属性)放入窗口中。

二、第二阶段6.打开MyEclipse,创建web project,命名为PenDemo。

7.复制Pen(Crystal Reports web Project中)项目src文件夹下的com文件夹、CRConfig.xml和log4j.properties文件到PenDemo(MyEclipse中的正常web project)中相应的目录下。

注:这时你会看见有错误,下一步解决8.复制Pen(Crystal Reports web Project中)项目WEB-INF下的全部内容到PenDemo(MyEclipse 中的正常web project)到相应的目录下。

注:请刷新PenDemo项目你会发现错误消失9.请将PenDemo(MyEclipse中的正常web project)src下面包中的生成的report模板cut至webroot 下。

10.copy资料包中的除了web-inf以外的所有文件(夹)至项目工程PenDemo相应的目录下注:刷新又出现错误了,不要紧,这是因为我们本末倒置的缘故,具体原因自己思考11.为了节省时间,我们可以copy资料包中的相关对数据操作的业务类来直接用,首先copy资料包中的DataSource.java至PenDemo项目中,存放的包及路径自己定。

IIS部署常见问题一、IIS70...

IIS部署常见问题一、IIS70...

IIS部署常见问题一、IIS7.0部署1、打开服务器管理器运行‘开始/程序/管理工具/服务器管理器’菜单,打开如下窗体:2、选择服务器角色在上图的左窗体中,选择‘角色’,右键菜单选择‘添加角色’(或右窗体中点添加角色图标),添加角色窗体如下:3、选择角色服务在上图的服务器角色列表中选择‘Web服务器(IIS)’,点‘下一步’,在角色服务列表中,选择‘角色服务’;说明:除了默认选中的选项之外,还需再添加‘应用程序开发’和‘IIS 6 管理兼容性’,如下图红线框中所示:应用程序开发IIS 6 管理兼容性4、确认安装选择5、确认安装信息确认安装信息正确无误后,点‘安装’按钮,进行安装;6、安装结果7、验证默认IIS7.0开始/程序/管理工具/Internet 信息服务(IIS)管理器,如下图:左侧服务器下右击默认网站‘Default Web Site’选择右键菜单‘管理网站/浏览’,打开IE浏览器如下显示,表示IIS7.0基本功能正常,如下图:二、相关参数设置及常见问题1、安装一卡通门户网站运行门户网站安装包ZYTK3X_Portal.exe/SCP_Portal.exe,根据安装的提示向导一步一步往下安装,安装完成后进行添加网站、修改配置文件等设置。

2、添加网站2.1、ZYTK3.2在服务器下选择网站,右键菜单选择‘添加网站’,如下图:输入网站名称,物理路径:D:\ZYTK32\ZYTK32Portal\Zytk32Portal2.2、ZYTK3.5在服务器下选择网站,右键菜单选择‘添加网站’,如下图:C:\inetpub\wwwroot\ZYTK35\ZYTK35Portal\Zytk35Portal3、启动ZYTK32\ZYTK35网站右键ZYTK32\ZYTK35网站,选择右键菜单‘管理网站/启动’。

右键ZYTK32\ZYTK35网站,选择右键菜单‘管理网站/浏览’,报错如下图:4、修改应用程序池托管管道模式4.1、ZYTK3.2服务器上选择‘应用程序池’,在右侧列表中,双击‘ZYTK32’,修改‘托管管道模式’为经典,如下图:4.2、ZYTK3.5服务器上选择‘应用程序池’,在右侧列表中,双击‘ZYTK35’,修改‘托管管道模式’为经典,如下图:4.3、ZYTK3.2服务器上选择‘应用程序池’,在右侧列表中,双击‘Classic .NET AppPool’,修改‘托管管道模式’为‘经典’,如下图:4.4、ZYTK3.5服务器上选择‘应用程序池’,在右侧列表中,双击‘Classic .NET AppPool’,修改‘托管管道模式’为‘经典’,如下图:4.1、未装水晶报表报错:服务器端当出现如上图报错时,则先检查是否安装水晶报表程序(32位)、是否启用,门户网站服务IP是否被授权。

winform水晶报表基础操作从入门到精通

winform水晶报表基础操作从入门到精通

水晶报表基础操作从入门到精通1、水晶报表注册码在使用自带的水晶报表时,请注册,否则只能使用30次,水晶报表注册码如下:注册号:6707437608密码:AAP5GKS0000GDE100DS2、中使用水晶报表我们采用下面的几步使用Push模式执行水晶报表:1设计一个DataSet右击“解决方案浏览器”,选择“添加”--“添加新项”-->“数据集”,从“服务器资源管理器”中的“SQL Server”中拖放“Stores”表(位于PUBS数据库中)。

再将此表拖入数据集中。

而 .xsd文件中仅仅包含一个结构图,但是不会有任何数据在里面。

2创建一个.rpt文件同时将其指定给上一步建立的DataSet。

使用上面的介绍过的方法创建此文件,唯一的不同就是使用数据集来代替前面的直接连接数据。

建立.rpt文件之后,右击“详细资料”-->“添加/删除数据库”,在”数据库专家“窗口中,展开”项目数据“(代替以前的OleDb),展开“数据集”--“DataSet1”,选择“Stores”表。

将“Stores”表添加到“选定的表”中,点击“OK”。

3在aspx页面中拖放一个CrystalReportViewer控件同时将其与前面的rpt文件建立联系。

使用PULL模式下的方法,建立一个WebForm,添加一个Crystal Report Viewer 控件,并设定其属性,此处与PULL模式下是一致的。

代码如下:private void Page_Load(object sender, System.EventArgs e{DataSet1 ds = new DataSet1(;oCR = new MyReport(;SqlConnection MyConn = newSqlConnection(ConfigurationSettings.AppSettings["SqlConn"];MyConn.Open(;//直接访问数据表//string strSel = "select * from tbtree";//SqlDataAdapter MyAdapter = new SqlDataAdapter(strSel,MyConn;//MyAdapter.Fill(ds,"tbtree";//使用存储过程SqlCommand cmd = new SqlCommand("display", MyConn;mandType = CommandType.StoredProcedure;SqlDataAdapter MyAdapter = new SqlDataAdapter(cmd;MyAdapter.Fill(ds,"tbtree";oCR.SetDataSource(ds;}注意:在上面的代码中,你得注意一下oRpt是"Strongly Typed"的报表文件。

Crystal Reports 报表的安装部署

Crystal Reports 报表的安装部署
水晶报表的安装、部署
议题
• 水晶报表打包部署 • 在服务器上发布水晶报表 • 合并模块安装包 • 部署到客户端上使用
水晶报表打包部署
• • • • • •
客户端运行CRRedist2005_x86.msi 新建“安装和部署项目”-->“安装向导” 选择项目类型(这里选“创建用于windows应用程序的安装程序”) 选择要包含的文件 在“MergeMouduleProperties”里的“License Key”输入序列号 生成解决方案
在服务器上发布水晶报表
• 使用 .NET 安装盘中的 netsvr.msi
合并模块安装包
• 服务器端安装 CrystalReports10_NET_l.msi
• 合并模块
– 水晶报表版本 9 , – 水晶报表版本10 , – Visual Studio .NET 内嵌版水晶报表
• • • •
水晶报表 10 RDC 部署的合并模块 水晶报表 10 .NET 部署的合并模块 水晶报表 9 RDC 部署的合并模块 水晶报表 9 .NET 部署的合并模块
使用部署含水晶报表
• 新建一个测试项目 • 添加安装项目 • 添加安装项目的输出 • 添加合并模块 • 设置Crystal Reposrt组件的序列号 • 生成安装文件 • 部署网站 • 测试
常见问题及经验
• 怎么让组页眉,在同一组中每一页都显示
• • • • • • •
• 如何向 CrystalReportViewer 和 ReportDocument 传递参
数 设置Crystal Report Viewer 的外观 控制工具栏的按钮设置 在 Web 页面里的布局 除水晶报表的的公司LOGO 替换水晶报表里的各种图标和图片 关于打印的时候安装插件 已达到系统管理员配置的最大报表处理作业数限制的处理

水晶报表发布

水晶报表发布

下面是用打包的过程,注意最后关于水晶的问题:1.打开你的.net,用鼠标右击你的工程(解决方案),选择add new project(添加新建项目)。

2.选择setup and deployment projects(安装和部署项目)的 web setup pro ject(web安装项目)。

(注意setupproject的存放路径。

通常默认)3.vs的窗口会显示文件系统(you setup name)。

用鼠标点击左栏下的"web a pplication folder" 的加号,右键选中"web application folder",选择"添加项目输出",同时选中primary output 和content files。

4.你的工程中会新增一个yousetupname的工程,就是安装的项目。

保存一下,有时会出错。

5.因为.xml, .rpt, .gif文件不能自动加到项目中,所以要手动加。

在解决方案资源管理器中,右击YouSetup project(你的安装项目名),选中"添加文件",然后把你的.rpt, .xml, .gif文件加入;6.如果你用了crystal report,就要添加crystal reprot的支持文件。

在解决方案资源管理器中,右击YouSetup project(你的安装项目名),选中"添加合并模块",在窗口中找到,并选中C:\Program Files\Common Files\Merge Modu les\DotNETCrystalReports.msm, 打开,就加入了;7.右击"目标计算机上的文件系统",选中属性,在属性窗口中,将productNam e设置为"你要打包的项目名"8.右击"web应用程序文件夹",选中属性,在属性窗口中,将DefaultDocumen t设置为"你的默认登录页"即"起始页",9.选中你的yousetupname工程,按右键,选中"生成";或在主菜单的"生成"中选中"生成yourSetupFileName";10.然后,在C:\Documents and Settings\Administrator\My Documents\Visua l Studio Projects\KaoQin\文件的存放路径下会有一个yousetupname的文件夹,下面还有一个debug的文件夹,你要的就是debug下面的所有文件。

水晶报表问题FOR VS2010

水晶报表问题FOR VS2010

在VS2010环境下运行水晶报表(当然要先装上Crystal Report For VS2010),在SetDataSource方法附近提示“未知的查询引擎错误”,可按如下办法解决:打开app.config,在startup节点添加一个属性useLegacyV2RuntimeActivationPolicy1.<?xml version="1.0"?>2.<configuration>3.<startup useLegacyV2RuntimeActivationPolicy="true">4.<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>5.</startup>6.</configuration>我这边仅仅只是加上这个属性,并设定该属性值为true,没动其他任何信息CrystalReport这个东西在2010中已经别抹掉了遇到这个问题我想大家都是通过专业的转换遇到的当你转换时如果没有下载CrystalReport,请下载:官方下载当你成功安装后,在运行的时候,在很大程度上会遇到这个问题,当然已过时,只是一个警告,并不影响程序,但是我本人看着不顺眼,所以查到一些修改方法,很简单的。

方法如下:this.crystalReportViewer1.DisplayGroupTree = false; //2008版本以前的用法更改为:this.crystalReportViewer1.ToolPanelView = CrystalDecisions.Windows.Forms.ToolPanelViewType.None;//VS 2010中的用法。

部署水晶报表时的常见问题及解决方案整理[5页]

部署水晶报表时的常见问题及解决方案整理[5页]

部署水晶报表时的常见问题及解决方案整理部署水晶报表时的常见问题及解决方案目录:1、载入报表时报错2、部署到Windows 98 / ME 时,出错:"Load Report Failed"3、在Win98的客户端运行提示"该字段名未知"4、分发到客户机时“查询引擎出错”5、load crpe32.dll failed6、在 程序中加载报表时,出错:"Load Report Failed"7、部署 .NET 9.1 程序到Windows 98 时,出错:"Load Report Failed"------------------------------------------------1、载入报表时报错问题出在报表发布上。

发布使用水晶报表的项目需要包含三种组件:报表(*.rpt)、模块(*.msm)、运行库(*.msm),这些模块文件是在C:\Program Files\Common Files\Merge Modules\ 目录里面。

(1)报表(*.rpt)用户编程时创建的水晶报表文件。

(2)模块(*.msm)Managed.msm 该模块包含了CR for VS .NET 的管理模块,如CrystalDecisions、CrystalReport s.Engine.DLL、CrystalDecisions.Web.DLL, 和CrystalDecisions.Windows.Forms.DLL……Managed_chs.msm 是该模块的中文版语言支持。

Database_Access.msm 该模块包含了数据库的驱动、与不同数据库的联结、报表导出为RTF 和HT ML 格式的文档和图表组件。

Database_Access_chs.msm 是此模块的中文版语言支持。

Regwiz.msm 注册信息模块,非常重要,必需在这个模块输入水晶报表的注册序列号,如果不填,编译的时候就无法通过(3)运行库(*.msm)如果报表文件使用了 的dataset 数据集对象,那么VC_CRT.msm 和VC_STL.msm 模块也必须包含在安装工程中。

水晶报表优化

水晶报表优化

水晶报表优化优化Web 报表的关键策略有关如何创建快速交互式报表的提示和注意事项,请参阅作出正确的设计选择。

有关充分使用现有数据库方面的信息,请参阅优化您的制表环境。

若要减少数据传输量和增强报表的性能,请参阅使用增强的记录选定公式。

若要缩短分组、排序、或总计报表的处理和数据传输时间,请参阅改进分组、排序和总计。

一般情况下,无论以何种方式分发报表,您都会遇到类似的性能问题。

按照以下这些策略操作,您会发现不仅在多用户Web 环境下性能显著提高,在单用户情形下性能也会显著提高。

------------------------------------------------作出正确的设计选择本节提供有助于提高报表性能的设计选择和考虑。

本主题涵盖了从基本的建议,如将旧报表更新为最新的文件格式,到较复杂的决策,如是使用活动数据还是使用已保存数据以及如何有效地使用子报表。

在设计报表,尤其是设计用于Web 的报表时,应该允许报表用户操纵其所查看的数据。

即,显示汇总信息,以便每个用户可以快速地浏览报表,然后深化以访问其他数据。

采用此方法,由于仅从数据库服务器传输用户所请求的数据,所以最大限度地降低了Web 流量并缩短了响应时间。

下面只是设计用户驱动报表的几点优势:报表用户可以对其在Web 上查看的信息类型和数量进行交互控制。

因为只从数据库服务器返回用户所请求的信息,所以数据传输和网络流量减少。

当用户需要通过Web 根据实时数据制作报表时,面向用户的报表响应迅速,并能有效地与数据库服务器通讯。

报表变得更有用,原因在于每个用户均可自定义报表的内容,从而创建针对其特定决策问题的报表解决方案。

本节包含四个主题:使用更快的报表格式在活动数据和已保存数据之间选择设计汇总报表慎用子报表------------------------------------------------优化您的制表环境另一个确保报表用户能迅速收到信息的步骤是评估制表环境。

  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目录的操作权限。

”。

相关文档
最新文档