1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > 水晶报表(Crystal Report)- 水晶报表常见问题总结

水晶报表(Crystal Report)- 水晶报表常见问题总结

时间:2024-06-19 22:46:52

相关推荐

水晶报表(Crystal Report)- 水晶报表常见问题总结

自定义水晶报表查看器的外观

目录

1、隐藏/显示查看器的各组成部分,如:树视图、工具栏.

2、隐藏/显示工具栏按钮.

3、控制查看器在 Web 页面里的布局.

4、去除水晶报表的公司LOGO.

5、替换工具栏按钮的图片.

1、隐藏/显示查看器的各组成部分,如:树视图、工具栏.

设置 Crystal Report Viewer 的属性:

BestFitPage 布尔值.获取或设置页面视图是大小合适还是用滚动条进行裁剪.配合设置 Width、Height 来实现无空白和无滚动条的显示!

DisplayGroupTree 布尔值.获取或设置树视图是可见还是隐藏.

DisplayPage 布尔值.获取或设置工具栏是可见还是隐藏.

DisplayToolbar 布尔值.获取或设置工具栏上的转到页按钮是可见还是隐藏.

PageZoomFactor Int32.获取或设置报表的缩放因数.

SeparatePages 布尔值.获取或设置报表页是分开还是连接.

PageToTreeRatio Float64.设置组树与报表视图之间的大小比例.

2、隐藏/显示工具栏按钮.

设置 Crystal Report Viewer 的属性:

HasGotoPageButton 布尔值.获取或设置转到页按钮的可见性.

HasLevelUpButton 布尔值.获取或设置工具栏上的转到上一页按钮是可见还是隐藏.

HasPageNavigationButtons 布尔值.获取或设置工具栏上的页面导航按钮是可见还是隐藏.

HasRefreshButton 布尔值.获取或设置工具栏上的刷新按钮是可见还是隐藏.

HasSearchButton 布尔值.获取或设置工具栏上的搜索按钮是可见还是隐藏.

HasZoomFactorList 布尔值.获取或设置工具栏上的缩放因数列表是可见还是隐藏.

3、控制查看器在 Web 页面里的布局.

在"设计视图”,修改 CrystalReportViewer 的 Width、Height 属性.

切换到窗体的"HTML 视图”,修改 style 属性.

4、去除水晶报表的公司LOGO.

将 Crystal 公司的Logo 文件替换或删除.

(1)如果是用 里自带的水晶报表

C:\Program Files\Microsoft Visual Studio .NET\Crystal Reports\Viewers\p_w_picpaths\ToolBar\logo.gif

(2)如果是用水晶报表 9.2

C:\Program Files\Common Files\Crystal Decisions\2.0\crystalreportviewers\p_w_picpaths\toolbar\crlogo.gif

5、替换工具栏按钮的图片.

(1)如果是用 里自带的水晶报表

C:\Program Files\Microsoft Visual Studio .NET\Crystal Reports\Viewers\p_w_picpaths

(2)如果是用水晶报表 9.2

C:\Program Files\Common Files\Crystal Decisions\2.0\crystalreportviewers\p_w_picpaths

登录失败

目录

1、文件夹 NTFS 权限的问题

2、PULL 模式下,数据库登录问题 (Windows 集成身份验证)

3、PULL 模式下,数据库登录问题 (非 Windows 集成身份验证)

4、PUSH 模式下,画蛇添足登录数据库.

5、部署时出错:连接失败.错误的登录参数.

概述

登录失败是水晶报表 Web 应用的一个常见问题,涉及账号模拟、身份验证方式、数据库安全、NTFS 权限这些方方面面的安全问题.

1.模拟

用户访问 程序时,通常模拟的是 ASPNET 账号.也可能是当前用户、SYSTEM 账号等.

2.验证

(1) 登录数据库需要验证用户的身份.

如果采用非 Windows 集成身份验证,则需要提供正确的登录用户名和密码.如果用户名或密码错误,则登录失败.

而采用 Windows 集成身份验证,会自动用用户模拟的账号登录.

(2) 访问 NTFS 文件夹时也需要验证用户的身份.验证的是用户模拟的账号.

3.授权

(1) 数据库安全采用 Windows 集成身份验证时,如果用户模拟的账号没有登录权限,则出现登录失败.

(2) 访问 NTFS 文件夹时,如果用户模拟的账号没有相应的 NTFS 权限,也会出现登录失败.

1、文件夹 NTFS 权限的问题

(1) 水晶报表 Web 查看器文件夹

内置的水晶报表:C:\Program Files\Microsoft Visual Studio .NET\Crystal Reports\Viewers

水晶报表 9.x:C:\Program Files\Common Files\Crystal Decisions\2.0\crystalreportviewers

错误提示:"/WebApplication1”应用程序中的服务器错误.登录失败.

异常详细信息: CrystalDecisions.CrystalReports.Engine.LogOnException: 登录失败.

(2) 报表文件所在的文件夹,或者导出时的目标文件夹.

错误提示:s登录失败.

异常详细信息: CrystalDecisions.CrystalReports.Engine.LogOnException: 登录失败.

(3) 解决方案

在资源管理器里设置上述文件夹的"安全”,即 NTFS 权限.

为用户 ASPNET 添加"写入”权限.

如果问题仍然存在,为用户 Everyone 添加"完全控制”权限.

2、PULL 模式下,数据库登录问题 (Windows 集成身份验证)

(1) 错误提示

"/MyWebApp”应用程序中的服务器错误.

用户 'PYPC101\ASPNET' 登录失败.

(2) 问题分析

设计水晶报表时,在"数据库专家”的"连接信息”里使用了"集成安全”,即采用了 Windows 集成身份验证.

(3) 解决方案

要为 ASPNET 账号增加数据库登录和访问权限

但这种安全措施不太适用,设计时最好使用非 Windows 集成身份验证,用服务器的账号登录,比如:sa.

3、PULL 模式下,数据库登录问题 (非 Windows 集成身份验证)

运行时读取 web.config 中服务器及账号信息,并登录数据库服务器.

usingCrystalDecisions.Shared;//负责解释TableLogOnInfo类 usingCrystalDecisions.CrystalReports.Engine;//负责解释ReportDocument类 privatevoidPage_Load(objectsender,System.EventArgse) { stringrptPath; rptPath=Server.MapPath("analysis.rpt"); oRpt.Load(rptPath;); //从web.config中获取服务器及账号信息 stringserverName,dbName,userName,password; serverName=System.Configuration.ConfigurationSettings.AppSettings["serverName"]; dbName=System.Configuration.ConfigurationSettings.AppSettings["dbName"]; userName=System.Configuration.ConfigurationSettings.AppSettings["userName"]; password=System.Configuration.ConfigurationSettings.AppSettings["password"]; //登录数据库 TableLogOnInfologOnInfo=newTableLogOnInfo(); inti=0; //对报表中的每个表依次循环. for(i=0;i==Report.Database.Tables.Count-1;i++) { //设置当前表的连接信息. logOnInfo.ConnectionInfo.ServerName=serverName; logOnInfo.ConnectionInfo.DatabaseName=dbName; logOnInfo.ConnectionInfo.UserID=userName; logOnInfo.ConnectionInfo.Password=password; Report.Database.Tables[i].ApplyLogOnInfo(logOnInfo); } //建立.rpt文件与CryStalReportviewer文件之间的连接 CrystalReportViewer1.ReportSource=oRpt; CrystalReportViewer1.DataBind(); }

4、PUSH 模式下,画蛇添足登录数据库.

PUSH 模式使用程序里的数据集作为数据源,不需要登录数据库.

5、部署时出错:连接失败.错误的登录参数.

部署包缺少了负责数据源读写的管理模块:Crystal_Database_Access.msm、Crystal_Database_Access_chs.msm.

ref:

/archive//01/17/dw_19987_39064_--_27700_26230_25253_34920_24120_35265_38382.html

/archive//01/17/dw_19987_39064_--_27700_26230_25253_34920_24120_35265_383821.html

6、 未使用集成crystal登录方式,直接打开的报表文件,不需要集成登录.实现方式是在aspx页面上添加一个控件,然后在代码中找到相应的报表文件(绝对路径),设置相应的区域和时间参数,显示出来即可.

viewer.ReportSource="D:\rpt\test_rpt_file"; ParameterFieldsparamFields=newParameterFields(); ParameterFieldpfItemId=newParameterField(); pfItemId.ParameterFieldName="CityCode"; ParameterDiscreteValuedcItemId=newParameterDiscreteValue(); dcItemId.Value=ddlCity.SelectedValue; pfItemId.CurrentValues.Add(dcItemId); ParameterFieldpfItemMonth=newParameterField(); pfItemMonth.ParameterFieldName="year_month"; ParameterDiscreteValuedcItemMonth=newParameterDiscreteValue(); dcItemMonth.Value=int.Parse(GetDateValue()); pfItemMonth.CurrentValues.Add(dcItemMonth); paramFields.Add(pfItemId); paramFields.Add(pfItemMonth); viewer.ParameterFieldInfo=paramFields;

一、图片显示出不来

在配置文件(web.config)里添加以下代码:

<httpHandlers> <addverb="GET"path="CrystalImageHandler.aspx"type="CrystalDecisions.Web.CrystalImageHandler,CrystalDecisions.Web,Version=13.0.2000.0,Culture=neutral,PublicKeyToken=692fbea5521e1304"/></httpHandlers>

二、原文错误信息:

You're getting the error message "A Number, Currency Amount, Boolean, Date, Time, Date-Time, or String Is Expected Here". In general, this happens when you're running a Crystal Reports template that was created on one machine, that used custom DLLs, and those DLLs were not copied/installed/registered on the machines running Report Runner Viewer or Report Runner Batch. The custom DLLs are normally stored/registered in the Windows Crystal directory.

In short, it means your report is trying to use a function that the Crystal Reports runtime engine does not recognize.

You can also get this with version incompatibilities. For example, our version of our Viewer support 99% of the Crystal Reports functionality, but there are a few new functions that are not yet supported. HasValue is one of those functions. If you use that in your Crystal Reports template, you will also get the error message above.

翻译:

在使用水晶报表的时候,您可能看到类似这样的错误信息“某个数值,货币计算,布尔值,日期,时间,日期-时间,或字符串等可预期的值。 ”一般来说,这种情况发生在您运行一个在某台机器上创建好的Crystal Reports模板文件时,只能使用它系统自带的动态库 ,而缺少那些没有 复制/安装/注册 在此机器上的动态库或报表运行组件。自带的动态库通常储存/注册在系统目录下水晶报表的目录中。

总之,这就说明您的报表是试图使用一个水晶报表运行引擎不兼容的函数。

您也可以得到这个错误当您使用一个与这个版本不兼容的函数。例如,我们的版的水晶报表支持99 %的Crystal Reports 的功能,但有一些新的功能,目前还不支持。 HasValue就是其中的一个功能。如果您使用在您的Crystal Reports模板中,您也将看到上述的错误信息。

三、Crystal report 出现maximum report processing jobs limit configured by your system administrator has been reached错误的解决办法.

WEB下的水晶报表在正常运行一段时间后,出现以下错误:

maximum report processing jobs limit configured by your system administrator has been reached

1.更改注册表:

HKEY_LOCAL_MACHINE/SOftware/Crystal Decisions/Report Application Server/InprocServer/ReportDocument

将PrintJobLimit由75改为0表示无限制,或者改为更大,然后重启动计算机后,故障排除.

2. 报表生成完以后加上下面语句

if(rptDoc!=null) { rptDOc.Close(); rptDoc.Dispose(); }

rptDoc是 ReportDocument 对象

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。