我正在尝试创建一个简单的水晶报表查看器应用程序,但我无法让查看器设置登录信息。基本上我想要做的就是点击一个按钮它应该打开一个报告。我觉得很简单,但显然不是。这是我的代码
private void button1_Click(object sender, EventArgs e)
{
ConnectionInfo connInfo = new ConnectionInfo();
connInfo.ServerName = "SERVER NAME";
connInfo.DatabaseName = "DATABASE NAME";
connInfo.UserID = "USERNAME";
connInfo.Password = "PASSWORD";
crystalReportViewer1.ReportSource = GetReportSource(connInfo);
crystalReportViewer1.RefreshReport();
}
private ReportDocument GetReportSource(ConnectionInfo connInfo)
{
ReportDocument document = new ReportDocument();
document.Load("REPORTPATH");
document.SetParameterValue(0, "04/02/2014");
document.SetParameterValue(1, "04/03/2014");
TableLogOnInfos logonInfos = new TableLogOnInfos();
TableLogOnInfo logonInfo = new TableLogOnInfo();
Tables tables;
tables = document.Database.Tables;
foreach (CrystalDecisions.CrystalReports.Engine.Table table in tables)
{
logonInfo = table.LogOnInfo;
logonInfo.ConnectionInfo = connInfo;
table.ApplyLogOnInfo(logonInfo);
}
return document;
}
最糟糕的是,这段代码在我的一台计算机上运行FINE,但不是我希望它能运行的代码。 再次,这段代码完全编译并在我的一台计算机上运行,而不是另一台计算机,我无法弄清楚为什么会这样。上帝,我希望有人可以提供帮助。
当我运行程序并单击按钮时,它会提示我输入用户名和密码,但是当我输入它时,它会显示“登录失败”,另一个问题是登录时未填充“数据库”字段即使它应该是形式。
答案 0 :(得分:-1)
好的,我解决了这个问题。不完全确定为什么会这样,但我会发布我在这里做的后代,因为我找不到任何能够在这里帮助我的人。
首先,我在给我问题的计算机上安装了Crystal Reports。 (我的公司有2011年的许可证,所以我安装了2011年)
接下来,我打开报告(使用Crystal Reports 2011程序)并尝试预览它,它提示我输入登录信息,因此我提供了登录信息并让报告生成预览。
最后我运行了程序,它运作了!
所以我认为问题主要是通过安装水晶报告解决的,但我认为仍然有必要进入报告本身,并确保它可以生成预览。