共用方式為


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 類別可用來決定執行階段報表的參數需求。

範例

下列程式碼範例假設有一個具有 ReportViewer 控制項的 WinForm 應用程式。此程式碼會以程式設計方式從報表伺服器載入範例報表,並逐一查看 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 命名空間