Web水晶报表部署总结
水晶报表使用经验(不断扩充中) [6页]
![水晶报表使用经验(不断扩充中) [6页]](https://img.taocdn.com/s3/m/3f5833ef90c69ec3d4bb75d5.png)
水晶报表使用经验(不断扩充中)一:水晶报表获取数据库字段前一段的课程中我讲了关于如何获取报表的数据库字段,当时讲的方法是使用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;需要对子报表在进行数据绑定,这样就会解决这个问题了。
CrystalReport水晶报表使用总结

水晶报表使用总结手头上的一个项目,终显雏形,其中遇到一些问题,经过多番努力,终于得以解决,主要是水晶报表方面的。
因为是第一次用,总结的同时,也给后来可能用到水晶报表的人一些微弱的指引,所以如果总结的不好的话,请大家指正。
关于水晶报表的一些基本概念,如push和pull模式等如果想了解的话,自己百度搜索下,或是找本书看就可以了。
这里我主要是根据实际应用到的要求,来进行带图的详细介绍,希望对新手有所帮助。
使用的是VS2008,在页面中添加命名空间的引用,主要有以下几个:using CrystalDecisions.CrystalReports.Engine;using CrystalDecisions.ReportSource;using CrystalDecisions.Shared;下面先来看下,利用水晶报表做出来的效果图,只是实现功能,界面未经过美工处理,有点难看,多多包涵.图一图二由于是统计报表,所以在应用中需要传递参数值,在实际应用中,我是利用了存储过程来实现的。
Create proc PrintCJ@cjbh varchar(50)AsSELECT Cjdy_zb.DWMC, Cjdy_zb.ND,Cjdy_zb.JD, Cjdy_zb.QSDD,Cjdy_zb.JFJZRQ, Cjdy_zb.YJQJS, Cjdy_zb.YJQJZ, Cjdy_zb.SKDW,Cjdy_fb.QSSY, Cjdy_fb.YT, Cjdy_fb.DYGY,Cjdy_fb.DEGY, Cjdy_fb.DSGY, Cjdy_fb.BCHJ FROM Cjdy_fb INNER JOIN Cjdy_zb ON Cjdy_fb.CJBH = Cjdy_zb.CJBH and Cjdy_zb.CJBH= @cjbh;GO下面截图截图一步一步来操作实现:(1)、在项目中添加一个新文件夹,如Report文件夹,然后在该目录下右键添加Crystal报表。
水晶报表的使用

3.3 Pull模式的使用
首先创建rpt文件,并使用水晶报表设计接 口设置一些必须的数据连接。 拖放一个 CrystalReportViewer控件至 aspx页面,设置它的属性指定我们上一步 创建的.rpt文件。 在代码中调用DataBind方法。
创建 .rpt 文件:
1)
2) 3) 4) 5)
使用Pull模式导出报表
private void btnOutput_Click(object sender, System.EventArgs e) { CrystalReport1 myReport = new CrystalReport1(); CrystalDecisions.Shared.DiskFileDestinationOptions DiskOpts = new CrystalDecisions.Shared.DiskFileDestinationOptions(); myReport.ExportOptions.ExportDestinationType = CrystalDecisions.Shared.ExportDestinationType.DiskFile; myReport.ExportOptions.ExportFormatType = CrystalDecisions.Shared.ExportFormatType.PortableDoc Format; DiskOpts.DiskFileName = "c:\\Output.pdf"; myReport.ExportOptions.DestinationOptions = DiskOpts; myReport.Export(); }
6)
7) 8)
在右击“解决方案游览器”,在弹出的菜单中选择“添加” --“添加新项”-->“Crystal Report” 在“Crystal Report 库”中选择“作为空白报表”单选按 钮,最后单击“确定”。 出现水晶报表设计器。 右击报表中的“详细资料区”,选择“数据库”->“添加/ 删除数据库..." 在弹出的“数据库专家”中,扩展“OLE DB(ADO)”选项, 此时会弹出另外一个“OLE DB(ADO)”窗口。 在 "OLE DB (ADO)" 弹出窗口中,选择 "Microsoft OLE DB Provider for SQL Server" 然后 "Next" 指定连接的信息(选择Pubs库) 单击“下一步”,最后单击“完成”按钮。
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了。
2019-1-17水晶报表技巧总结【二】

2019-1-17⽔晶报表技巧总结【⼆】第⼀条:⽔晶报表分组分页且每页最多显⽰N条记录要求:1、详细节最多5条记录(不能超过5条);2、⽆论前⼀组是否满5条记录,每个新组都要另起⼀页3、可以显⽰组内分页的情况,即:显⽰⼀个组被分为⼏页并且当前是第⼏页我们知道每页最多显⽰N条的控制⽅法,打开节专家,在详细节后⾯新建页公式编辑:RecordNumber mod N = 0RecordNumber即记录数,⽆论分组与否,是⾃动随记录递增的,所以在这⾥,我们不能⽤RecordNumber,⽽应该是在每个新组前要重置这个RecordNumber,⽤这个重置的RecordNumber来取模控制每页最多显⽰5条记录,于是我们很⾃然就想到了运⾏总计字段,由它来帮我们重置RecordNumber,这样我们应该就很明朗了,接下来让我们⼀起去设计模板:报表按ID分组就不⽤再提及了吧?(右击报表空⽩处->插⼊->组)⾸先新建⼀>运⾏总计字段汇总字段:XXX(最好选择的字段和分组字段不同)汇总类型:计数求值:对于每个记录重置:组更改时设计好后把,字段放到【详细资料】中,根据需要可以抑制显⽰。
点击节专家,【详细资料】-->【在后⾯也新建页】勾上-->设置公式:字段是刚刚建⽴的【运⾏总计字段】{#RTotal0} mod 10=0针对需求2,与需求1同理,只不过此时我们是在#组尾(组页脚)节在后⾯页新建页的公式编辑:Not OnLastRecordOnLastRecord意指最后⼀条记录,Not OnLastRecord⾃然是⾮最后⼀条记录,在这⾥就是指⾮最后⼀条记录时就在后⾯页新建页,最后⼀条记录时就不⽤再新建页了。
若不⽤该公式控制的话,报表的最后⼀页总是空⽩页(没有详细节数据)需求3:组内分页及显⽰页码新建⼀个【公式字段】公式设置如下:记录的组记录总数:count(⼀个报表参数,分组参数);前者最好是运⾏总计的字段。
_NET环境下使用水晶报表系统设计与实现WEB报表

’(
电脑知识与技术
电脑知识与技术
!"#$"%&%’ ()*+, 提 供 任 何 !-./’01 23$"-’/ 开 发 组 件 的
最高级灵活性 ! 用 户 可 将 报 告 集 成 到 可 访 问 多 达 数 百 个 2".01’.45-336 忠 诚 度 一 免 费 , 运 行 时 间 拨 号 的 应 用 程 序 " 体验前所未有的报告系统引擎控制能力 ! 使用熟悉 的 78/901 :0/8; 编 码 " 直 接 在 78/901:0/8; <= > 或 ?=> @*A 中创建 # 查看和修改报告 ! 使用在运行时间 BC@ 时 建 立 报 告 或 ADE3FF0E13 G-./’01 H3$"-’/ I3/8J%3- G"%! ’-"1 的拖放式界面 " 让终端 用 户 在 应 用 程 序 中 快 速 建 立 报告 ! 不需支付许可证费 ! K 简易 L3E 报表系统 使用 最 新 的 基 于 网 络 的 报 表 管 理 系 统 " 快 速 展 开 在网络上的报表系统解决方案 ! 自定义的 3C"-’5"18" 及 G-./’01 网 络 报 表 桌 面 能 够 配 合 公 司 形 象 " 或 发 挥 用 户 的想像力 " 建立一个完全自定义的独特界面 ! 以 L3E 的速度进行信息交付 ! G-./’01 H3$"-’/ 与革 新的 H3$"-’ M’-30D8%J 技术相结合 " 以最优化报表处理 在 需 求 6 即 时 N 和 L3E 报 表 排 序 次 序 的 效 能 ! H3$"-’ M’-30D8%J 会将报表分成许多小部份 " 将这些 部 份 传 到 最即时的浏览 器 以 构 建 主 页 " 无 需 等 到 全 篇 报 表 处 理 完毕就能看到主页的效果了 ! 使用 IOPQR 浏览器 " 可 以 在 零 客 户 端 的 网 络 环 境 中 享 受 全 交 互 式 的 格 式 "或 在 B;’8S3T 和 U0S0 格 式 中 选 择 浏 览 器 ! 有 了 G-./’01 H3$"-’/ " 可以 轻 松 的 使 用 各 类 型 的 报 表 格 式 将 信 息 从 个 人 电 脑 递 送 到 企 业 及 网 络 " 包 括 TQRV IOPQRVCIWV PW 和 Q8;-"/"5’ XY;31 ! Z 建立包含集成报表的杰出网站应用程序 快速简易地将海量报表集成至您的网站应用程 序! 通过一次建立核心应用程序" 同时用于网站和 L8%F"[/ 桌面系统的应用程序 " 它们需具备一个共同对 象型号的 BMC 和 L8%\] 应用程序 " 可以节省大量时间 ! ^8/901 @%’3- I3S?_> 开 发 商 可 以 使 用 H3$"-’ @%’3J-0’8"% G"%’-"1/ 来 事 半 功 倍 的 撰 写 包 含 G-./’01 H3$"-’/ 的 BMC 应用程序 ! HIG 支持 $ 公寓型号 % 线型运作以获得更佳 性 能 " 并 使 用 Q8;-"/"5’ P-0%/0;’8"% M3-S3- 以 进 行 多 层 BMC 应用程序 ! 通 过 将 可 自 定 义 的 零 客 户 端 6‘PQRV I‘PQNV B;! ’8S3T 或 a0S0 格式浏览器 集 成 到 应 用 程 序 " 为 终 端 用 户 提供更丰富和交互性的内容 ! 在 G-./’01 H3$"-’/ 收到数据之前先将数据筛选出来 !
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了一个,做一个了安装程序把它装上了也行不通,没办法回来了。
水晶报表分页汇总

水晶报表分页汇总收藏水晶报表分页汇总建三个公式字段,第一个(公式1)输入下面的公式:whileprintingrecords;global numbervar ptotal;ptotal:=0;第二个(公式2)输入下面的公式:whileprintingrecords;global numbervar ptotal;ptotal := ptotal + [要汇总的字段];如果要汇总的字段不是数字,就用tonumber()函数转换;第三个(公式3)输入下面的公式:whileprintingrecords;global numbervar ptotal;把公式1放在页眉,公式2放在详细资料,并隐藏公式1和公式2;把公式3放在页脚,格式公式3,设置为你要显示的格式。
这样就行了。
水晶报表分页并自动插入空白行在论坛上经常会看到水晶报表分页的问题,这个很好解决。
但是自动插入空白行的问题却一直没有很好的答案,经过研究找到一个变通的办法来实现了。
'分页在详细资料上点格式化节,在后面页新建页打勾公式中输入:if _disibledevent= FALSEelseif RecordNumber mod 5 =0 thenFORMULA = TRUEelseFORMULA = FALSEend ifend if'(BASIC 语法)---------------------------------------------------------------------最后页不足,用空行填充:新增一个空白详细资料行,格式化此节,在抑制显示(无深化)打勾公式中输入:if not _disibledevent= TRUEelseif (RecordNumber mod 5 <= 1) then '第一个,1FORMULA = TRUEelseFORMULA = FALSEend ifend if'(BASIC 语法)...接着第二个[ 新增一个空白详细资料行,格式化此节,在抑制显示(无深化)打勾]:公式中输入:if not _disibledevent= TRUEelseif (RecordNumber mod 5 <= 2) then '第二个,2FORMULA = TRUEelseFORMULA = FALSEend ifend if...接着第三个[ 新增一个空白详细资料行,格式化此节,在抑制显示(无深化)打勾]:公式中输入:if not _disibledevent= TRUEelseif (RecordNumber mod 5 <= 3) then '第三个,3FORMULA = TRUEelseFORMULA = FALSEend ifend if在论坛上经常会看到水晶报表分页的问题,这个很好解决。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
将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 Application
Server\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,报表打印正常。
安检报告单出来慢的问题,需要在服务器上重装CRRuntime_64bit_13_0_9.msi
*若不能正常安装水晶报表插件,需要先安装visual studio 2013 premium。
VS2013导出错误Method not found: 'CrystalDecisions.ReportAppServer.DataDefModel.PropertyBag CrystalDecisions.Report
解决办法:下载CRRuntime_64bit_13_0_12.msi,重新再服务器上进行安装。
在windows server 2012 R2 环境下部署IIS .5之后打开网站爆404.17:
解决过程:点击任务栏的服务器管理器,打开添加角色功能指导,在左侧点击服务器角色然后选择 Web服务器->应用程序开发
把ASP, 3.5 , 4.5 ,.Net Extensibility 3.5 , .Net Extensibility 4.5 勾上。
点安装。
安装完成后在按Win+R 打开运行窗口,
输入 iisreset重启iis服务。