ReportingService2006.CreateReport 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
將新的報表加入至 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/ 報表定義語言所定義。
傳回
新建立之報表的 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 |
| 必要權限 | 建立新的報表: AddListItems 在 Parent 和 ViewListItems 上定義的資料來源和資料集 Definition更新現有的報表: EditListItems 在 Report 和 ViewListItems 上定義的資料來源和資料集 Definition |
參數的長度 Parent 不能超過260個字元; 否則會擲回 SOAP 例外狀況,並傳回錯誤碼 rsItemLengthExceeded。
Parent參數不可為 null 或空白,或包含下列保留字元: : ? ; @ & = + $ , \ * > < | . " 。 您可以使用正斜線字元 (/) 將資料夾的完整路徑名稱中的專案分開,但不能在資料夾名稱的結尾使用它。
如果發生錯誤,則不會建立報表。
將報表加入至 SharePoint 文件庫會修改 ModifiedBy ModifiedDate 上層資料夾的和屬性。
如果從報表名稱中排除 .rdl 副檔名,則 rsFileExtensionRequired 會傳回錯誤。