前页 | 后页 |
排除软件包查询和脚本
在“文档选项”对话框(模板编辑器)或“选项”选项卡(文档生成器)上,您可以输入自定义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;
};