ページ分割されたレポートを XML ファイルにエクスポートする (レポート ビルダー)
適用対象: Microsoft Report Builder (SSRS) Power BI Report Builder SQL Server Data Tools の Report Designer
XML 表示拡張機能では、改ページ調整されたレポートが XML 形式で返されます。 レポート XML のスキーマは、レポート固有のものであり、データのみを含んでいます。 XML 表示拡張機能では、レイアウト情報はレンダリングされず、改ページ位置の自動修正も維持されません。 この拡張機能で生成された XML は、データベースにインポートしたり、XML データ メッセージとして使用したり、カスタム アプリケーションに送信することができます。
注意
ページ分割されたレポートの定義ファイル (.rdl) は、Microsoft レポート ビルダー、Power BI レポート ビルダー、または SQL Server Data Tools のレポート デザイナーを使用して作成および変更できます。
レポート アイテム
次の表で、レポート アイテムがどのように表示されるかについて説明します。
Item | 表示動作 |
---|---|
レポート | XML ドキュメントのトップレベルの要素として表示されます。 |
データ領域 | コンテナーの要素内部の要素として表示されます。 データ領域には、データをテキストおよびグラフとして表示するテーブル、マトリックス、一覧、およびデータを視覚化するデータ バー、スパークライン、ゲージ、インジケーターが含まれます。 |
グループ セクションおよび詳細セクション | 各インスタンスにより、コンテナーの要素内部の要素として表示されます。 |
テキスト ボックス | コンテナー内部の属性または要素として表示されます。 |
Rectangle | コンテナー内部の要素として表示されます。 |
マトリックスの列グループ | 行グループ内部の要素として表示されます。 |
マップ | コンテナーの要素内部の要素として表示されます。 マップ レイヤーはマップの子要素で、各マップ レイヤーにはそのマップ メンバーの要素とマップ メンバーの属性が含まれています。 |
グラフ | コンテナーの要素内部の要素として表示されます。 系列はグラフの子要素であり、カテゴリは系列の子要素です。 それぞれのグラフ値にすべてのグラフ ラベルをレンダリングします。 ラベルと値は属性として含まれています。 |
データ バー | グラフと同様、コンテナーの要素内部の要素としてレンダリングされます。 通常、データ バーには値のみが含まれ、階層またはラベルは含まれません。 |
スパークライン | グラフと同様、コンテナーの要素内部の要素としてレンダリングされます。 通常、スパークラインには値のみが含まれ、階層またはラベルは含まれません。 |
ゲージ | コンテナーの要素内部の要素として表示されます。 スケールの最小値/最大値、範囲の開始値/終了値、および属性としてポインターの値を含む単一の要素としてレンダリングします。 |
インジケーター | ゲージと同様、コンテナーの要素内部の要素としてレンダリングされます。 アクティブな状態名、使用可能な状態、およびデータ値を属性として持つ単一の要素としてレンダリングされます。 |
また、XML 表示拡張機能を使用してレンダリングされるレポートには、以下の規則があります。
XML 要素および XML 属性は、レポート定義に出現する順序で表示されます。
ページ割り当ては無視されます。
ページのヘッダーおよびフッターはレンダリングされません。
切り替えても表示できない非表示アイテムはレンダリングされません。 最初に表示されているアイテムと、表示/非表示を切り替えると表示できる非表示アイテムは表示されます。
画像、線、およびカスタム レポート アイテム は無視されます。
データ型
テキスト ボックスの要素または属性には、テキスト ボックスに表示される値に基づいた XSD データ型が割り当てられます。
テキスト ボックスの値 | 割り当てられるデータ型 |
---|---|
Int16、 Int32、 Int64、 UInt16、 UInt32、 UInt64、 Byte、 SByte | xsd:integer |
Decimal (または Decimal と任意の整数かバイト データ型) | xsd:decimal |
Float (または Decimal と任意の整数かバイト データ型) | xsd:float |
Double (または Decimal と任意の整数かバイト データ型) | xsd:double |
DateTime または DateTime Offset | xsd:dateTime |
Time | xsd:string |
Boolean | xsd:boolean |
String、 Char | xsd:string |
その他 | xsd:string |
XML 固有のレンダリング ルール
次のセクションでは、レポート内のアイテムが XML レンダリング拡張機能によってどのように解釈されるかについて説明します。
レポート本文
レポートは、XML ドキュメントのルート要素としてレンダリングされます。 要素の名前は、[プロパティ]ウィンドウで設定された DataElementName
プロパティから取得されます。
レポート要素には、XML 名前空間の定義とスキーマ参照属性も含まれます。 変数は <>
示されています。
<<Report> xmlns="<SchemaName>" xmlns:xsi="<http://www.w3.org/2001/XMLSchema-instance>" xsi:<schemaLocation>="<SchemaNameReportURL>&rc%3aSchema=true" Name="ReportName">
それぞれの変数の値は次のとおりです。
名前 | 値 |
---|---|
レポート | Report.DataElementName |
ReportURL | サーバー上のレポートに対する絶対 URL です。URL エンコードされます。 |
スキーマ名 | Report.SchemaName 。 null の場合は Report.Name です。 Report.Name が使用される場合、値は最初に XmlConvert.EncodeLocalName でエンコードされます。 |
ReportName | レポートの名前です。 |
テキスト ボックス
テキスト ボックスは、DataElementStyle
RDL プロパティに応じて、要素または属性としてレンダリングされます。 要素名または属性名は TextBox.DataElementName
RDL プロパティから取得されます。
グラフ、データ バー、スパークライン
グラフ、データ バー、スパークラインは XML でレンダリングされます。 データは構造化されます。
ゲージとインジケーター
ゲージとインジケーターは XML でレンダリングされます。 データは構造化されます。
サブレポート
サブレポートは要素としてレンダリングされます。 要素名は DataElementName
RDL プロパティから取得されます。 レポートの TextBoxesAsElements
プロパティ設定は、サブレポートのプロパティ設定をオーバーライドします。 名前空間と XSLT 属性は、サブレポート要素に追加されません。
四角形
四角形は要素としてレンダリングされます。 要素名は DataElementName RDL プロパティから取得されます。
カスタム レポート アイテム
CustomReportItems
(CRI) は、表示拡張機能に認識されません。 レポートにカスタム レポート アイテムが存在した場合は、標準的なレポート アイテムとしてレンダリングされます。
イメージ
画像はレンダリングされません。
路線
線はレンダリングされません。
テーブル、マトリックス、リスト
テーブル、マトリックス、および一覧は要素としてレンダリングされます。 要素名は、Tablix の DataElementName
RDL プロパティから取得されます。
行と列
列は行内にレンダリングされます。
Tablix コーナー
コーナーはレンダリングされません。 レンダリングされるのは、コーナーの内容のみです。
Tablix セル
Tablix セルは、要素としてレンダリングされます。 要素名は、セルの DataElementName
RDL プロパティから取得されます。
自動集計
Tablix 自動集計はレンダリングされません。
グループで繰り返されない行と列のアイテム
ラベル、小計、合計など、グループ単位で繰り返し表示されることのないアイテムは、要素としてレンダリングされます。 要素名は、TablixMember.DataElementName
RDL プロパティから取得されます。
非繰り返しアイテムがレンダリングされるかどうかは、TablixMember.DataElementOutput
RDL プロパティによって制御されます。
Tablix メンバーの DataElementName
プロパティが指定されていない場合、非繰り返しアイテムの名前は、次の形式で動的に生成されます。
RowX: 非繰り返し行の場合 (X は、現在の親内の 0 から始まる行インデックス)。
ColumnY: 非繰り返し列の場合 (Y は、現在の親内の 0 から始まる列インデックス)。
非繰り返しヘッダーは、グループ単位で繰り返し表示されることのない行または列の子としてレンダリングされます。
非繰り返しメンバーに対応する Tablix セルがない場合、それはレンダリングされません。 この結果は、Tablix セルが複数の列にまたがる場合に発生すると考えられます。
グループで繰り返される行と列
グループ単位で繰り返し表示される行および列は、Tablix.DataElementOutput
のルールに従ってレンダリングされます。 要素名は DataElementName
プロパティから取得されます。
グループ内の一意の値は、それぞれ、そのグループの子要素としてレンダリングされます。 要素名は Group.DataElementName
プロパティから取得されます。
DataElementOutput
プロパティの値が Output と等しい場合、繰り返しアイテムのヘッダーが、detail 要素の子としてレンダリングされます。
カスタム形式および XSL 変換
XML 表示拡張機能で生成した XML ファイルは、XSL 変換 (XSLT) を使用してほとんどすべての形式に変換できます。 この機能を使用すると、既存の表示拡張機能ではサポートされていない形式でデータを生成できます。 独自の表示拡張機能の作成を試みる前に、XML 表示拡張機能および XSLT を使用することを検討してください。
重複する名前
同じスコープ内に重複するデータ要素名が存在する場合、レンダラーからエラー メッセージが表示されます。
XSLT 変換
XML レンダラーでは、元の XML データに対し、サーバー側で XSLT 変換を適用できます。 XSLT が適用された場合、元の XML データの代わりに、変換済みのコンテンツが出力されます。 変換はクライアント側ではなく、サーバー側で実行されます。
出力結果に適用する XSLT は、レポート定義ファイル内で、レポートの DataTransform
プロパティで定義します。 または、XSLT DeviceInfo パラメーターを使用して指定することもできます。
いずれかの値が設定されている場合、XML レンダラーを使用するたびに変換が実行されます。 サブスクリプションを使用する場合は、RDL DataTransform
プロパティで XSLT を定義する必要があります。
DataTransform
定義プロパティおよびデバイス情報設定の両方で XSLT ファイルを指定した場合は、最初に DataTransform
で指定された XSLT が適用され、続けて、デバイス情報設定による XSLT が適用されます。
デバイス情報設定
デバイス情報設定を変更することによって、このレンダラーの既定の設定の一部を変更することができます。変更できる設定には、次のようなものがあります。
XML に適用する変換 (XSLT)
XML ドキュメントの MIME の種類
データに書式文字列を適用するかどうか
XML 出力をインデントするかどうか
XML スキーマ名を含めるかどうか
XML ドキュメントのエンコーディング。
XML ドキュメントのファイル拡張子
詳しくは、「XML デバイス情報設定」をご覧ください。