【问题标题】:Crystal reports .net visual studio 2008 bundled edition水晶报表.net visual studio 2008 捆绑版
【发布时间】:2010-03-04 04:13:51
【问题描述】:

我对水晶报告有一个严重的问题。

在我的开发环境中运行或在我的本地机器上调试时,它工作正常。

但是当应用程序发布到 windows server 2003 时,它会出现可怕的“您请求的报告需要更多信息”消息

我没有运气试图摆脱这条消息

有人知道我可以尝试什么吗?

这里有更多信息。我在 aspx 页面中使用占位符,然后在代码隐藏中设置用户/密码和数据库 我无法让它与数据集一起使用,并发现我必须在 cr 设计器中分配 odbc 连接。然后在后面的代码中根据需要更改上述细节。

这样做是因为同一份报告可以从 3 个不同的数据库中获取数据(实时开发和培训)

 protected override void Page_Load(object sender, EventArgs e)
 {
    base.Page_Load(sender, e);

    CrystalReportSource1.ReportDocument.Load(Server.MapPath(@"~/Reports/Report5asp.rpt"));
    CrystalReportViewer1.ReportSource = ConfigureCrystalReports(CrystalReportSource1.ReportDocument,CrystalReportViewer1);

    // parameters
    CrystalReportViewer1.ParameterFieldInfo.Clear();
    AddParameter("DIid", _app.Data["DIid"], CrystalReportViewer1.ParameterFieldInfo);
    AddParameter("EEid", _app.Data["EEid"], CrystalReportViewer1.ParameterFieldInfo);
    AddParameter("CTid", _app.Data["CTid"], CrystalReportViewer1.ParameterFieldInfo);

 }


 public ReportDocument ConfigureCrystalReports(ReportDocument report, CrystalReportViewer viewer)
 {
    String _connectionString = _app.ConnectionString();
    String dsn = _app.DSN();
    SqlConnectionStringBuilder SConn = new SqlConnectionStringBuilder(_connectionString);


        TableLogOnInfos crtableLogoninfos = new TableLogOnInfos();
        TableLogOnInfo crtableLogoninfo = new TableLogOnInfo();
        ConnectionInfo crConnectionInfo = new ConnectionInfo();
        crConnectionInfo.ServerName = dsn;// SConn.DataSource;
        crConnectionInfo.DatabaseName = SConn.InitialCatalog;
        crConnectionInfo.UserID = SConn.UserID;
        crConnectionInfo.Password = SConn.Password;
        crConnectionInfo.Type = ConnectionInfoType.SQL;
        crConnectionInfo.IntegratedSecurity = false;

        foreach (CrystalDecisions.CrystalReports.Engine.Table CrTable in report.Database.Tables)
        {
            crtableLogoninfo = CrTable.LogOnInfo;
            crtableLogoninfo.ConnectionInfo = crConnectionInfo;
            CrTable.ApplyLogOnInfo(crtableLogoninfo);
        }

         return report;

  }

如前所述,当部署在 winserver 2003 上时,这在我用于开发的 XP 机器上运行良好,但出现错误

一些有趣的附加信息

我将开发转移到我的家用机器上,这样我可以在这个周末解决这个问题。

所以现在我在同一台机器上开发调试和测试!

在 VS2008 中,我可以毫无问题地编辑和预览报告 如果我启动调试器,我可以毫无问题地在浏览器中查看报告

但是,如果我将网站发布到同一台机器上的另一个文件夹并启动 IIS 并尝试浏览到报告,我会收到上述错误。其他一切都按预期工作。

IIS 在与 VS2008 不同的权限下运行,所以可能与此有关,但我尝试了很多不同的权限,但无法让它运行。

【问题讨论】:

    标签: .net crystal-reports windows-server-2003


    【解决方案1】:

    我发现有效的解决方案是根本不使用 ODBC。相反,我从数据集中填充了报告。如果我知道这样做很容易,我会从一开始就这样做。

    【讨论】:

      【解决方案2】:

      您的水晶报表查看器是否嵌入在 aspx 页面中,而不是在代码后面?如果是,请尝试将代码移到后面的代码上。

      此外,如果您将数据集绑定为数据源,请尝试将数据表绑定到数据集中。

      【讨论】:

      • 我已经包含了一些源代码。希望这将导致解决方案。我以前从未使用过 CR,可能以后也不会使用了
      • 我添加了一些相关信息。最重要的是,在开发机器上使用 IIS 查看时它会失败。但适用于 VS2008
      • 嗨,您是否也将 rpt 文件(或整个“报告”文件夹)复制到了部署位置?您需要 rpt 文件才能在运行时运行报告。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-30
      相关资源
      最近更新 更多