Поделиться через


ReportingService2006.CreateReport Метод

Определение

Добавляет новый отчет в библиотеку SharePoint.

public:
 ReportService2006::CatalogItem ^ CreateReport(System::String ^ Report, System::String ^ Parent, bool Overwrite, cli::array <System::Byte> ^ Definition, cli::array <ReportService2006::Property ^> ^ Properties, [Runtime::InteropServices::Out] cli::array <ReportService2006::Warning ^> ^ % Warnings);
public ReportService2006.CatalogItem CreateReport(string Report, string Parent, bool Overwrite, byte[] Definition, ReportService2006.Property[] Properties, out ReportService2006.Warning[] Warnings);
member this.CreateReport : string * string * bool * byte[] * ReportService2006.Property[] * Warning[] -> ReportService2006.CatalogItem
Public Function CreateReport (Report As String, Parent As String, Overwrite As Boolean, Definition As Byte(), Properties As Property(), ByRef Warnings As Warning()) As CatalogItem

Параметры

Report
String

Имя нового отчета, включая имя файла и расширение RDL.

Parent
String

Полный URL-адрес родительской папки, в которой будет содержаться отчет.

Overwrite
Boolean

Выражение типа Boolean, которое показывает, следует ли перезаписывать существующий отчет в указанном расположении в случае совпадения имен.

Definition
Byte[]

Определение отчета, представляющее содержимое RDL-файла, для публикации на сервере отчетов. Xml-данные определяются языком http://schemas.microsoft.com/sqlserver/reporting/2008/01/reportdefinition/ определения отчета .

Properties
Property[]

Массив объектов Property, содержащий имена и значения свойств, задаваемых для отчета.

Warnings
Warning[]

[out] Массив объектов Warning, который описывает все предупреждения, полученные при проверке определения отчета.

Возвращаемое значение

Объект CatalogItem для вновь созданного отчета.

Примеры

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;  

        Byte[] definition = null;  
        Warning[] warnings = null;  
        string name = "MyReport.rdl";  

        try  
        {  
            FileStream stream = File.OpenRead("MyReport.rdl");  
            definition = new Byte[stream.Length];  
            stream.Read(definition, 0, (int)stream.Length);  
            stream.Close();  
        }  
        catch (IOException e)  
        {  
            Console.WriteLine(e.Message);  
        }  

        try  
        {  
            string parent = "http://<Server Name>/Docs/Documents/";  
            CatalogItem report = rs.CreateReport(name, parent,  
                        false, definition, null, out warnings);  

            if (warnings != null)  
            {  
                foreach (Warning warning in warnings)  
                {  
                    Console.WriteLine(warning.Message);  
                }  
            }  

            else  
                Console.WriteLine("Report: {0} created successfully " +  
                                  " with no warnings", 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 definition As [Byte]() = Nothing  
        Dim warnings As Warning() = Nothing  
        Dim name As String = "MyReport.rdl"  

        Try  
            Dim stream As FileStream = File.OpenRead("MyReport.rdl")  
            definition = New [Byte](stream.Length - 1) {}  
            stream.Read(definition, 0, CInt(stream.Length))  
            stream.Close()  

        Catch e As IOException  
            Console.WriteLine(e.Message)  
        End Try  

        Try  
            Dim parentPath As String = _  
                "http://<Server Name>/Docs/Documents/"  
            rs.CreateReport(name, parentPath, False, _  
                definition, Nothing, warnings)  

            If Not (warnings Is Nothing) Then  
                Dim warning As Warning  
                For Each warning In warnings  
                    Console.WriteLine(warning.Message)  
                Next warning  

            Else  
                Console.WriteLine("Report: {0} created " + _  
                    "successfully with no warnings", name)  
            End If  

        Catch e As SoapException  
            Console.WriteLine(e.Detail.InnerXml.ToString())  
        End Try  

    End Sub  

End Class  

Комментарии

В следующей таблице показаны сведения о заголовках и разрешениях для этой операции.

Заголовки SOAP (In) TrustedUserHeaderValue

(Out) ServerInfoHeaderValue
Необходимые разрешения Создание нового отчета: <xref:Microsoft.SharePoint.SPBasePermissions.AddListItems> on Parent AND <xref:Microsoft.SharePoint.SPBasePermissions.ViewListItems> для источников данных и наборов данных, определенных в Definition

Обновление существующего отчета: <xref:Microsoft.SharePoint.SPBasePermissions.EditListItems> on Report AND <xref:Microsoft.SharePoint.SPBasePermissions.ViewListItems> для источников данных и наборов данных, определенных в Definition

Длина Parent параметра не может превышать 260 символов. В противном случае создается исключение SOAP с кодом ошибки rsItemLengthExceeded.

Параметр Parent не может быть пустым или пустым или содержать следующие зарезервированные символы: : ? ; @ & = + $ , \ * > < | . ". Символ косой черты (/) можно использовать для разделения элементов в полном пути к папке, но его нельзя использовать в конце имени папки.

При возникновении ошибок отчет не создается.

Добавление отчета в библиотеку SharePoint изменяет ModifiedBy свойства и ModifiedDate родительской папки.

Если расширение RDL-файла исключается из имени отчета, rsFileExtensionRequired будет возвращена ошибка.

Применяется к