ReportingService2006.GetReportParameters 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
傳回指定之報表的報表參數屬性。 GetReportParameters(String, String, ParameterValue[], DataSourceCredentials[]) 方法也可用來根據指定之報表的參數來驗證參數值。
public:
cli::array <ReportService2006::ReportParameter ^> ^ GetReportParameters(System::String ^ Report, System::String ^ HistoryID, cli::array <ReportService2006::ParameterValue ^> ^ Values, cli::array <ReportService2006::DataSourceCredentials ^> ^ Credentials);
public ReportService2006.ReportParameter[] GetReportParameters (string Report, string HistoryID, ReportService2006.ParameterValue[] Values, ReportService2006.DataSourceCredentials[] Credentials);
member this.GetReportParameters : string * string * ReportService2006.ParameterValue[] * ReportService2006.DataSourceCredentials[] -> ReportService2006.ReportParameter[]
Public Function GetReportParameters (Report As String, HistoryID As String, Values As ParameterValue(), Credentials As DataSourceCredentials()) As ReportParameter()
參數
- Report
- String
報表的完整 URL,包括檔名和副檔名 .rdl。
- HistoryID
- String
報表記錄快照集的識別碼。 將 ForRendering 參數設定為的值,以便 true 取出報表記錄快照集的參數屬性。 如果為非報表記錄快照集的報表擷取參數,則將值設定為 null (Visual Basic 中則為 Nothing )。
- Values
- ParameterValue[]
可根據報表之參數進行驗證的參數值 (ParameterValue 物件)。
- Credentials
- DataSourceCredentials[]
可用來驗證查詢參數的資料來源認證 (DataSourceCredentials 物件)。
傳回
ReportParameter 物件的陣列,會列出報表的參數清單。
範例
using System;
using System.Collections.Generic;
using System.IO;
using System.Text;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
class Sample
{
static void Main(string[] args)
{
ReportingService2006 rs = new ReportingService2006();
rs.Url = "http://<Server Name>/_vti_bin/ReportServer/" +
"ReportService2006.asmx";
rs.Credentials =
System.Net.CredentialCache.DefaultCredentials;
string report = "http://<Server Name>/Docs/Documents" +
"/AdventureWorks Sample Reports/" +
"Employee Sales Summary.rdl";
string historyID = null;
ParameterValue[] values = null;
DataSourceCredentials[] credentials = null;
ReportParameter[] parameters = null;
try
{
parameters = rs.GetReportParameters(report, historyID,
values, credentials);
if (parameters != null)
{
foreach (ReportParameter rp in parameters)
{
Console.WriteLine("Name: {0}", rp.Name);
}
}
}
catch (SoapException e)
{
Console.WriteLine(e.Detail.InnerXml.ToString());
}
}
}
Imports System
Imports System.IO
Imports System.Text
Imports System.Web.Services
Imports System.Web.Services.Protocols
Class Sample
Public Shared Sub Main()
Dim rs As New ReportingService2006()
rs.Url = "http://<Server Name>/_vti_bin/" + _
"ReportServer/ReportService2006.asmx"
rs.Credentials = _
System.Net.CredentialCache.DefaultCredentials
Dim report As String = "http://<Server Name>" + _
"/Docs/Documents/AdventureWorks Sample Reports" + _
"/Employee Sales Summary.rdl"
Dim historyID As String = Nothing
Dim values As ParameterValue() = Nothing
Dim credentials As DataSourceCredentials() = Nothing
Dim parameters As ReportParameter() = Nothing
Try
parameters = rs.GetReportParameters(report, historyID, _
values, credentials)
If Not (parameters Is Nothing) Then
Dim rp As ReportParameter
For Each rp In parameters
Console.WriteLine("Name: {0}", rp.Name)
Next rp
End If
Catch e As SoapException
Console.WriteLine(e.Detail.InnerXml.ToString())
End Try
End Sub
End Class
備註
下表顯示標頭以及有關這項作業的權限資訊。
| SOAP 標頭 | (In) TrustedUserHeaderValue (Out) ServerInfoHeaderValue |
| 必要權限 | ViewListItems |
如果報表的執行設定為,則 Snapshot 傳回的參數中繼資料是報表記錄快照集建立時所使用的資料。 如果報表的執行設定為,則 Live 傳回的參數中繼資料代表與指定之報表相關聯的參數資料。
如果您提供參數的值, HistoryID 並將 ForRendering 參數值設定為 true ,則傳回的參數中繼資料代表建立報表記錄快照集時所使用的參數資料。 HistoryID如果設定為,則會忽略提供的值 ForRendering false 。 如果 ForRendering 為 false ,則傳回的參數中繼資料代表目前與指定之報表相關聯的參數資料。
如果有任何參數值是以查詢為基礎,而且您想要傳回以查詢為基礎之參數的有效值清單,請將設定 ForRendering 為 true 。 此外,針對以查詢為基礎的參數,您必須傳入傳回查詢參數所需的所有認證資訊。
使用 GetReportParameters 方法來驗證參數時, Values 需要參數。
如果給定報表的報表參數不存在, ReportParameter 則會傳回空陣列。