Share via


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 数组。

示例

若要编译此代码示例,必须引用 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 异常,错误代码 为 rsItemLengthExceededed

参数 Folder 不能为 null 或空,也不能包含以下保留字符: : ? ; @ & = + $ , \ * > < | . "。 可以使用 /) (正斜杠字符分隔文件夹的完整路径名称中的项目,但不能在文件夹名称的末尾使用它。

报表服务器不支持在搜索条件中间使用通配符。 通配符包括 %、_、[、]、^和 -。 如果存在通配符,则报表服务器按字面处理该字符。

在搜索条件集中只能提供属性名称的一个实例。

FindItems 搜索功能不区分大小写。

使用 FindItems 的应用程序通常接受用户输入特定属性和属性值。 可搜索的属性包括 Name、、DescriptionCreatedByCreationDateModifiedByModifiedDate。 返回的项仅是用户对其具有 Read Properties 权限的项。

适用于