0

我们正在使用 Crystal Reports,并有一个带有动态选择列表的报表。如果我在 32 位进程下加载它,我会正确填充选择列表。如果我改为在 64 位进程下运行它,我会得到一个空的选项列表和一个文本框,用户可以在其中输入任何他们喜欢的内容并将其添加到选择中。我在http://scn.sap.com/thread/3342435上的 SAP 支持站点上进行了讨论,但到目前为止还没有产生任何解决方案。我的演示项目像这样加载报告:

protected void Page_Load(object sender, EventArgs e)
{
  CrystalReportViewer1.ReportSource = 
    Server.MapPath("~/DynamicPickListNew.rpt");
}

它使用报告的已保存连接,但即使手动设置连接也会产生相同的结果。该演示报告有 2 个动态选择列表、1 个静态选择列表和一个对报告内容的查询。输出显示:

  • 2 个选项列表(动态),其值在 32 位应用程序池下,在 64 位应用程序池上为空
  • 1 个选项列表(静态),在两个应用程序池下都有值
  • 两个应用程序池下的数据库中的数据行。

我认为这份报告充分表明:

  1. CR 能够连接到数据库并检索数据行所证明的数据
  2. 在 64 位引擎中存在一个错误,该错误会阻止动态选项列表工作,在 64 位应用程序池中运行时这些列表中缺少值就是证明。

有人遇到过这个bug吗?你找到解决办法了吗?我们不能使用 32 位引擎,因为它有自己的问题(特别是它在重负载下崩溃,其中“重”被定义为单个用户试图点击报告的几页或搜索或缩放)。

谢谢。

更新:进一步的测试表明当 rpt 文件包含命令对象时存在此问题。该命令不需要由动态选择列表使用(或根本不需要使用),只需存在于文件中即可。

4

1 回答 1

0

事实证明,这种行为是 CR 中的一个错误。请参阅http://scn.sap.com/message/14118328#14118328

于 2013-06-12T17:26:07.917 回答