ReportingService2005.CreateReport 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
將新的報表加入報表伺服器資料庫中。
public:
cli::array <ReportService2005::Warning ^> ^ CreateReport(System::String ^ Report, System::String ^ Parent, bool Overwrite, cli::array <System::Byte> ^ Definition, cli::array <ReportService2005::Property ^> ^ Properties);
public ReportService2005.Warning[] CreateReport (string Report, string Parent, bool Overwrite, byte[] Definition, ReportService2005.Property[] Properties);
member this.CreateReport : string * string * bool * byte[] * ReportService2005.Property[] -> ReportService2005.Warning[]
Public Function CreateReport (Report As String, Parent As String, Overwrite As Boolean, Definition As Byte(), Properties As Property()) As Warning()
參數
- Report
- String
新報表的名稱。
- Parent
- String
要加入報表之父資料夾的完整 URL。
- Overwrite
- Boolean
Boolean 運算式,指出是否應該覆寫在指定位置中名稱相同的現有報表。
- Definition
- Byte[]
要發行至報表伺服器的報表定義,這是 .rdl 檔案的內容。 XML 資料是由 http://schemas.microsoft.com/sqlserver/reporting/2008/01/reportdefinition/ 報表定義語言所定義。
傳回
- Warning[]
Warning 物件的陣列,描述在驗證報表定義時所發生的任何警告。
範例
若要編譯這個程式碼範例,您必須參考 Reporting Services WSDL 並匯入特定命名空間。 如需詳細資訊,請參閱 編譯和執行程式碼範例。 下列程式碼範例會將報表定義語言 (RDL) 檔形式的報表發佈至報表伺服器資料庫。
Imports System
Imports System.IO
Imports System.Web.Services.Protocols
Class Sample
Public Shared Sub Main()
Dim rs As New ReportingService2005()
rs.Credentials = System.Net.CredentialCache.DefaultCredentials
Dim definition As [Byte]() = Nothing
Dim warnings As Warning() = Nothing
Dim name As String = "MyReport"
Try
Dim stream As FileStream = File.OpenRead("MyReport.rdl")
definition = New [Byte](stream.Length - 1) {}
stream.Read(definition, 0, CInt(stream.Length - 1))
stream.Close()
Catch e As IOException
Console.WriteLine(e.Message)
End Try
Try
warnings = rs.CreateReport(name, "/Samples", False, definition, Nothing)
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 'Main
End Class 'Sample
using System;
using System.IO;
using System.Web.Services.Protocols;
class Sample
{
public static void Main()
{
ReportingService2005 rs = new ReportingService2005();
rs.Credentials = System.Net.CredentialCache.DefaultCredentials;
Byte[] definition = null;
Warning[] warnings = null;
string name = "MyReport";
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
{
warnings = rs.CreateReport(name, "/Samples", false, definition, null);
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());
}
}
}
備註
下表顯示標頭以及有關這項作業的權限資訊。
| SOAP 標頭 | (In) BatchHeaderValue (Out) ServerInfoHeaderValue |
| 必要權限 | 建立新的報表: CreateReport Parent ReadProperties 報表的資料來源和 ReadProperties 報表資料集上的 on 和更新現有的報表: UpdateReportDefinition on Report 和 UpdateProperties on Report (如果 Properties 包含屬性) 和報表的 UpdateProperties 資料來源,以及 UpdateProperties 報表的資料集 |
參數的長度 Parent 不能超過260個字元; 否則會擲回 SOAP 例外狀況,並傳回錯誤碼 rsItemLengthExceeded。
Parent參數不可為 null 或空白,或包含下列保留字元: : ? ; @ & = + $ , \ * > < | . " 。 您可以使用正斜線字元 (/) 將資料夾的完整路徑名稱中的專案分開,但不能在資料夾名稱的結尾使用它。
如果發生錯誤,則不會建立報表。
將報表加入至報表伺服器資料庫時,會 ModifiedBy 修改 ModifiedDate 上層資料夾的和屬性。