4

ReportViewerコントロールに表示しているレポートのパラメーターを設定しています。パラメーターは適切に設定されており、レポートは適切なパラメーターで実行されていますが、ReportViewerの上部にレポート基準を提供する実際のコントロールはそうではありません。選択されました。設定した基準でレポートが適切に実行されている場合でも、基準で適切な項目が選択されないのはなぜですか?

ReportParameter month = new ReportParameter("month", "September 2011");
SsrsReportInfo reportInfo = new SsrsReportInfo("Summary", "http://server/ReportServer/", "/MyFolder/Summary", month);

this.reportViewer1.ServerReport.ReportPath = reportInfo.ReportPath;
this.reportViewer1.ServerReport.ReportServerUrl = new Uri(reportInfo.ReportServerUrl);

if (reportInfo.Parameters != null)
{
    this.reportViewer1.ServerReport.SetParameters(reportInfo.Parameters);
}

this.reportViewer1.RefreshReport();

reportInfoクラスのコードは次のとおりです。

/// <summary>
/// SSRS report information for report viewer.
/// </summary>
public class SsrsReportInfo
{
    /// <summary>
    /// Initializes a new instance of the <see cref="SsrsReportInfo"/> class.
    /// </summary>
    /// <param name="reportName">Name of the report.</param>
    /// <param name="reportServerUrl">The report server URL.</param>
    /// <param name="reportPath">The report path.</param>
    public SsrsReportInfo(string reportName, string reportServerUrl, string reportPath)
        : this(reportName, reportServerUrl, reportPath, null)
    {            
    }

    /// <summary>
    /// Initializes a new instance of the <see cref="SsrsReportInfo"/> class.
    /// </summary>
    /// <param name="reportName">Name of the report.</param>
    /// <param name="reportServerUrl">The report server URL.</param>
    /// <param name="reportPath">The report path.</param>
    /// <param name="reportParameters">The report parameters.</param>
    public SsrsReportInfo(string reportName, string reportServerUrl, string reportPath, params ReportParameter[] reportParameters)
    {
        this.ReportName = reportName;
        this.ReportServerUrl = reportServerUrl;
        this.ReportPath = reportPath;
        this.Parameters = reportParameters;
    }

    /// <summary>
    /// Gets or sets the name of the report.
    /// </summary>
    /// <value>The name of the report.</value>
    public string ReportName
    {
        get;
        set;
    }

    /// <summary>
    /// Gets or sets the report server URL.
    /// </summary>
    /// <value>The report server URL.</value>
    public string ReportServerUrl
    {
        get;
        set;
    }

    /// <summary>
    /// Gets or sets the report path.
    /// </summary>
    /// <value>The report path.</value>
    public string ReportPath
    {
        get;
        set;
    }

    /// <summary>
    /// Gets or sets the parameters.
    /// </summary>
    /// <value>The parameters.</value>
    public ReportParameter[] Parameters
    {
        get;
        set;
    }
}

ありがとう、

マーク

4

1 に答える 1

3

私はここで問題を理解しました。パス、URL、パラメーターを設定し、フォームコンストラクター内でレポートを更新するコードがありました。これをForm.Loadイベントに移動しましたが、正常に動作するようになりました。レポートは引き続き適切に実行されますが、ReportViewerの上部にある基準部分内でもパラメーターが適切に設定されるようになりました。

私はここに示されているのと同じ使用法を持っていました:http : //technet.microsoft.com/es-es/library/aa337089(SQL.90).aspx、しかし、彼らがForm.Loadイベントでそれをしたことに気づき、私はそれを試しました、そしてそれはうまくいきました。ReportViewer.Loadイベントでも実行できる可能性があります。これは、値を設定する前にコントロールがまだ画面に表示されていないことが原因である可能性があります。

于 2011-09-09T14:21:23.927 に答える