前页 后页

排除软件包查询和脚本

在“文档选项”对话框(模板编辑器)或“选项”选项卡(文档生成器)上,您可以输入自定义SQL查询或选择自定义脚本以特定方式定制报告。一种可能性是从报告中排除选定的软件包或子软件包。您可以基于此处提供的示例来查询或编写脚本。

在排除包中使用的两个参数是:

  • #PACKAGEID#-在排除条件下正在处理的t_package中当前记录的Package_ID
  • #OBJECTID#-在排除条件下正在处理t_object中当前Package元素记录的Object_ID

自定义SQL查询

要使用“自定义SQL查询”从报表中排除“程序包”,可以基于t_package列创建查询。例如:

SELECT Package_ID AS ExcludePackage

来自t_package

其中Package_ID =#PACKAGEID#

AND名称=“测试”

或者,您可以基于t_object表中的Package对象列创建查询:

选择t_package.Package_ID AS ExcludePackage

从t_package,t_object

在哪里t_package.Package_ID =#PACKAGEID#

AND t_object.Object_ID =#OBJECTID#

AND t_object.Stereotype ='NoDoc'

自定义脚本

如果您选择了“自定义脚本”选项,并且想从报告中排除“包”,则可以创建一个脚本并输入对其的调用,例如:

ExcludePackage(#PACKAGEID#)

这是脚本返回的XML的示例:

<?xml version =“ 1.0”?>

<EADATA version =“ 1.0” exporter =“ Enterprise Architect ”>

<数据集_0>

<数据>

<行>

<排除包装>

89

</ ExcludePackage>

</ Row>

</ Data>

</ Dataset_0>

</ EADATA>

这是JScript排除包的示例:

!INC本地脚本.EAConstants-JScript

/ *

*脚本名称:RTF排除软件包脚本示例

* /

函数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;

包= Repository.GetPackageByID(packageID)

if(package.StereotypeEx ==“ NoDoc”)

{

var xmlName = xmlDOM.createElement(“ ExcludePackage”);

xmlName.text =“” + package.PackageID;

xmlRow.appendChild(xmlName);

}

返回xmlDOM.xml;

};

学到更多