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

新建立之報表的 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
必要權限 建立新的報表: AddListItemsParentViewListItems 上定義的資料來源和資料集 Definition

更新現有的報表: EditListItemsReportViewListItems 上定義的資料來源和資料集 Definition

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

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

如果發生錯誤,則不會建立報表。

將報表加入至 SharePoint 文件庫會修改 ModifiedBy ModifiedDate 上層資料夾的和屬性。

如果從報表名稱中排除 .rdl 副檔名,則 rsFileExtensionRequired 會傳回錯誤。

適用於