次の方法で共有


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
必要なアクセス許可 新しいレポートの作成: Parent に対する <xref:Microsoft.SharePoint.SPBasePermissions.AddListItems>、および Definition で定義されるデータ ソースとデータセットに対する <xref:Microsoft.SharePoint.SPBasePermissions.ViewListItems>

既存のレポートの更新: Report に対する <xref:Microsoft.SharePoint.SPBasePermissions.EditListItems>、および Definition で定義されるデータ ソースとデータセットに対する <xref:Microsoft.SharePoint.SPBasePermissions.ViewListItems>

パラメーターの Parent 長さは 260 文字を超えることはできません。それ以外の場合は、エラー コード rsItemLengthExceeded で SOAP 例外がスローされます。

Parent パラメーターを NULL または空の文字列にすることはできません。また、予約文字 : ? ; @ & = + $ , \ * > < | . " を含めることもできません。 スラッシュ文字 (/) を使用して、フォルダーの完全なパス名内の項目を区切ることができますが、フォルダー名の末尾で使用することはできません。

エラーが発生すると、レポートは作成されません。

SharePoint ライブラリにレポートを追加すると、親フォルダーの ModifiedBy プロパティと ModifiedDate プロパティが変更されます。

レポート名に .rdl 拡張子を含めない場合、rsFileExtensionRequired エラーが返されます。

適用対象