ActiveReports 常见错误汇总及解决方法—欢迎大家跟帖更新
本帖最后由 Lenka.Guo 于 2017-7-4 13:55 编辑本贴旨在构建一个错误速查手册(上百条吧),如果遇到同样的错误问题,大家就不用毫无头绪了,可以对照帖子的错误描述和解决方法,先自我排检。(本贴会及时更新,更欢迎大家补充~提供有效的错误描述和解决方法,会奖励高额金币啦~~)
先共享一个之前汇总的 常见WebViewer 使用问题及解决方案
1. FlashViewer 错误代码 #2032
原 因1:项目中未加载Grapecity.ActiveReports.Flash.v10.Resources.swf 和Grapecity.ActiveReports.Flash.v9.swf 文件
解决方法:在路径下 C:\Program Files (x86)\GrapeCity\ActiveReports 10\Deployment\Flash,找到这两个文件,添加到网页的同一目录下。
原因2: 部署时,报这个错误是因为引用GrapeCity.ActiveReports相关的dll文件的版本号不对或与WebConfig文件的不一致。
解决方法:将现有项目中所有的GrapeCity相关的dll文件移除,在VS中,从路径下 C:\Program Files (x86)\Common Files\GrapeCity\ActiveReports 10 将DLL文件添加到项目中(如果不知道添加那几个,可对照着WebConfig文件添加)
2. RDL报表预览时报无限空白页错误
原因: 报表设计方式问题
解决方法: 修改报表设计。
3. LoadStreamIoError.
原因: 数据部分出了问题
4. 数据呈现没有问题,导出数据Word,图片,PDF没有问题,只有导出Excel报404错误
原因: 项目中缺少 DocumentFormat.OpenXml dll文件
解决方法: 需要手动引用到项目中,在AR的安装目录:C:\Program Files (x86)\Common Files\GrapeCity\ActiveReports 10
5. 程序部署后报报License错误,“License for the PageReport cannot be found.”
原因:License.licx文件缺少PageReport的声明项。
解决方法: 在开发机器上,打开Licenses.licx文件,手动添加PageReport的声明项,Version,Cultural,PublicKeyToken这 三项复制Licenses.licx文件中其他项的内容:
GrapeCity.ActiveReports.PageReport, GrapeCity.ActiveReports.v10, Version=10.1.7168.0, Culture=neutral, PublicKeyToken=cc4967777c49a3ff
6. 预览报表时报“已添加了具有相同键的项”异常
原因:SQL查询返回结果中有两个字段的名称相同,导致冲突。
解决方法:修改相同字段的名称。
7. Web程序中使用htmlviewer, 最后加载报表时,样式错乱;
错误信息: \”ViewerViewModel\” is Undefined.
错误原因: 如果运行正常,部署发生错误,则表明 webconfig文件中的模式问题,将应用池改为integratedMode集成模式;或是删除WebConfig文件中的Handlers节点中的所有preCondition 项
如果是运行时报错: 1, 缺少ActiveReports.ReportService.asmx 文件,通过在页面中添加ReportViewer 来自动生成ActiveReports.ReportService.asmx 文件。
2, WebConfig文件缺少项,修改handlers 节点,添加以下四项:
<add verb="*" path="*.ar10" type="GrapeCity.ActiveReports.Web.Handlers.ReportBinariesStreamer, GrapeCity.ActiveReports.Web.v10, Version=10.0.6191.0, Culture=neutral, PublicKeyToken=cc4967777c49a3ff" name="AR10_ReportBinariesStreamer" resourceType="Unspecified" preCondition="integratedMode" />
<add verb="*" path="*.ActiveReport" type="GrapeCity.ActiveReports.Web.Handlers.CompiledReportHandler, GrapeCity.ActiveReports.Web.v10, Version=10.0.6191.0, Culture=neutral, PublicKeyToken=cc4967777c49a3ff" name="AR10_CompiledReportHandler" resourceType="Unspecified" preCondition="integratedMode" />
<add verb="*" path="*.rpx" type="GrapeCity.ActiveReports.Web.Handlers.RpxHandler, GrapeCity.ActiveReports.Web.v10, Version=10.0.6191.0, Culture=neutral, PublicKeyToken=cc4967777c49a3ff" name="AR10_RpxHandler" resourceType="Unspecified" preCondition="integratedMode" />
<add verb="*" path="*.rdl,*.rdlx" type="GrapeCity.ActiveReports.Web.Handlers.RdlxHandler, GrapeCity.ActiveReports.Web.v10, Version=10.0.6191.0, Culture=neutral, PublicKeyToken=cc4967777c49a3ff" name="AR10_RdlxHandler" resourceType="Unspecified" preCondition="integratedMode" />
<add verb="*" path="*.ar10Web" type="GrapeCity.ActiveReports.Web.Handlers.WebCacheAccessHandler, GrapeCity.ActiveReports.Web.v10, Version=10.0.6191.0, Culture=neutral, PublicKeyToken=cc4967777c49a3ff" name="AR10_WebCacheAccessHandler" resourceType="Unspecified" preCondition="integratedMode" />
8.Winform 程序 pdf导出时提示 license的问题
产生原因:1. 缺少GrapeCity.ActiveReports.Export.Pdf.v10.dll 文件,将此dll文件拷贝到项目中2. License.licx文件缺少对PDF的声明,手动修改Licenses.licx 文件,添加以下内容(类名, dll引用,版本号,Culture,PublicKeyToken):
GrapeCity.ActiveReports.Export.Pdf.Section.PdfExport, GrapeCity.ActiveReports.Export.Pdf.v10, Version=10.0.6191.0, Culture=neutral, PublicKeyToken=cc4967777c49a3ff
GrapeCity.ActiveReports.Export.Pdf.Page, GrapeCity.ActiveReports.Export.Pdf.v10, Version=10.0.6191.0, Culture=neutral, PublicKeyToken=cc4967777c49a3ff
9. “未能加载文件或程序集“GrapeCity.ActiveReports.Imports.Access.v10”或它的某一个依赖项。视图加载格式不正确的程序”
产生原因: 具体项目中未引用这个dll文件,但是在Properties 文件下能够找到GrapeCity.ActiveReports.Imports.Access.v10 dll文件。
解决方法: 删除它即可
10.Html5Viewer 提示No found 错误信息
产生原因: html5viewer加载正常,reportService文件启动正常,就是在生成报表时.ar10被拦截,导致报表无法呈现。则考虑整个项目是否被设置为Classic模式。
解决方法:将项目的“Managed Pipeline Mode“ 属性设置为”Integrated“
11. HTML5Viewer 的项目,部署之后报 Licenses for the WebViewer could not be found 。
问题产生原因: 缺少相关的License,所以用WebKeyGenerator.exe (C:\Program Files (x86)\Common Files\GrapeCity\ActiveReports 11)生成配置信息,然后粘贴到Web.config文件中对应的节点
本帖最后由 Lenka.Guo 于 2018-8-10 16:20 编辑
12. 安装AR过程中报错问题产生原因: 安装过程中,用户权限不足导致的安装出错。
解决方法:与用户安装权限有关。
是很多Windows安装包在安装时缺少权限会报的通用错误。于是在win10的开始按钮上,右键点击,选择“命令提示符(管理员)(A)”,这时就弹出了管理员身份运行模式的命令行的窗口了,输入如下的命令,然后就弹出软件的安装窗口,一路安装,就OK了。:msiexec /package "your msi file path"
本帖最后由 KearneyKang 于 2017-7-18 17:00 编辑
13.行号的设置
1. 关于表格可以通过RowNumber()函数直接进行设置,这样就会自动的显示行号2. 关于矩表由于矩表具有分组功能,进行分组后RowNumber()函数就没办法很好的识别分组了,然后行号的显示就不准确,这样就需要我们通过脚本代码来进行一定的设置设置如下:=Code.GetCounter()http://gcdn.gcpowertools.com.cn/forum.php?mod=image&aid=31557&size=300x300&key=ee92238c07c168a1&nocache=yes&type=fixnone后台脚码编写如下:Private Dim Counter As Integer = 0Public Function GetCounter() As Integer Me.Counter= Me.Counter + 1 returnMe.CounterEnd Function
本帖最后由 KearneyKang 于 2018-12-3 16:36 编辑
14.IIS发布问题内网可以访问,但是映射到外网就访问不了,总是访问不了外网的端口,访问的UR地址任然是内网的端口,这样就导致外网无法发访问问题原因:config文件缺少,并且报表服务文件的URL也要进行修改 reportService:{ url: 'http://reverse-proxy.com'; };
<ActiveReports11>
<WebService publicURI="https://reverse-proxy.com"/>
</ActiveReports11>
报错的内容为:xmlhttprequest cannot load着主要原因是跨越访问的问题,当前浏览器不支持跨越访问。解决办法:需要在Web.config文件里面添加,添加在<system.webServer>里<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Headers" value="AuthToken,Authorization, Origin, Content-Type, Accept, X-Requested-With" />
</customHeaders>
</httpProtocol>
参考博客:http://gcdn.gcpowertools.com.cn/ ... tra=page%3D1&page=3
本帖最后由 KearneyKang 于 2017-9-22 17:03 编辑
15.IIS7.5和IIS8发布的时候出现 Not Fund的错误
在解决了其他异常错误,然后本地运行都可以但是发布到IIS7.5 或者IIS8上的时候就出现Not Fund的错误,这主要原因是bin下缺少引用导致,由于该引用没有被检测到所以没办法很明确的报出具体哪个引用缺失,只会报一个Not Fund的错误
解决办法
在项目文件的bin目录下,添加AR的所有引用,一般引用的路径如下:C:\Program Files (x86)\Common Files\GrapeCity\ActiveReports 11
添加后可能会出现一些dll文件没有依赖项,在bin目录下把这些没有依赖项的删除就可以了。然后就可以解决你面临的Not Found 的问题了
缺失这个引用:
本帖最后由 KearneyKang 于 2017-7-31 13:37 编辑
16 PostgreSQl多值传参问题的解决
ODBC数据源不支持多值参数,可以使用动态拼接SQL语句的方法绕过此问题。
核心是:
(1)脚本
Function ArrayToString(list As Object()) As String Dim re ="" For Each item AsString In list If item IsNothing Then ContinueFor End If
If re<> "" Then re +="," End If
re += item Next Return re End Function(2)数据集SQL使用表达式
="select * from city where CountryCode in ("& Code.ArrayToString( Parameters!CountryCode.Value ) & ")"
="select*from Test2WHERE 业务编号 In ('" +Join(Split(Code.ArrayToString( Parameters!P1.Value ), ","), "','") + "')"
操作办法:首先写一个脚本把输入的多值(数组的形式),合并成一个string类型的,然后在用Split函数进行一个分割。
16.使用Html5Viewer 进行跨域访问
如果提示以下错误信息,请在项目中新建Global.asax,在Global.cs 中添加以下代码:
protected void Application_BeginRequest(object sender, EventArgs e)
{
HttpContext.Current.Response.AddHeader("Access-Control-Allow-Origin", "*");
if (HttpContext.Current.Request.HttpMethod == "OPTIONS")
{
HttpContext.Current.Response.AddHeader("Access-Control-Allow-Methods", "GET, POST, OPTIONS");
HttpContext.Current.Response.AddHeader("Access-Control-Allow-Headers", "Content-Type, Accept");
HttpContext.Current.Response.End();
}
}
17. 饼状图中怎么让数值显示为百分比
饼状图经常用于显示每个系列值的占比,因此如何让饼状图显示百分比,是初次使用AR图表的用户比较困惑的一点。
让饼状图显示为百分比:
1. 在属性窗口下选择【图表数据】命令,点击系列值,设置系列值=Sum(字段)/Sum(字段,“DataSet1”)
2. 选择【标签】选项卡,勾选显示点标签,数据标签,设置同样的值后,设置格式代码为Percent.
18. 如错误信息: 在固定页面布局中需要指定数据集名称。则说明您使用的是【页面报表】需要为页面报表中的数据控件,如表格,矩表等数据控件指定数据集。
Lenka.Guo 发表于 2018-1-5 09:32
18. 如错误信息: 在固定页面布局中需要指定数据集名称。则说明您使用的是【页面报表】需要为页面报表中的 ...
用的rdl报表怎么也出现这种错误呢?用了多个数据集在哪里指定呢?
ps:用的独立的报表设计器,在jsp页面中显示报表