【问题标题】:Crystal Reports asks password in Client systemsCrystal Reports 在客户端系统中询问密码
【发布时间】:2012-07-26 10:22:30
【问题描述】:

这是登录信息方法

private void SetLogonInfo()
    {
        try
        {
            LogInfo.ConnectionInfo.ServerName = "ServerName";
            LogInfo.ConnectionInfo.UserID = "UserID";
            LogInfo.ConnectionInfo.Password = "Password";
            LogInfo.ConnectionInfo.DatabaseName = "DataBase";
        }

        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }

    }

为了创建报告我使用了这个代码

            crystalReportViewer1.ReportSource = null;
            rptdoc = new ReportDocument();
            rptdoc.Load("REPORTS\\TC.rpt");
            crystalReportViewer1.SelectionFormula =selectionFormula;
            crystalReportViewer1.ReportSource = rptdoc;
            rptdoc.Database.Tables[0].ApplyLogOnInfo(LogInfo);

它在服务器系统中运行良好,但如果我在客户端系统中使用它,它会要求输入用户名和密码。我正在使用 Crystal Reports 10。此外,有时它还会在服务器系统中询问用户名密码。如何解决?

【问题讨论】:

    标签: crystal-reports


    【解决方案1】:

    你做事的顺序不对。在将报告加载到查看器之前,您需要以编程方式登录。

    此外,我不能强调您需要在服务器机器和测试客户端机器上测试您的程序,然后再将其发布给用户。

    【讨论】:

    • 感谢您的回复...能否请您提供正确的顺序...?
    【解决方案2】:

    这个错误的原因是用户名、密码错误。
    检查用户名、密码并使用以下代码:

    ReportDocument cryRpt = new ReportDocument();
    TableLogOnInfos crtableLogoninfos = new TableLogOnInfos();
    TableLogOnInfo crtableLogoninfo = new TableLogOnInfo();
    ConnectionInfo crConnectionInfo = new ConnectionInfo();
    Tables CrTables;
    
    //This is for Access Database
    crConnectionInfo.ServerName = "" + "" +Application.StartupPath + "\\Database.mdb"; //access Db Path
    crConnectionInfo.DatabaseName = "" + "" + Application.StartupPath + "\\Database.mdb";//access Db Path
    crConnectionInfo.UserID = "ADMIN";
    crConnectionInfo.Password = Program.DBPassword; //access password
    
    //This is for Sql Server
    crConnectionInfo.UserID = Program.Severuser; //username
    crConnectionInfo.Password = Program.Password;//password
    crConnectionInfo.ServerName = Program.server;//servername
    crConnectionInfo.DatabaseName = Program.database;//database
    
    string path = "" + Application.StartupPath + "\\supportingfiles\\Invoice.rpt";
    cryRpt.Load(path);
    CrTables = cryRpt.Database.Tables;
    foreach (CrystalDecisions.CrystalReports.Engine.Table CrTable in CrTables)
    {
       crtableLogoninfo = CrTable.LogOnInfo;
       crtableLogoninfo.ConnectionInfo = crConnectionInfo;
       CrTable.ApplyLogOnInfo(crtableLogoninfo);
    }
    
    cryRpt.SetParameterValue("invoiceno", Program.billno);
    
    crystalReportViewer1.ReportSource = cryRpt;
    crystalReportViewer1.Refresh();
    

    【讨论】:

      猜你喜欢
      • 2014-09-28
      • 1970-01-01
      • 2023-01-11
      • 1970-01-01
      • 2017-03-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多