上一页 下一个

排除包查询和脚本

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

用于排除Package的两个参数是:

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

自定义SQL查询

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

     SELECT Package_ID AS ExcludePackage

     FROM t_package

     WHERE Package_ID =#PACKAGEID#

     AND Name ='测试'

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

     SELECT t_package.Package_ID AS ExcludePackage

     FROM t_package,t_object

     WHERE_package.Package_ID =#PACKAGEID#

     AND t_object.Object_ID =#OBJECTID#

     AND t_object.Stereotype ='NoDoc'

自定义脚本

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

     ExcludePackage(#包标识#)

这是脚本返回的XML示例:

     <?xml version =“1.0”?>

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

          <Da​​taset_0>

               <数据>

                    <行>

                         <ExcludePackage>

                         89

                         </ ExcludePackage>

                    </列>

               </数据>

          </ Dataset_0>

          </ EADATA>

这是用于排除包的JScript示例:

     !INC Local Scripts.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'coding ='ISO-8859-1'”);

          xmlDOM.appendChild(节点);

          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;

     };

学到更多