1

我知道有一些线程与这个线程有类似的问题。但是,我找不到一个能解决我的问题的。

我使用 Visual Studio 2010 并创建一个包含一个表的数据集。我想在 Crystal Report Viewer 中显示数据。但是当它开始加载时,它会询问我登录信息。我没有在我的数据集上设置任何有关登录信息的内容。这就是为什么我很困惑。

这是我在表中添加虚拟行的代码:

dataSet = new DummyDS();
dummyTable = dataSet.Tables["Simulation"];

// fill table with random data
Object[] dummyObj = new Object[3];
dummyObj[0] = null;
dummyObj[1] = 1;
dummyObj[2] = 2;
dummyTable.Rows.Add(dummyObj);

这是我加载水晶报表查看器的代码:

CrystalReport1 cr = new CrystalReport1();
cr.Load();

crystalReportViewer1.ReportSource = cr;
crystalReportViewer1.Refresh();

我想在 Crystal Report Viewer 中显示我的数据而不被要求提供登录信息。你能帮我解决这个问题吗?先感谢您。

4

3 回答 3

2

升级为回答状态,因为我认为这是答案:

您需要将报表数据源设置为您创建的数据集。如果您没有将报表的数据源设置为数据集,那么您依靠 CR 只是猜测要使用哪个数据集!

于 2012-06-12T15:26:06.163 回答
2

根据我的经验:登录窗口可能出现在这些情况下:

  • 未提供数据库连接字符串(为此使用)
    CrystalReport1.SetDatabaseLogon("UserID", "Password", "Server",
    "DatabaseName")
  • 查询包含不存在的对象。
  • 其他一些我还没有遇到的案例。
于 2012-06-11T12:33:55.357 回答
0

我有时会遇到同样的问题,但不幸的是它与任何登录过程都没有任何关系(正如您所怀疑的那样)。当 CR 无法创建报告时,在某些情况下抛出的错误将类似于:

“加载报告失败(登录失败)”

这与登录本身无关。即使您根本不使用身份验证,它也很可能会给您这个错误。我建议将报告导出到磁盘,例如使用带有 PDF 选项的ExportToDisk 。这可能也会产生错误,但您可以轻松捕获它,它可能会为您提供更多信息。

无论如何,我认为错误在于报告生成本身(而不是身份验证),例如记录选择公式、格式化公式或组函数中。或者 CR 期望的架构与您提供的实际数据之间存在其他一些不匹配。

您正在创建并放入报告中的虚拟数据,它与您构建 CR 文件所用的模式是否完全相同?

于 2012-06-11T12:40:08.790 回答