レポートへの一般的なタイプのモデル情報の追加

ビジネス・インテリジェンスおよびレポート作成ツール (BIRT) レポートを設計し、EMF および UML モデルにより提供されるあらゆるタイプの情報を取り込むことができます。 モデル要素文書など、レポートに通常含まれている特定のタイプの情報については、特別な手順に従う必要があります。このトピックでは、最も一般的なタイプの情報の追加についての具体的な説明が提供され、ご使用のレポート設計に追加する必要のある、対応する要素を識別します。
始める前に
このタスクについて
一部のレポート設計要素は、カスタム XPath 関数に応じて異なります。XPath 関数のオーサリングとデプロイについて詳しくは、『カスタム XPath 関数の書き込み』のトピックを参照してください。IBM® Rational® 製品に同梱されている、レポートの設計に役立つ追加 XPath 関数のリストについては、『EMF および UML データ・セット用の追加 XPath 関数』のトピックを参照してください。
以下のテーブルには、モデル情報のタイプを BIRT レポートへ追加するための具体的な説明が含まれています。
レポートに含める情報 対応するレポート設計要素
モデル要素の文書
モデル要素の文書をレポート設計に追加するには、以下の列マッピングをデータ・セットに追加します。
  • 名前: documentation
  • 式: getElementsWithStereotype(ownedComment, 'Default::Documentation')[1]/@body
  • タイプ: String
ラベル要素ではなく、この列のダイナミック・テキスト要素を使用します。ダイナミック・テキストを使用する場合、レポートの文書は、モデルの場合と同様にフォーマット設定されます。ラベルを使用する場合、HTML タグは、レポートで生成されます。

関数 getElementsWithStereotype は、 IBM Rational 製品に組み込まれます。

モデルに適用されるプロファイルのリスト

例えば、「レポート・エクスプローラー」ビューからアクセスできる、空の UML モデル・レポート (blankUMLModelReport.rptdesign) の「適用されたプロファイル」データ・セットを参照してください。

要素に適用されるステレオタイプのリスト
以下の特性を持つ UML データ・セットを作成します。
  • パラメーター: element
  • 行マッピング:
    • 式: oclEvaluate(resolveURI($element), "self.getAppliedStereotypes()")
    • タイプ: uml:Stereotype

レポート設計でデータ・セットを使用する場合、パラメーター値をモデル要素の URI に設定します。

パッケージに直接存在するクラスのリスト
以下の特性を持つ UML データ・セットを作成します。
  • パラメーター: package
  • 行マッピング:
    • 式: oclQuery(resolveURI($package)/packagedElement, "self.oclIsKindOf(uml::Class)")
    • タイプ: uml:Class

レポート設計でデータ・セットを使用する場合、パラメーター値をモデルのパッケージの URI に設定します。

クラスに存在する属性、およびそのタイプのリスト

例えば、「レポート・エクスプローラー」ビューからアクセスできる、空の UML モデル・レポート (blankUMLModelReport.rptdesign) の「属性のあるクラス (Classes with Attributes)」データ・セットを参照してください。

クラスに存在する操作、およびその戻りタイプのリスト

例えば、「レポート・エクスプローラー」ビューからアクセスできる、空の UML モデル・レポート (blankUMLModelReport.rptdesign) の「属性のあるクラス (Classes with Attributes)」データ・セットを参照してください。

クラスの操作のリストの組み込みは、クラスの属性のリストの組み込みと同様ですが、属性の代わりに操作を使用します。

操作に存在するパラメーター (「return」を除く)、およびそのタイプのリスト
以下の特性を持つ UML データ・セットを作成します。
  • パラメーター: operation
  • 行マッピング:
    • 式: oclQuery(resolveURI($operation)/ownedParameter, "self.direction <> ParameterDirectionKind::return")
    • タイプ: uml:Parameter
  • 列マッピング: typeNametype/@nameString

レポート設計でデータ・セットを使用する場合、パラメーター値をモデルの操作の URI に設定します。

操作によりスローされる例外のリスト
以下の特性を持つ UML データ・セットを作成します。
  • パラメーター: operation
  • 行マッピング:
    • 式: resolveURI($operation)/raisedException
    • タイプ: uml:Type

レポート設計でデータ・セットを使用する場合、パラメーター値をモデルの操作の URI に設定します。

インターフェースを実装するすべてのクラスのリスト
以下の特性を持つ UML データ・セットを作成します。
  • パラメーター: interface
  • 行マッピング:
    • 式: oclEvaluate(resolveURI($interface), "InterfaceRealization.allInstances()->select(i | i.supplier->includes(self))")
    • タイプ: uml:InterfaceRealization
  • 列マッピング:
    • clientNameclient[1]/@name,String
    • clientURIgetURI(client[1])String

レポート設計でデータ・セットを使用する場合、パラメーター値をモデルのインターフェースの URI に設定します。

クラスにより実装されるすべてのインターフェースのリスト
以下の特性を持つ UML データ・セットを作成します。
  • パラメーター: class
  • 行マッピング:
    • 式: oclEvaluate(resolveURI($class), "InterfaceRealization.allInstances()->select(i | i.client->includes(self))")
    • タイプ: uml:InterfaceRealization
  • 列マッピング:
    • supplierNamesupplier[1]/@nameString
    • supplierURIgetURI(supplier[1])String

レポート設計でデータ・セットを使用する場合、パラメーター値をモデルのクラスの URI に設定します。

あるクラスから継承するすべてのクラスのリスト 例えば、UML モデル・メトリック・レポート (umlModelMetrics.rptdesign) の「サブクラス (Subclasses)」データ・セットを参照してください。
あるクラスの継承元のすべてのクラスのリスト
以下の特性を持つ UML データ・セットを作成します。
  • パラメーター: class
  • 行マッピング:
    • 式: resolveURI($class)/superClass
    • タイプ: uml:Classifier

レポート設計でデータ・セットを使用する場合、パラメーター値をモデルのクラスの URI に設定します。

あるクラスがダイレクト関連を持つすべてのクラスの完全修飾名、およびターゲットの役割名、可視性、多重度のリスト
以下の特性を持つ UML データ・セットを作成します。
  • パラメーター: class
  • 行マッピング:
    • 式: oclQuery(resolveURI($class)/ownedAttribute, "Association.allInstances()->select(a|a.memberEnd->includes(self))->notEmpty()")
    • タイプ: uml:Property
  • 列マッピング:
    • targetRoleName@nameString
    • visibility@visibilityString
    • multiplicityconcat(concat(@lower,".."), @upper)String

レポート設計でデータ・セットを使用する場合、パラメーター値をモデルのクラスの URI に設定します。

アクターに関連付けられたユースケース
以下の特性を持つ UML データ・セットを作成します。
  • パラメーター: actor
  • 行マッピング:
    • 式: oclEvaluate(resolveURI($actor), "Association.allInstances()->select(a|a.endType->includes(self) and a.endType->select(t|t.oclIsKindOf(uml::UseCase))->notEmpty())->collect(a|a.endType->select(t|t <> self))")
    • タイプ: uml:UseCase

レポート設計でデータ・セットを使用する場合、パラメーター値をモデルのアクターの URI に設定します。

ユースケースと関連付けられたアクター
以下の特性を持つ UML データ・セットを作成します。
  • パラメーター: usecase
  • 行マッピング:
    • 式: oclEvaluate(resolveURI($usecase), "Association.allInstances()->select(a|a.endType->includes(self) and a.endType->select(t|t.oclIsKindOf(uml::Actor))->notEmpty()) ->collect(a|a.endType->select(t|t <> self))")
    • タイプ: uml:Actor

レポート設計でデータ・セットを使用する場合、パラメーター値をモデルのユースケースの URI に設定します。

クラス図の場合、図中にあるクラスのリスト
以下の特性を持つ UML データ・セットを作成します。
  • パラメーター: diagram
  • 行マッピング:
    • 式: oclEvaluate(resolveURI($diagram), "self.children->select(c|c.element.oclIsKindOf(uml::Class))->collect(c|c.element)")
    • タイプ: uml:Class

レポート設計でデータ・セットを使用する場合、パラメーター値をモデルの図の URI に設定します。

シーケンス図の場合、ライフラインのオブジェクト名およびタイプのリスト
以下の特性を持つ UML データ・セットを作成します。
  • パラメーター: sequenceDiagram
  • 行マッピング:
    • 式: oclEvaluate(resolveURI($sequenceDiagram), "self.element.oclAsType(uml::Interaction).lifeline->collect(l|l.represents)")
    • タイプ: uml:ConnectableElement
    列マッピング:
    • objectName@nameString
    • typeNametype/@nameString
レポート設計でデータ・セットを使用する場合、パラメーター値をモデルのシーケンス図の URI に設定します。
シーケンス図の場合、各ライフラインについて、該当のライフラインに送信されるメッセージ
以下の特性を持つ UML データ・セットを作成します。
  • パラメーター: lifeline
  • 行マッピング:
    • 式: oclEvaluate(resolveURI($lifeline), "self.coveredBy->select(c|c.oclIsKindOf(uml::MessageOccurrenceSpecification))->select(m|m.oclAsType(uml::MessageOccurrenceSpecification).event->any(true).oclIsKindOf(uml::ReceiveOperationEvent))->collect(m|m.oclAsType(uml::MessageOccurrenceSpecification).message)")
    • タイプ: uml:Message
  • 列マッピング:
    • messageName@nameString
    • signatureNamesignature/@nameString
レポート設計でデータ・セットを使用する場合、パラメーター値をモデルのシーケンス図のライフラインの URI に設定します。
シーケンス図の場合、トップレベル・メッセージのみのリスト

トップレベル・メッセージは、相互作用でゲートから送信されるメッセージです。

以下の特性を持つ UML データ・セットを作成します。
  • パラメーター: sequenceDiagram
  • 行マッピング:
    • 式: oclEvaluate(resolveURI($sequenceDiagram), "self.element.oclAsType(uml::Interaction).formalGate->collect(g|g.message)")
    • タイプ: uml:Message
  • 列マッピング:
    • messageName@nameString
    • signatureNamesignature/@nameString
レポート設計でデータ・セットを使用する場合、パラメーター値をモデルのシーケンス図の URI に設定します。
構造化分類子の場合、ポートのリスト
以下の特性を持つ UML データ・セットを作成します。
  • パラメーター: structuredClassifier
  • 行マッピング:
    • 式: resolveURI($structuredClassifier)/ownedPort
    • タイプ: uml:Port
レポート設計でデータ・セットを使用する場合、パラメーター値をモデルの構造化分類子の URI に設定します。
ポートの場合、提供インターフェースのリスト
以下の特性を持つ UML データ・セットを作成します。
  • パラメーター: port
  • 行マッピング:
    • 式: resolveURI($port)/provided
    • タイプ: uml:Interface
レポート設計でデータ・セットを使用する場合、パラメーター値をモデルのポートの URI に設定します。
ポートの場合、要求インターフェースのリスト
以下の特性を持つ UML データ・セットを作成します。
  • パラメーター: port
  • 行マッピング:
    • 式: resolveURI($port)/required
    • タイプ: uml:Interface
レポート設計で、データ・セットを使用する場合、パラメーター値をモデルのポートの URI に設定します。
アクティビティー図の場合、パーティションのリスト

以下の特性を持つ UML データ・セットを作成します。
  • パラメーター: activityDiagram
  • 行マッピング:
    • 式: resolveURI($activityDiagram)/element/partition
    • タイプ: uml:ActivityPartition
レポート設計でデータ・セットを使用する場合、パラメーター値をモデルのアクティビティー図の URI に設定します。
アクティビティー図の場合、データ・ストアのリスト
以下の特性を持つ UML データ・セットを作成します。
  • パラメーター: activityDiagram
  • 行マッピング:
    • 式: oclEvaluate(resolveURI($activityDiagram), "self.element.oclAsType(uml::Activity).node->select(n|n.oclIsKindOf(uml::DataStoreNode))")
    • タイプ: uml:DataStoreNode
レポート設計でデータ・セットを使用する場合、パラメーター値をモデルのアクティビティー図の URI に設定します。
アクティビティー図の場合、分類子が特定のステレオタイプを持つ中央バッファーのリスト

このシナリオのステレオタイプは、"Business Modeling::BusinessWorker" です。

以下の特性を持つ UML データ・セットを作成します。
  • パラメーター: activityDiagram
  • 行マッピング:
    • 式: oclEvaluate(resolveURI($activityDiagram), "self.element.oclAsType(uml::Activity).node->select(n|n.oclIsKindOf(uml::CentralBufferNode))->select(c|c.oclAsType(uml::CentralBufferNode).type.isStereotypeApplied(c.oclAsType(uml::CentralBufferNode).type.getApplicableStereotype('Business Modeling::BusinessWorker')))")
    • タイプ: uml:CentralBufferNode
レポート設計でデータ・セットを使用する場合、パラメーター値をモデルのアクティビティー図の URI に設定します。
アクティビティー図の場合、オブジェクト・フローのタイプのリスト
以下の特性を持つ UML データ・セットを作成します。
  • パラメーター: activityDiagram
  • 行マッピング:
    • 式: oclEvaluate(resolveURI($activityDiagram), "self.element.oclAsType(uml::Activity).edge->select(e|e.oclIsKindOf(uml::ObjectFlow))")
    • タイプ: uml:ObjectFlow
  • 列マッピング:
    • sourceTypeoclEvaluate(source, "self.oclAsType(uml::ObjectNode).type")/@nameString
    • targetTypeoclEvaluate(target, "self.oclAsType(uml::ObjectNode).type")/@nameString

レポート設計でデータ・セットを使用する場合、パラメーター値をモデルのアクティビティー図の URI に設定します。

状態図の場合、状態名のリスト
以下の特性を持つ UML データ・セットを作成します。
  • パラメーター: statechartDiagram
  • 行マッピング:
    • 式: oclEvaluate(resolveURI($statechartDiagram), "self.element.oclAsType(uml::StateMachine).region->collect(r|r.subvertex)")
    • タイプ: uml:State
レポート設計でデータ・セットを使用する場合、パラメーター値をモデルの状態チャート図の URI に設定します。
状態図の状態の場合、状態への遷移のリスト
以下の特性を持つ UML データ・セットを作成します。
  • パラメーター: state
  • 行マッピング:
    • 式: resolveURI($state)/outgoing/target
    • タイプ: uml:Vertex
レポート設計でデータ・セットを使用する場合、パラメーター値をモデルの状態の URI に設定します。
UML ダイアグラム・イメージ

以下の特性を持つ UML データ・セットを作成します。

  • 行マッピング:
    • 式: //Diagram など。これは、モデルからすべての図をマップします。
    • タイプ: Diagram
  • 列マッピング: 図のイメージの列を定義します。
列マッピング照会は、イメージの作成に以下のメソッドのどれを使用するかにより異なります。
  1. このメソッドは、HTML レポートおよびページ・サイズのみが無制限な他のレポート、またタイルへの分割によりレンダリングできるイメージ用です。

    例: getDiagramHtmlImage(".", $genPath, $tileWidth, $tileHeight)

    この照会で列定義を書き込む場合は、タイプに名前および string を割り当てます。

    生成されたレポートのイメージは、図のオリジナル・サイズおよびフル・レゾリューションを持ちますが、照会で指定されたサイズのタイルに分割されます。関数について詳しくは、 『EMF および UML データ・セット用の追加 XPath 関数』のトピックを参照してください。

    注: データ・セットを定義すると、レポート・レイアウト設計のテーブル・コントロールを作成し、図のデータ・セットにバインドして、ダイナミック・テキスト・コントロールをテーブルの詳細行に挿入することができます。テキスト式 row["image"] を設定します。 イメージが切り取られないように、テキスト・コントロールの幅と高さを親の 100% に設定します。
  2. このメソッドは、すべてのレポート・フォーマット、特に PDF および Microsoft® Word などの定義されたページ・サイズを持つフォーマット、および最大のレゾリューションでレンダリングできるイメージ用です。

    例: getDiagramImage(".", $maxResWidth, $maxResHeight)

    この照会で列定義を書き込む場合は、タイプに名前および blob を割り当てます。

    関数について詳しくは、 『EMF および UML データ・セット用の追加 XPath 関数』のトピックを参照してください。

    データ・セットを定義すると、レポート・レイアウト設計のテーブル・コントロールを作成し、図のデータ・セットにバインドして、イメージ・コントロールをテーブルの詳細行に挿入することができます。イメージを「ダイナミック」に設定し、row["image"] の URI を割り当てます。 イメージが切り取られないように、イメージ・コントロールの幅と高さを親の 100% に設定します。

レポートの設計について詳しくは、「BIRT へのフィールド・ガイド (Field Guide to BIRT)」を参照してください。

次のタスク
注: Eclipse 資料または開発者ガイドへのリンクなどの一部の情報は、製品ヘルプのトピックからのみ参照できます。
関連タスク
カスタム XPath 関数の書き込み
関連資料
EMF および UML データ・セット用の追加 XPath 関数
関連情報
IBM Rational Technote: Frequently asked questions about authoring Model Reports using BIRT
BIRT へのフィールド・ガイド (Field Guide to BIRT)

フィードバック