1

Crystal Reports 2008 レポートに動的パラメーター (列を参照している配布ポイントなどDP.distributionPoint) があります。アプリケーション (C#) でレポートを開くときに、実行時にデータソースを設定すると、レポートが適切に開き、レポートのEnter Parameter Valuesウィンドウに配布ポイント ( DP.distributionPoint) の使用可能な値が表示されます。

データソースを動的に設定するために使用しているコード (このレポートにはサブレポートはありませんが、レポートはデータベース テーブルとデータベースからのビューを参照していることに注意してください)

SetDataSource(ReportDocument report, string serverName, string databaseName)
{
    //  Set the connection for the main report.
    report.DataSourceConnections[0].SetConnection(serverName, databaseName, true);

    TableLogOnInfo tableLogonInfo = new TableLogOnInfo();
    ConnectionInfo connectionInfo = new ConnectionInfo();
    connectionInfo.DatabaseName = databaseName;
    connectionInfo.ServerName = serverName;
    connectionInfo.IntegratedSecurity = true;

    foreach (Table table in report.Database.Tables)
    {
        tableLogonInfo = table.LogOnInfo;
        tableLogonInfo.ConnectionInfo = connectionInfo;
        table.ApplyLogOnInfo(tableLogonInfo);

        table.Location = tableLogonInfo.ConnectionInfo.DatabaseName + ".dbo." +
                     table.Location.Substring(table.Location.LastIndexOf(".") + 1);
    }
}

レポートを開くたびにデータソースを設定する必要があります。私の計画は、レポートにデータソースを設定し、レポートを位置情報とともに保存することです。そのため、次回は set datasource を呼び出す必要はありません。

しかし、setdatasource を使用せずにアプリケーションをテストすると、レポートを開くことができますが、[パラメーター値の入力] ウィンドウに配布ポイントの使用可能な値が表示されません。

ノート:

  1. レポート内のすべてのテーブル/ビューについて、table.LogOnInfo.ConnectionInfo.ServerName と table.LogOnInfo.ConnectionInfo.DatabaseName を確認しましたが、接続先のデータベースと同じです。

  2. set table.Location を設定すると、使用可能な値のリストを表示できます。

質問:

  1. setdatasource 関数を使用せずにレポートを開くと、使用可能な値のリストが表示されないのはなぜですか?
  2. Crystal Reports 2008 で FieldParameter の使用可能な値をプログラムで変更/制御することは可能ですか?
4

0 に答える 0