ReportParameterInfo 类

包装有关报表参数的信息。

继承层次结构

System.Object
  Microsoft.Reporting.WinForms.ReportParameterInfo

命名空间:  Microsoft.Reporting.WinForms
程序集:  Microsoft.ReportViewer.WinForms(在 Microsoft.ReportViewer.WinForms.dll 中)

语法

声明
Public NotInheritable Class ReportParameterInfo
用法
Dim instance As ReportParameterInfo
public sealed class ReportParameterInfo
public ref class ReportParameterInfo sealed
[<SealedAttribute>]
type ReportParameterInfo =  class end
public final class ReportParameterInfo

ReportParameterInfo 类型公开以下成员。

属性

  名称 说明
公共属性 AllowBlank 指示空字符串是否为有效的参数值。只读。
公共属性 AreDefaultValuesQueryBased 指示参数的默认值是否基于查询。只读。
公共属性 AreValidValuesQueryBased 指示参数的有效值是否基于查询。只读。
公共属性 DataType 获取参数的数据类型。只读。
公共属性 Dependencies 获取一组参数,这些参数的值用于在查询中检索其他参数值。只读。
公共属性 Dependents 一组参数,这些参数将此参数的值作为参数用于查询中以检索 ValidValues 和/或 DefaultValues()。
公共属性 ErrorMessage 获取参数验证失败时返回的错误消息。只读。
公共属性 IsQueryParameter 指示参数是否用于针对外部数据源的查询中。只读。
公共属性 MultiValue 指示参数是否可以为多值参数。只读。
公共属性 Name 获取参数的名称。只读。
公共属性 Nullable 指示参数的值是否可以为 nullnull 引用(在 Visual Basic 中为 Nothing)。只读。
公共属性 Prompt 提示用户提供参数值的文本。
公共属性 PromptUser 指示是否提示用户提供参数值。
公共属性 State 描述参数的状态。只读。
公共属性 ValidValues 获取可用的有效参数值。只读。
公共属性 Values 获取参数值。
公共属性 Visible 确定参数是否可显示在用户界面中。

页首

方法

  名称 说明
公共方法 Equals (从 Object 继承。)
受保护方法 Finalize (从 Object 继承。)
公共方法 GetHashCode (从 Object 继承。)
公共方法 GetType (从 Object 继承。)
受保护方法 MemberwiseClone (从 Object 继承。)
公共方法 ToString (从 Object 继承。)

页首

注释

ReportParameterInfo 类可用于确定报表在运行时的参数要求。

示例

下面的代码示例假定 WinForms 应用程序带有一个 ReportViewer 控件。该代码以编程方式加载报表服务器中的示例报表并循环访问包装在 ServerReport 对象的 ReportParameterInfoCollection 属性中的参数,并显示每个报表参数的相关信息。

[C#]

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Microsoft.Reporting.WinForms;

namespace ParamSample
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {

            // Set Processing Mode
            reportViewer1.ProcessingMode = ProcessingMode.Remote;

            // Set report server and report path
            reportViewer1.ServerReport.ReportServerUrl = new
            Uri("https://localhost/reportserver");
            reportViewer1.ServerReport.ReportPath = 
               "/AdventureWorks Sample Reports/Employee Sales Summary";

            // Display the parameters for this report
            DumpParameterInfo(reportViewer1.ServerReport);

            // Set the parameters for this report
            List<ReportParameter> paramList = new List<ReportParameter>();

            paramList.Add(new ReportParameter("EmpID", "288", false));
            paramList.Add(new ReportParameter("ReportMonth", "12", false));
            paramList.Add(
               new ReportParameter("ReportYear", "2003", false));

            this.reportViewer1.ServerReport.SetParameters(paramList);

            // Process and render the report
            reportViewer1.RefreshReport();


        }

        public void DumpParameterInfo(ServerReport sReport)
        {
            ReportParameterInfoCollection pInfo = sReport.GetParameters();

            if (pInfo.Count == 0)
            {
                Console.WriteLine("<No parameters are defined for this report>");
            }
            else
            {
                Console.WriteLine("===========================================================================");
                Console.WriteLine("Parameter Info for " + sReport.ReportPath);

                foreach (ReportParameterInfo p in pInfo)
                {
                    Console.WriteLine("----------------------------------------------------------------------");
                    Console.WriteLine("Parameter Name: {0}", p.Name);
                    Console.WriteLine("Data Type: {0}", p.DataType);
                    Console.WriteLine("State: {0}", p.State);
                    Console.WriteLine("Allow Blank? {0}", p.AllowBlank);
                    Console.WriteLine("Nullable? {0}", p.Nullable);
                    Console.WriteLine("Prompt User? {0}", p.PromptUser);
                    Console.WriteLine("User Prompt: {0}", p.Prompt);
                    Console.WriteLine("Visible? {0}", p.Visible);
                    Console.WriteLine("MultiValued? {0}", p.MultiValue);
                    Console.WriteLine("Default values query-based? {0}", p.AreDefaultValuesQueryBased);
                    Console.Write("Default value(s): ");

                    // Show a list of default values for the report params
                    IList<string> dvList = p.Values;
                    int t;

                    if (dvList.Count != 0)
                    {

                        t = 1;

                        foreach (string dv in dvList)
                        {
                            if (t != dvList.Count)
                            {
                                t++;
                                Console.Write(dv + ", ");
                            }
                            else
                            {
                                if (t == 1)
                                    Console.WriteLine(dv);
                                else
                                    Console.WriteLine("or " + dv);
                            }
                        }
                    }
                    else
                    {
                        Console.WriteLine("<no default values defined>");
                    }

                    Console.WriteLine("Valid values query based? {0}", p.AreValidValuesQueryBased);
                    Console.Write("Valid values: ");

                    // Show a list of valid values for the report params

                    IList<ValidValue> vvList = p.ValidValues;

                    if (vvList != null)
                    {

                        t = 1;

                        foreach (ValidValue vv in vvList)
                        {
                            if (t != vvList.Count)
                            {
                                t++;
                                Console.Write(vv.Value + ", ");
                            }
                            else
                            {
                                if (t == 1)
                                    Console.WriteLine(vv.Value);
                                else
                                    Console.WriteLine("or " + vv.Value);
                            }
                        }
                    }
                    else
                    {
                        Console.WriteLine("<no valid values defined>");
                    }

                    Console.Write("Dependent parameters: ");

                    ReportParameterInfoCollection dpInfo = p.Dependencies;
                    t = 1;

                    if (dpInfo.Count != 0)
                    {

                        foreach (ReportParameterInfo dp in dpInfo)
                        {
                            if (t != dpInfo.Count)
                            {
                                t++;
                                Console.Write(dp.Name + ", ");
                            }
                            else
                            {
                                if (t == 1)
                                    Console.WriteLine(dp.Name);
                                else
                                    Console.WriteLine("or " + dp.Name);
                            }
                        }
                    }
                    else
                    {
                        Console.WriteLine("<no dependent parameters defined>");
                    }
                    
                }
                
            }
            Console.WriteLine("----------------------------------------------------------------------");
        }
    }
}

线程安全

此类型的任何公共 static(在 Visual Basic 中为 Shared) 成员都是线程安全的。不保证所有实例成员都是线程安全的。

请参阅

参考

Microsoft.Reporting.WinForms 命名空间