ReportingService2005.FindItems 方法

定義

從報表伺服器資料庫中傳回符合搜尋準則的項目。

public:
 cli::array <ReportService2005::CatalogItem ^> ^ FindItems(System::String ^ Folder, ReportService2005::BooleanOperatorEnum BooleanOperator, cli::array <ReportService2005::SearchCondition ^> ^ Conditions);
public ReportService2005.CatalogItem[] FindItems (string Folder, ReportService2005.BooleanOperatorEnum BooleanOperator, ReportService2005.SearchCondition[] Conditions);
member this.FindItems : string * ReportService2005.BooleanOperatorEnum * ReportService2005.SearchCondition[] -> ReportService2005.CatalogItem[]
Public Function FindItems (Folder As String, BooleanOperator As BooleanOperatorEnum, Conditions As SearchCondition()) As CatalogItem()

參數

Folder
String

要搜尋之資料夾的完整 URL。 若要搜尋整個報表伺服器資料庫,請指定根資枓夾 (/)。

BooleanOperator
BooleanOperatorEnum

所套用的邏輯運算子,以便連接搜尋條件。 可能的值是 ANDOR。 預設值是 AND

Conditions
SearchCondition[]

SearchCondition 物件的陣列,定義要搜尋的屬性名稱和值。

傳回

CatalogItem[]

報表伺服器資料庫中對應於指定搜尋準則的 CatalogItem 物件陣列。

範例

若要編譯這個程式碼範例,您必須參考 Reporting Services WSDL 並匯入特定命名空間。 如需詳細資訊,請參閱 編譯和執行程式碼範例。 下列程式碼範例會在報表伺服器資料庫中搜尋名稱包含 "Sales" 這個字的所有報表:

Imports System  
Imports System.Web.Services.Protocols  

Class Sample  
   Public Shared Sub Main()  
      Dim rs As New ReportingService2005()  
      rs.Credentials = System.Net.CredentialCache.DefaultCredentials  

      Dim items As CatalogItem() = Nothing  
      Dim condition As New SearchCondition()  
      condition.Condition = ConditionEnum.Contains  
      condition.ConditionSpecified = True  
      condition.Name = "Name"  
      condition.Value = "Sales"  

      Dim conditions(0) As SearchCondition  
      conditions(0) = condition  

      Try  
         items = rs.FindItems("/", BooleanOperatorEnum.Or, conditions)  

         If Not (items Is Nothing) Then  
            Dim ci As CatalogItem  
            For Each ci In  items  
               Console.WriteLine("Item {0} found at {1}", ci.Name, ci.Path)  
            Next ci  
         End If  

      Catch e As SoapException  
         Console.WriteLine(e.Detail.InnerXml.ToString())  
      End Try  
   End Sub 'Main  
End Class 'Sample  
using System;  
using System.Web.Services.Protocols;  

class Sample  
{  
   public static void Main()  
   {  
      ReportingService2005 rs = new ReportingService2005();  
      rs.Credentials = System.Net.CredentialCache.DefaultCredentials;  

      CatalogItem[] items = null;  
      SearchCondition condition = new SearchCondition();  
      condition.Condition = ConditionEnum.Contains;  
      condition.ConditionSpecified = true;  
      condition.Name = "Name";  
      condition.Value = "Sales";  

      SearchCondition[] conditions = new SearchCondition[1];  
      conditions[0] = condition;  

      try  
      {  
         items = rs.FindItems( "/", BooleanOperatorEnum.Or, conditions );  

         if ( items != null )  
         {  
            foreach ( CatalogItem ci in items)  
            {  
               Console.WriteLine( "Item {0} found at {1}", ci.Name, ci.Path );  
            }  
         }  
      }  

      catch ( SoapException e )  
      {  
         Console.WriteLine( e.Detail.InnerXml.ToString() );   
      }  
   }  
}  

備註

下表顯示標頭以及有關這項作業的權限資訊。

SOAP 標頭 (Out) ServerInfoHeaderValue
必要權限 如果不是元件搜尋: ReadProperties

只會傳回具有個別許可權的專案 ReadProperties

參數的長度 Folder 不能超過260個字元; 否則會擲回 SOAP 例外狀況,並傳回錯誤碼 rsItemLengthExceeded

Folder參數不可為 null 或空白,或包含下列保留字元: : ? ; @ & = + $ , \ * > < | . " 。 您可以使用正斜線字元 (/) 將資料夾的完整路徑名稱中的專案分開,但不能在資料夾名稱的結尾使用它。

報表伺服器在搜尋條件的中間不支援萬用字元。 萬用字元包括%、_、[、]、^ 和-。 如果有萬用字元,則報表伺服器會將此字元視為字面。

在一組搜尋條件中,只能提供一個屬性名稱的實例。

的搜尋功能 FindItems 不區分大小寫。

使用的應用程式 FindItems 通常會接受使用者輸入的特定屬性和屬性值。 可搜尋的屬性為 Name 、、 Description CreatedByCreationDateModifiedByModifiedDate 。 傳回的專案只是使用者具有許可權的專案 Read Properties

適用於