我该如何解决水晶报表问题?

时间:2020-04-17 16:57:38

标签: .net crystal-reports

此代码正常工作,但我在报告调用正常链接时遇到一些错误,但是 每次询问参数和数据库连接。

    private void showReport(int? clsID,int? secID,int? facID)
        {
            try
            {
                crystalReportViewer1.RefreshReport();
                ReportDocument rd = new ReportDocument();
                rd.Load(Application.StartupPath + "\\Reports\\ttreport1.rpt");
                crystalReportViewer1.ReportSource = rd;
                var data = obj.st_getTimeTableReprot(clsID, secID, facID);
                rd.SetDataSource(data.ToList());

            }
            catch (Exception ex)
            {
                MainClass.ShowMSF(ex.Message, "Error", "Error");
            }
        }

1 个答案:

答案 0 :(得分:0)

这可能不是最好的答案,因为它涉及对凭据进行硬编码,但是,我很绝望。下面是一个例子,说明我前几天在ASP.NET/C#项目中调用的Crystal Report不会停止提示我输入凭据的情况。

我会尝试对您用于生成报告数据的凭据进行硬编码,看看是否有帮助。

受保护的无效BtnTagNo_Click(对象发送者,EventArgs e) { 字符串btn_fileSavePath;

    btn_fileSavePath = @"\\myserver\c$\inetpub\wwwroot\myReport.RPT";
    ReportDocument cryRpt = new ReportDocument();

    TableLogOnInfos crtableLogoninfos = new TableLogOnInfos();
    TableLogOnInfo crtableLogoninfo = new TableLogOnInfo();
    ConnectionInfo crConnectionInfo = new ConnectionInfo();
    Tables CrTables;

    string path = btn_fileSavePath;
    cryRpt.Load(path);

    cryRpt.SetParameterValue("TagNo", Convert.ToInt32(txtTagNo.Text));

    crConnectionInfo.ServerName = "YOURSERVER\\HERE";
    crConnectionInfo.DatabaseName = "DBNAME";
    crConnectionInfo.UserID = "userID";
    crConnectionInfo.Password = "password";

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

    CrystalReportViewer1.ReportSource = cryRpt;

}
相关问题