使用ActiveReports报表控件经常遇到的疑难问题及解答

作者:控件中国网   出处:控件中国网   2015-08-06 14:24:28   阅读:34

如果您在使用ActiveReports产品过程中遇到问题,那么您可能会在这个章节中找到合适的解决方案。您可以点击下文中的任意简短说明,以便在下拉菜单中查看症状,原因和解决方案。或者点击链接,以跳转到疑难问题解答的另一部分。

常见问题解答
Visual Studio Add Reference对话框中引用缺失
症状:当您尝试将引用添加到您的项目中时,ActiveReports版本9中只有少数的引用是可用的。
原因:该项目的目标框架被设置为一个旧版本的.NET framework,因此不支持新的组件。
解决方案:
1.在解决方案资源管理器中,右键单击该项目并选择属性。

2.在C#项目的应用程序选项卡上(或是编译选项卡,然后是Visual Basic项目上的高级编译选项按钮)下拉目标框架框并选

择.NETFramework4.0。

安装一个新版本后发生的错误
症状:在您安装了一个新的版本后,再打开用以前版本的ActiveReports创建的一个项目,就可能发生无法找到以前版本的错误。
原因:Visual Studio在引用中对有一个称为特定版本Specific Version的属性。如果该属性设置为True,则该项目将会在您创建报表

之后查找您已经安装的特定版本,并且在找不到它的情况下抛出错误。
解决方案:对于解决方案资源管理器Solution Explorer中的每一个ActiveReports引用,请您选择引用,并在属性窗口将特定版本

Specific Version属性更改为False。
当集成的托管管道模式IntegratedManagedPipelineMode被启用时,本项目不运行
症状:当集成的托管管道模式被启用时,Web项目并没有在应用程序池中运行。
原因:在集成模式下使用时,应用程序配置不正确。
解决方案:迁移应用程序的配置。以下是一个示例命令。
请将以下代码粘贴在命令行。
"%SystemRoot%\system32\inetsrv\appcmdmigrateconfigYourWebSite/"
GrapeCity.ActiveReports.Interop64.v9.dll在默认的“添加引用”对话框中不可用
症状:GrapeCity.ActiveReports.Interop64.v9.dll在默认的“添加引用”对话框中不可用。
原因:该GrapeCity.ActiveReports.Interop64.v9.dll文件位于分发文件夹中。
解决方案:请将该GrapeCity.ActiveReports.Interop64.v9.dll 文件放置于此目录下C:\ Program Files(x86)\ Common Files

\ComponentOne\ActiveReports 9\ REDIST。
添加ActiveReports到一个TFS绑定项目时,报表没有与Visual Studio的报表设计器建立关联
症状:当添加ActiveReports到一个与TFS(报表将在这里被添加到App_Code文件夹)绑定的网站项目时,该报表没有在Visual Studio

报表设计器中打开。
原因:当一个新的ActiveReports文件被添加时,包含将ActiveReports文件与报表设计器相关联的属性信息的FileAttributes.xml文件

通常会加载并保存于内存中。然而,如果一个网站已经被绑定到TFS,则该FileAttributes.xml文件并不会被保存于内存中。因此,

Visual Studio会将所有新添加的文件视为正常的代码文件。
解决方案:将新增报表手动添加到FileAttributes.xml。
1.在网站菜单中,选择添加新项目。

2.选择ActiveReports 9 SectionReport(以代码为基础的),然后单击确定。

3.关闭该项目。

4.在Windows资源管理器中,用编辑器打开该FileAttributes.xml文件,并添加新的ActiveReports文件,使用如下所示的代码将其子类

型设置为组件。

注意:该FileAttributes.xml文件位于C:\Documents and Settings\[username]\Local Settings\Application Data\Microsoft

\WebsiteCache\[WebSite1]\ (Windows XP),或位于 C:\Users\ [username]\AppData\Local\Microsoft\WebsiteCache\[WebSite1]\  

 (Windows 7)。
XML代码。粘贴于FileAttributes.xml 的内部。
<?xmlversion="1.0"encoding="utf-16"?>
<DesignTimeData>
<FileRelativeUrl="App_Code/NewActiveReport1.cs"subtype="Component"/>
<FileRelativeUrl="Default.aspx.cs"subtype="ASPXCodeBehind"codebehindowner="Default.aspx"/>
<FileRelativeUrl="Default.aspx"subtype="ASPXCodeBehind"/>
</DesignTimeData>
5.保存该FileAttributes.xml文件。

6.重新打开该网站项目。

在.NET Framework 4.0上使用脚本运行ActiveReports时,会发生SystemNotSupportedException的问题
症状:在.NET Framework 4.0上使用脚本运行ActiveReports时,会发生SystemNotSupportedException的问题。
原因:出现该异常是由.NET Framework 4.0中过时的CAS策略导致的。
解决方案:有两种方法可以解决这个问题。一种是将UseEvidence属性设置为False。另一种是更新配置文件。要做到这一点,就需要在

解决方案资源管理器中打开app.config文件(适用于Windows Forms应用程序)或Web.config文件(适用于ASP.NET Web应用程序),并

添加如下代码。
(Windows Forms应用程序)XML代码。粘贴于app.config 文件的内部。
<configuration>
<runtime>
<NetFx40_LegacySecurityPolicyenabled="true"/>
</runtime>
</configuration>
 
(ASP.NETWeb应用程序)XML代码。粘贴于Web.config文件的内部。
<system.web>
<trustlegacyCasModel="true"/>
</system.web>
 
64位系统中的Microsoft Access 的OLE DB提供程序
症状:Microsoft Access 的OLE DB提供程序,Microsoft.Jet.OLEDB.4.0不能在64位系统上运行。
原因:在Visual Studio 2008中,默认情况下,项目会设置为使用32位或64位,这取决于它们所运行的环境。 Microsoft Access的OLE

DB提供程序,Microsoft.Jet.OLEDB.4.0与64位是不兼容的,因此在64位系统上的Visual Studio 2008上它会使用失败。
解决方案:为了避免这种情况,请将项目设置更改为只使用32位系统。
1.随着该项目在Visual Studio中打开,在项目菜单上选择项目属性。

2.在出现的页面中,选择VB项目中的编译选项卡,或C#项目中的生成选项卡。

3.滚动到该页面的底部,然后单击VB中的高级编译选项按钮,或在C#中跳过这一步。

4.下拉VB中的目标CPU列表,或C#中的目标平台,(将其设置为默认使用AnyCPU),并选择x86。

5.单击确定以保存更改,或在C#中跳过这一步。

报表完成打印之前打印线程死亡
症状:在报表打印之前打印线程死亡。
原因:如果打印工作是在一个单独的线程完成,并且在打印通话后应用程序立即被关闭,则单线程会在报表打印之前死亡。
解决方案:将Print() 方法的usePrintingThread参数设置为False,以使其保持在同一个线程中打印。这不仅适用于页面报表,也适用

于区域报表。
1.在您调用Print方法的项目中,添加一个引用到GrapeCity.ActiveReports.Viewer.Win.v9组件。

2.在您调用Print方法的代码文件顶部,为GrapeCity.ActiveReports添加一个使用的指令(VB的输入)。

3.调用使用如下代码将usePrintingThread参数(第三个参数)设置为false的Print方法。

C#代码.
document.Print(false,false,false);
 
VisualBasic代码.
document.Print(False,False,False)
 
使用Viewer.Print来打印报表时抛出异常
症状:使用Viewer.Print方法打印报表时,会抛出异常。
原因:在页面被完全加载之前,Print方法被调用。
解决方案:在该LoadCompleted(在线文档中的“LoadCompleted事件”)事件中使用Viewer.Print方法。
 
ActiveReports控件在工具箱中不显示
症状:即使已经用Adding ActiveReports Controls中的步骤手动添加, ActiveReport控件在工具箱中仍然不显示。
原因:该项目仅使用.NET2.0或更低版本。
解决方案:鉴于该ActiveReports控件不支持.NET2.0,请确认该项目是否正在使用.NET3.5或更高版本。
 
区域报表的疑难问题解答
打印页之间出现空白页,或者报表浏览器中出现一条红线
症状:打印报表时,页面之间出现空白页。
原因:当PrintWidth加上左、右页边距超出打印纸宽度时,就会出现以上问题。例如,如果纸张尺寸设定为A4纸,那么PrintWidth再加

上左、右页边距不能超过8.27",否则,打印时就会出现空白页。程序运行时,ActiveReports会通过在报表浏览器中某一特定位置显示

一条红线来标记页面溢出。该位置即为违约发生的位置。
解决方案:在报表设计器中通过使用属性栏或通过拖拽报表的右边框来调整PrintWidth。通过打印属性对话框(位于“设置”下面的“

报表”菜单)或在Report_Start事件中以编程方式来调整页边距、页面高度和宽度。
 
复制报表时导致了控件的堆叠
症状:将一个报表文件复制到一个新的项目时,该报表中的所有控件会堆叠到0,0位置。
原因:该报表已经与它的资源文件断开连接。当您将一个报表的Localizable属性设置为True时,该报表控件的大小和位置属性会移动

到相关的*.resx文件中,所以如果您需要复制或移动该报表,您必须将它的*.resx文件与它一起移动。
解决方案:当您将一个报表的*.vb文件或*.cs文件从一个项目的App_Code文件夹复制到一个新项目的App_Code文件夹时,您还需要将其

中的*.resx文件从原来项目的 App_GlobalResources文件夹中复制导入到新项目的App_GlobalResources文件夹。
 
在包含OleObject控件的报表中没有数据显示
症状:在包含OleObject控件的报表中没有数据显示。
原因:如果使用微软的.NETFramework4.0 ClientProfile或.NETFramework4.0FullProfile时,useLegacyV2RuntimeActivationPolicy

属性未设置​​为True,则会出现此问题。
解决方案:打开app.config文件,并将useLegacyV2RuntimeActivationPolicy属性设置为true。
XML代码。粘贴于app.config文件的内部。
<configuration>
<startupuseLegacyV2RuntimeActivationPolicy="true">
<supportedRuntimeversion="MyRunTimeVersion"/>
</startup>
</configuration>
 
字段列表中出现错误消息
症状:报表资源管理器的字段列表中出现错误消息,而不是在字段中显示。
原因:当一个参数没有给出默认值时,这是一个预期的错误。如果该字段不是文本、备忘,或Access中的日期/时间,而是一个数据类

型,该报表仍可以正常运行。
解决方案:要想在报表资源管理器的字段列表中显示这些字段,您需要在属性窗口中或者在如下的SQL查询中提供该参数的一个默认值


SQL查询
<%Name|PromptString|DefaultValue|DataType|PromptUser%>
以上只有Name参数是必需的。要想使用可选参数中的部分而不是全部的话,就需要使用所有的分隔符,但在一个和下一个未使用的参数

之间没有任何文字。例如:
SQL查询
<%Name||DefaultValue||%>
 
运行报表时出现类型为“System.Data......”的未处理异常
症状:在运行报表时,发生如下类型的异常:“类型为System.Data.OleDb.OleDbException的未处理异常出现于system.data.dll中。


原因:如果该字段是一个文本、备忘,或Access中的日期/时间数据类型,则参数语法要求在文本或备忘字段使用单引号,或在日期/时

间字段使用井号。请注意,对于不同的数据源,这些要求可能会有所不同。
解决方案:为了避免报表对Access数据库运行时发生异常,请您在SQL查询中对日期/时间值使用井号,或对字符串值使用单引号,例如


SQL查询
#<%InvoiceDate|Chooseinvoicedate:|11/2/04|D|True%>#

SQL查询
"<%Country|Country:|Germany|S|True%>"
 
用户被提示要求子报表的参数值,即便它们已经由主报表提供了
症状:该参数的用户界面会在运行时弹窗来要求一个参数值,即便主报表已经为子报表提供了该值。
原因:该报表的ShowParameterUI属性的默认值为True。
解决方案:请您将该报表的ShowParameterUI属性设置为False。这步操作可以在属性栏中或在ReportStart事件的代码中来完成。
 
报表浏览器中显示纸张尺寸错误的报表
症状:报表浏览器中呈现出与指定的纸张尺寸不同的报表。
原因: ActiveReports会对分配给报表的打印机驱动程序发出询问,以便检查裁剪、边距和打印机支持的纸张大小。如果打印机不支持

报表指定的纸张尺寸,那么ActiveReports会使用打印机的默认纸张尺寸来呈现报表。
解决方案:如果一份报表需要打印,那么分配到该报表的打印机必须支持它的纸张尺寸和边距。请注意,若要对打印设置的代码进行任

何更改,请您必须在ReportStart事件内部或之前作出。如果要使用驱动程序不支持的自定义纸张尺寸,请您将PrinterName设置为一个

空的字符串,来使用ActiveReports虚拟打印驱动程序。这虽然不允许打印,但对于那些只导出或查看的报表是推荐使用的。这可以防

ActiveReports去调用默认的打印机驱动程序。建议您在ReportStart事件内部或在.Run被调用之前使用如下的代码。
C#代码。粘贴于ReportStart事件的内部。
this.Document.Printer.PrinterName='';
VisualBasic.NET代码。粘贴于ReportStart事件的内部。
Me.Document.Printer.PrinterName=''
 
PaperHeight和PAPERWIDTH属性,它们需要采取以英寸为单位定义的浮点值,除非您将PaperKind属性设置为自定义,否则它们是没有影

响的。以下是一些可以放置在ReportStart事件内部或.Run之前的示例代码。
C#代码。粘贴于ReportStart事件的内部。
this.PageSettings.PaperKind=Drawing.Printing.PaperKind.Custom;this.PageSettings.PaperHeight=2;
//setstheheighttotwoinchesthis.PageSettings.PaperWidth=4;
//setsthewidthtofourinches
 
VisualBasic.NET代码。粘贴于ReportStart事件的内部。
Me.PageSettings.PaperKind=Drawing.Printing.PaperKind.CustomMe.PageSettings.PaperHeight=2
'sets the height to two inches
 
 
无法对纸张尺寸进行自定义
症状:无法对纸张尺寸进行自定义。
原因:您可以创建多个对纸张尺寸的自定义,因此仅对PaperKind属性进行设置不足以创建一个自定义的纸张尺寸。
解决方案:除了将PaperKind属性设置为自定义之外,您还必须将PaperName属性设置为一个唯一的字符串。
页面报表的疑难问题解答
一个包含数字字段名称的表达式在运行时不显示任何数据。
症状:一个包含数字字段名称的表达式在运行时不显示任何数据。
原因:Visual Basic语法不会承认一个以数字开头的标识符。
i.e.=Fields!2004.Value
解决方案:将该数字字段名称改为一个字符串。
i.e.=Fields("2004").Valueor,=Fields.Item("2004").Value
RDL报表报表的PageHeader中的数据集字段
症状:无法在RDL报表的PageHeader中设置一个数据集字段(绑定字段)。
原因:ActiveReports是以​​RDL报表2005的规格为基础的,因此, RDL报表的PageHeader中不支持引用数据集。
解决方案:实际上不存在一种将一个数据字段直接添加在PageHeader中的方法。但是,作为一种解决方案,您可以创建一个绑定到数据

集的隐藏的报表参数,并且将其默认值设置为您的表达式。例如,="*"&First(Fields!name.Value)。然后,您就可以在页眉上使用此

参数。或者,您也可以使用一个页面布局的报表来替代,它可以允许您将数据字段放置在页面的任何位置。
 
使用Viewer.Document属性时抛出异常
症状:当Viewer.Document(联机文档中的“文档属性”)用于一个页面报表时,则会引发异常。
原因:文档属性仅适用于区域报表。
 
无法在PageReports控件中添加由.NETFramework4.0或更高版本创建的程序集引用
症状:无法在独立的报表设计器应用程序的PageReports控件中添加由.NETFramework4.0或更高版本创建的程序集引用。
原因:独立的报表设计器应用程序已经在.NET3.5framework中创建,所以不能够再对.NET 4.0中的组件进行加载。
 
Flash报表浏览器的疑难问题解答
Swfobject的未定义错误
症状:在使用Flash浏览器时,我的网页会抛出一个SWFObject的未定义错误。
原因:ActiveReports处理程序的映射在IIS 7.0中设置不正确。
解决方案:在IIS7.x中配置HTTPHandlers。
 
加载文件时发生错误IOError,即Error#2032
症状:在IIS中运行Flash浏览器时,会发生一个错误并显示以下报错消息:“加载文件时发生IOError。原因:错误#2032。”
原因:IIS中或web.config文件中,该ActiveReports处理程序映射的设置不正确。
解决方案:请您更新IIS7.x中httpHandlers的配置,或者如果已经完成更新的话,请确保处理程序将会在web.config文件中启用。
 
Firefox会显示白页
症状:在FireFox中运行Flash浏览器时,报表将显示白页,但Internet Explorer可以正确地呈现报表。
原因:Flash浏览器控件的高度和宽度均设置为100%。 Firefox不支持此设置,因此它根本不会对Flash浏览器作出调整。
解决方案:请您使用级联样式表单(CSS)来设置属性。
要在您的Flash报表浏览器ASPX中使用CSS
ASPXCSS代码
<styletype="text/css">
html,body,#WebViewer1,#WebViewer1_controlDiv
{
width:100%;
height:100%;
margin:0;
}
</style>
 
要使用一个外部的CSS文件
1. 为Flash报表浏览器控件分配一个CSS类的报表浏览器。

2. 将如下代码添加到CSS文件。

ASPX CSS代码。粘贴于CSS文件的外部。
.report-viewer,.report-viewerdiv,.report-viewerobject{height:100%;width:100%;}
 
无法使用客户端脚本来加载一个RDF文件
症状:使用客户端脚本时无法在Flash浏览器中加载一个RDF文件。
原因:您必须对IIS Express的设置进行修改,以便在使用客户端脚本时能够正确地加载一个RDF文件。
解决方案:有两种方法可以解决这个问题。
一种方法是:打开一个命令提示符窗口。导航到IIS Express安装文件夹(该文件夹的默认位置是C:\ProgramFiles\IISExpress),然

后运行以下的命令。
将以下代码粘贴到命令行
appcmdsetconfig/section:staticContent/+[fileExtension='.rdf',mimeType='application/octet-stream']
 
另一种方法是对IIS Express的配置文件进行修改。
1.在您的本地文件夹中找到IIS Express的配置文件(其默认位置是C:\Users\[username]\Documents\IISExpress\config

\applicationhost.config)。

2.使用记事本打开该文件,找到configuration/system.webServer/staticContent元素。

3.将以下内容添加到staticContent节点。

在IIS Express配置文件中将其粘贴到staticContent节点
mimeMapfileExtension=".rdf"mimeType="application/octet-stream"/>
 
4.保存该IIS Express的配置文件。

Silverlight报表浏览器的疑难问题解答
在Silverlight5中使用Silverlight报表浏览器时会发生JScript的错误
症状:在Silverlight5中使用Silverlight报表浏览器时,会发生JScript的错误,并且出现如下报错的消息:“Silverlight应用程序

中未处理的错误,类型为'DataDynamics.ActiveReports.Viewer'的匹配指定绑定约束的调用抛出一个异常。”
原因:Silverlight报表浏览器是以Silverlight 4为基础的,它可以将引用添加到System.Windows.Controls.dll(2.0.5.0)。而在

Silverlight5中,Silverlight报表浏览器控件不会自动将引用添加到该项目的System.Windows.Controls.dll,因为Silverlight报表

浏览器只可以将引用添加到Silverlight版本4。
解决方案:请将一个引用添加到该项目的System.Windows.Controls.dll(在Silverlight4 SDK或Silverlight5 SDK中)。
 
如果Silverlight报表浏览器被放置在布局面板,平移模式会不起作用
症状:如果Silverlight报表浏览器被放置在布局面板,如StackPanel或Canvas等中,平移模式将不能在水平或垂直方向起作用。
原因:Silverlight报表浏览器的默认尺寸被根据布局面板属性设置为无穷大。
解决方案:进入属性窗口,并在布局面板的高度和宽度属性上设置为自定义值。
 
WPF报表浏览器的疑难问题解答
运行WPF浏览器应用程序时,会发生TargetInvocationException问题
症状:运行WPF浏览器应用程序时,TargetInvocationException会发生问题。
原因:WPF浏览器应用程序不支持“部分信任”PartialTrust。
解决方案:请确认WPF浏览器应用程序使用的是“完全信任”FullTrust。要做到这一点,您需要在Visual Studio的项目菜单中找到您

的项目属性和安全选项卡,在EnableClickOnce的安全设置以下,请选择该选项“这是一个完全信任的应用程序”。
内存方面的疑难问题解答
注意:对微软而言,它不仅不需要调用GC.Collect方法,并且会尽量将其避免。然而,如果调用System.GC.Collect降低了内存泄漏,

那么这表明它归根结底不是一个泄漏。托管代码中的泄漏是由无限期地持有一个对象引用引起的。如果ActiveReports持有一个对象引

用,那么该对象不能被垃圾收集器收集。
症状:ActiveReports控件消耗了太多的内存;使用ActiveReports控件时,CPU的使用率通常会高达100%。
原因:内存消耗太多可能有几种原因:
该报表没有被妥善地处理
原因:该报表没有被妥善地处理。不正确的语法如下所示。
C#代码。
//Incorrect!rpt.Dispose();rpt=null;
 
VisualBasic代码。
'Incorrect!rpt.Dispose()
解决方案:处理区域报表的正确语法如下所示。
C#代码。
//Correct!rpt.Document.Dispose();rpt.Dispose();
rpt=null;
 
VisualBasic代码。
'Correct!rpt.Document.Dispose()rpt.Dispose()
 
Machine.Config 中内存限制的设置不充分
原因:ASP.NET应用程序中,大的报表可以很容易地耗尽默认情况下分配给ASP.NET工作进程的内存的60%,并因此而产生一个错误。在

Machine.config中,内存限制会以系统总内存百分比的形式来指定一个所允许的内存大小的最大值,在ASP.NET启动一个新的进程之前

,工作进程可以消耗该限制内存,并重新分配现有的请求。
解决方案:请将文档的CacheToDisk属性设置为True。
这样就会将报表缓存到磁盘中,而不是将其保存在内存里。此设定也是继套件之后由PDF Export检测到的,但其他任何输出程序仍然会

消耗内存。虽然不建议,但是ASP.NET辅助进程的内存分配也可以在您的Machine.config文件中更改,它位于一个如下的的路径:C:

\WINDOWS\Microsoft.NET\Framework\v4.0.30319\Config\。请搜索Machine.config文件,以便找到位于processModel中的memoryLimit


 
报表处理进程永远无法完成
原因:在某些情况下,过于大的报表会消耗超多的内存,从而导致该报表的处理进程永远无法完成。可能导致如此结果的原因包括以下

几点:
1.报表含有许多非重复的图像,或者含有一个高分辨率的重复的图像

2.每次区域激发格式事件都将子报表的新实例实例化

3.使用大量的子报表,而不是仅仅与SQL查询的节点相关联

4.在仅需要几个字段时引入所有的数据(例如,使用Select*fromdb而不是SelectFirst,Last,Addressfromdb)

解决方案:在报告过大,无法以其他任何方式运行的情况下,可以将CacheToDisk属性设置为True。只有在没有其他办法来完成报表的

运行的情况下,这个属性才能被使用。在采取这种方法之前,请您先参阅“优化区域报表”这一章节的内容。
 
任务管理器显示该进程的“当前工作组”
原因:如果任务管理器中出现内存使用情况飞速膨胀的情况,它不一定是由代码使用导致的。任务管理器显示该进程的当前“工作组”

,并且,根据要求,其他进程也可以访问该内存。它是由操作系统来管理的。
解决方案:对于某些工作组行为异常(这被认为是正常的)的例子来说,您需要创建一个WinForms应用程序并且运行它。在该进程的工

作组中(应该是几兆字节)搜索任务管理器,然后将窗体分别最小化和最大化,并注意使工作组恢复到<1MB。尽管任务管理器显示将内

存分配给了该进程,但显然,代码并没有使用全部的内存。同样地,尽管该进程中的管理代码并没有使用全部内存,您仍将会看到

ASP.NET和其他管理服务流程继续逐步壮大他们自己的工作组。要想查看这种情况是否属实,请在项目运行后尝试使用一个按钮的Click

事件中的如下两行代码。
System.Diagnostics.Processpc=System.Diagnostics.Process.GetCurrentProcess();pc.MaxWorkingSet=pc.MinWorkingSet;
如果内存回收了,那么操作系统就会修剪工作组并使其下降到所比需的最小值。 这表明,实际上并没有使用额外的内存。
 
WebViewer报表浏览器的疑难问题解答
如果报表没有显示的话,WebViewer不会进行打印
症状:如果报表没有显示的话,WebViewer不会对它进行自动打印。
原因:只有WebViewer中新的FlashViewerViewerType可以提供这个功能。
解决方案:
1.将ViewerType属性设置为FlashViewer。

2.展开FlashViewerOptions属性,并展开PrintOptions子属性。

3.将PrintOptions子属性下面的StartPrint属性设置为True。

报表没有更新新的数据,或者页码保持不变
症状:当用户选择一个新的报表时,WebViewer停留在前一个报表最后浏览的页面上;或者用户刷新当前报表时,新的数据不会在刷新

时显示。
原因:如果控件是在响应客户端回发时加载数据,那么报表属性不会运行指定的报表。相反,它会使用该报表文件在WebCache服务程序

中以前缓存的副本,以便将快速的响应提供给客户端。
解决方案:要想强制客户端使用一个新的实例,请在设置报表属性之前调用ClearCachedReport方法。
 
当一个应用程序包含WebViewer时,PDF会在一个新的窗口打开
症状:在使用Internet Explorer和Acrobat Reader来在PDF模式下浏览一个包含WebViewer的页面时,生成的PDF文档会始终在新窗口中

打开。
原因: Acrobat Reader软件只适用于32位系统的版本。在使用64位版本的Internet Explorer时,它打开了32位版本的Internet

Explorer的一个实例,以便使插件和PDF格式文档可以加载,会在一个新窗口中渲染生成PDF。
解决方案:
•安装一个64位兼容的PDF阅读器插件。或

•使用32位版本的Internet Explorer。

HTML报表浏览器类型中的报表与其他的报表浏览器类型看起来并不完全相同
症状:HTML报表浏览器类型中的报表与其他报表浏览器类型看起来并不完全相同。
原因:HTML格式不是所见即所得的。它不支持以下项目:
•线型控件

•控件边框

•形状(填充区域除外)

•CrossSectionBox和CrossSectionLine控件

•重叠控件

解决方案:尽量避免在以HTML格式显示的报表中使用上述项目。
 
在web产品服务器上伴随AcrobatReader报表浏览器类型产生的空白报表
症状:在WebViewer中,报表会以HTML 报表浏览器类型正确地呈现,但它们会在Web服务器产品上与AcrobatReader 报表浏览器类型一

起产生空白报表。
原因:在您的IIS扩展名映射中没有对.ArCacheItem进行设置。
解决方案:
1.在开始菜单中,选择控制面板,然后选择系统管理工具,然后选择互联网信息服务。

2.右键单击您的默认Web站点,然后选择属性。

3.在主目录选项卡上单击配置按钮。

4在映射选项卡上选中扩展列,看看.ArCacheItem是否会出现。如果没有出现,单击添加。

5.在弹出的添加/编辑应用程序扩展名映射对话框中单击浏览并导航到(Windows)\Microsoft.NET\Framework\v2.0.50727 或 v3.0 或

v3.5。

6.在打开对话框中,将文件类型更改为Dynamic Link libraries (*.dll)。

7.选择aspnet_isapi.dll,然后单击打开。

8.在扩展名的文本框键入.ArCacheItem。

9.单击限制为单选按钮,然后键入GET,HEAD,POST,DEBUG。

10.确保脚本引擎复选框已选中,且检查文件是否存在复选框已经被清除。

11.单击确定。

帮助部分的疑难问题解答
在安装新的服务包以后,ActiveReports 9的帮助部分在Visual Studio 2010中没有更新
症状:在安装新的服务包以后,ActiveReports 9的帮助部分在Visual Studio 2010中没有更新。
解决方案:
1.通过选择管理帮助设置来打开Microsoft Visual Studio2010/Visual StudioTools文件夹中,或Visual Studio 2010的帮助菜单中的

帮助中心管理器。

2.在帮助中心管理器中选择删除内容。

3.单击内容标题旁边的删除操作,然后单击删除以删除旧的ActiveReports 9  Help的内容。

4.按照Visual Studio 2010中安装帮助所描述的来安装ActiveReports 9Help。

按下F1键却打不开Visual Studio 2010中的ActiveReports 9 Help
症状:我已经按照Visual Studio 2010中安装帮助所描述的安装好了ActiveReports 9Help,但是
按下F1键时却打不开Visual Studio 2010中的文档文件。
解决方案:请确认您是否已经重新启动了Help Library Agent。如果重新启动Help Library Agent仍不能解决此问题

Copyright© 2006-2015 ComponentCN.com all rights reserved.重庆磐岩科技有限公司(控件中国网) 版权所有 渝ICP备12000264号 法律顾问:元炳律师事务所
客服软件
live chat