<< 目次を表示 >> ページ位置: ドキュメントの生成 > DOCX/PDF/RTFドキュメント > ドキュメントのテンプレート > テンプレート部品 > テンプレート部品の定義 > カスタムSQL |
独自に定義したSQL文の内容を元にドキュメントとして出力する内容を定義する場合には、「カスタムSQL」形式でテンプレート部品を定義し、SQLのクエリを定義します。そのクエリで戻される内容を、テンプレートエディタの「カスタム」セクションで利用できます。なお、定義するクエリはDBMSリポジトリの種類によって変わりますので、その点を考慮する必要があります。
カスタムSQLのテンプレート部品を定義する
# |
操作方法 |
1 |
テンプレート部品をテンプレートエディタで開きます。 (参考:テンプレート部品の定義) |
2 |
ツールバーのボタンからテンプレートのオプションダイアログを開きます。 |
3 |
カスタムクエリのタブを選択します。 |
4 |
テンプレート部品の種類の選択肢で、「カスタムSQL」を選択します。 |
5 |
テンプレート部品の種類の選択肢の下にある入力欄に、独自に定義するSQLを入力します。このSQLでは、1つ以上の結果を戻す必要があります。以下はその一例です。
SELECT DocName AS TemplateName, Author AS TemplateLocation FROM t_document WHERE DocType = 'SSDOCSTYLE' and (IsActive = 1)
なお、ドキュメント処理の対象になっているパッケージやダイアグラム・要素のIDを渡すこともできます。この場合には、#PACKAGEID#・#DIAGRAMID#あるいは#OBJECTID#のマクロを利用して下さい。以下はその例です。
SELECT Count(Object_Type) AS CountOfActors FROM t_object WHERE Object_Type = "Actor" and Package_ID = #PACKAGEID#
また、生成されるドキュメントでリンクとして認識されるような内容を出力できます。この場合には、列名の末尾に'Hyperlink'の文字を含む必要があります。
JET(EAPX/EAP)ファイルの場合には、 {Elements-Hyperlink} のように指定します。他のDBMSの場合には、 {Elements.Hyperlink} のように指定します。
この場合の列の値は以下のような形式でなければなりません。
{guid}LABEL
この形式で、 {guid} は要素のGUIDです。LABELはリンクが設定される文字列で、要素名などを指定します。以下はこの一例です。
{123-456-7890}Class2
この場合には、生成されるドキュメントには 'Class2' の文字列が表示され、リンクが設定されます。このリンクをクリックすると、このClass2の要素の説明部分に移動します。
次の例は、要素の親クラスについて、リンクが設定された内容を戻す例です。
SELECT t_object.ea_guid CONCAT t_object.Name AS [BaseClassName-Hyperlink] FROM t_object, t_connector WHERE t_connector.Start_Object_ID = #OBJECTID# AND t_object.Object_ID = t_connector.End_Object_ID AND t_connector.Connector_Type = 'Generalization'
JET(EAPX/EAP)のプロジェクトファイルの場合には、 CONCAT を &.に置換して下さい。以下のように記述する必要があるDBMSもあります。
CONCAT (t_object.ea_guid,t_object.Name))
このクエリは複数の項目を返すこともできます。複数の項目を返す場合には、カンマ区切りでリンクを作成します。リンク先としては、要素・属性・操作・ダイアグラム・パッケージのいずれかが可能です。
同様の方法で、強制的に書式も含めて出力したい場合には、以下のように設定します。
カスタム > {Name} <fieldname>-Formatted : JET(EAP)ファイルの場合 <fieldname>.Formatted : その他のDBMSの場合 < カスタム
カスタムSQLの文では、上記の指定に適合するように別名を指定する必要があります。以下は、MySQLでの例です。
SELECT ea_guid AS CLASSGUID, Object_Type AS CLASSTYPE, Name, Note as "Note.Formatted" FROM t_object Where Object_ID=#OBJECTID# |
6 |
OKボタンを押し、ダイアログを閉じます。 |
7 |
テンプレート内に「カスタム」セクションを追加します。 |
8 |
カスタムセクション内で右クリックして、「カスタムフィールドの挿入」 を選択します。 (参照:出力する内容の指定) |
9 |
SQLで返される内容に含まれる名前を指定します。 指定したらOKボタンを押します。 |
10 |
必要に応じて、カスタムフィールドの追加を繰り返します。 (参照:テンプレート部品の利用) |
11 |
変更内容を保存します。 |
注意: |
|
参照: