2014-04-23 89 views
0

我正在尝试制作一个简单的水晶报表查看器应用程序,我无法让查看器设置登录信息。基本上我想要做的就是点击一个按钮,它应该打开一个报告。很简单,我认为但显然不是。这里是我的代码Crystal Report Viewer不接受登录信息

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; 
    } 

最糟糕的是,这种代码工作正常,在我的电脑之一,但不是我想要的工作的。 再一次,这个代码完全编译和工作在我的一台电脑上,但没有另一台,我无法弄清楚为什么我的生活。上帝,我希望有人能帮助。

当我运行该程序并单击按钮时,它会提示我输入用户名和密码,但是当我输入它时,它会显示“登录失败”,另一个问题是“数据库”字段未填充尽管它应该是登录表单。

回答

-1

好的我解决了这个问题。不完全确定为什么这个工作,但我会张贴我在这里为后代做了什么,因为我找不到能够帮助我的人。

首先,我在计算机上安装了Crystal Reports,它给了我这个问题。 (我的公司有2011年的许可证,所以我安装了2011)

接下来,我打开了报告(使用Crystal Reports 2011程序)并试图预览它,它促使我登录信息,所以我给了登录信息和让报告生成预览。

最后我跑了程序,它的工作!

所以我认为问题主要是通过安装水晶报表来解决的,但我认为仍然有必要进入报表本身,并确保它可以生成预览。