<< 目次を表示 >> ページ位置: ドキュメントの生成 > DOCX/PDF/RTFドキュメント > ドキュメントの生成手順 > オプション > クエリで選択されるパッケージを対象外にする |
ドキュメントの生成時やテンプレートのオプションでは、独自のSQLクエリを指定したり、独自のスクリプトを指定したりできます。この仕組みを利用して、選択したパッケージやその子パッケージの一部を、条件を指定してドキュメントの生成対象外にできます。このページでは、その具体的な方法をお知らせします。
このような場合に利用できるパラメータとして、次の2つがあります。
独自のSQLクエリ
例えば、以下のようなSQLクエリを指定することで、一部のパッケージを対象外に指定できます。以下のように、対象外にするIDをExcludePackageとして渡します。
SELECT Package_ID AS ExcludePackage FROM t_package
WHERE Package_ID = #PACKAGEID# and Name = 'Test'
あるいは、以下のように指定できます。この例は、要素のステレオタイプで判断しています。
SELECT t_package.Package_ID AS ExcludePackage
FROM t_package,t_object
WHERE t_package.Package_ID = #PACKAGEID#
AND t_object.Object_ID =#OBJECTID#
AND t_object.Stereotype = 'NoDoc'
独自のスクリプト
スクリプトで指定する場合には、以下の定義のメソッド(関数)を定義し、その中で決まった形のXMLを返す必要があります。
ExcludePackage(#PACKAGEID#)
戻されるXMLの例は以下の通りです。
<?xml version="1.0"?>
<EADATA version="1.0" exporter="Enterprise Architect">
<Dataset_0>
<Data>
<Row>
<ExcludePackage>
89
</ExcludePackage>
</Row>
</Data>
</Dataset_0>
</EADATA>
以下の内容は、該当の内容を返すスクリプトの例です
!INC Local Scripts.EAConstants-JScript
/*
* Script Name: RTF Exclude Packages Script Sample
*/
function ExcludePackage(packageID)
{
var xmlDOM = new ActiveXObject("MSXML2.DOMDocument.4.0");
xmlDOM.validateOnParse = false;
xmlDOM.async = false;
var node = xmlDOM.createProcessingInstruction("xml", "version='1.0'
encoding='ISO-8859-1'");
xmlDOM.appendChild(node);
var xmlRoot = xmlDOM.createElement("EADATA");
xmlDOM.appendChild(xmlRoot);
var xmlDataSet = xmlDOM.createElement("Dataset_0");
xmlRoot.appendChild(xmlDataSet);
var xmlData = xmlDOM.createElement("Data");
xmlDataSet.appendChild(xmlData);
var xmlRow = xmlDOM.createElement("Row");
xmlData.appendChild(xmlRow);
var package as EA.Package;
package = Repository.GetPackageByID(packageID)
if(package.StereotypeEx == "NoDoc")
{
var xmlName = xmlDOM.createElement("ExcludePackage");
xmlName.text = "" + package.PackageID;
xmlRow.appendChild(xmlName);
}
return xmlDOM.xml;
};
参照: