1

これはログイン情報メソッドです

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を使用しています。さらに、サーバーシステムでもユーザー名のパスワードを要求されることがあります。これを解決する方法は?

4

2 に答える 2

1

あなたは間違った順序で物事をやっています。ビューアーにレポートをロードする前に、プログラムでログインを行う必要があります。

さらに、プログラムをユーザーにリリースする前に、サーバー マシンとテスト クライアント マシンでプログラムをテストする必要があることを強調してもしきれません。

于 2012-07-26T14:27:45.227 に答える
0

このエラーの原因は、ユーザー名とパスワードが間違っていることです。
ユーザー名、パスワードを確認し、以下のコードを使用してください。

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();
于 2018-01-20T17:16:11.943 に答える