IBM Rational DOORS通过DXL进行二次开发成果

代码记录


Module m //定义模块
Object o //定义对象
Item i   //定义项
int objCount  //定义计数
string itemType  //定义相类型
string modName, fullModName//定义模块名字,模块全名(路径名)
string objectnumber[1000]={null}//定义需求编号
string objectheading[1000]={null}//定义需求标题数组
string objecturl[1000]={null}//定义需求链接数组
string objecttext[1000]={null}//定义需求内容数组
string e //定义对象总数
int k    //用于循环计数
Project p //定义项目变量用于文件名存储项目名称

for i in current Project do //Loops through each undeleted and visible item //循环当前项目
    {
        p = current Project //定义变量等于当前项目
 
        itemType = type i  //项目类型=项的类型
 
        if( itemType == "Formal") //如果项的类型是Formal,DOORS中模块属性为Formal Module
                {
 
                fullModName = fullName(i)//存储为模块的项目的全名
                modName = name(i)//存储模块名
              
             m = read(fullModName,false)//读取路径模块
                objCount=0 //计需求数
                for o in m do { //Loops through each undeleted and visible object //循环模块
                      
                        objectnumber[objCount]=number(o) //存储需求编号
                        objectheading[objCount]= o."Object Heading"//存储需求标题
                        objecturl[objCount]=getURL(o)//存储需求url
                        objecttext[objCount]= o."Object Text"//存储需求内容
                        
                           if(objectheading[objCount]==null)//倘若需求标题为空,存储null
       {
                              objectheading[objCount]="null"
       }
                       
                        if(objecttext[objCount]==null)//倘若需求内容为空,存储null
       {
                              objecttext[objCount]="null"
       }
        
                        objCount++  //数量++
                        e = identifier o  //e为当前需求对象的identifier,对象的identifier与number不同,为1,2和1,1.1的区别。

                        }

                        
                         string savefile ="\\\\WEIXINYUAN\\Users\\wxy\\"name p "&" m."Name" ".xml"//存储到共享目录,此处应注意windows系统下的路径以\\分割,网络路径本身以\\开始,所以前面再加\\
                         Stream out = write (savefile,CP_UTF8) //定义写入文件,为UTF-8格式
                        
                            out<<"<?xml version=""\"""1.0""\""" encoding=\"utf-8\"?>" //写入xml文件的头,注意文法问题
                            out<<"\n"

                            out<<"<all>"  //标签
                            out<<"\n"

                            out<<"<objectcount>"
                            out<<e  //写入需求对象的总数
                            out<<"</objectcount>"
                            out<<"\n"

                            out<<"<modulepath>"
                            out<<fullModName  //写入模块路径
                            out<<"</modulepath>"
                            out<<"\n"
                            for(k=0;k<objCount;k++)  //循环写入数组中的所有需求内容
                            {
                            out<<"<obj ID ="
                            out<<objectnumber[k] //写入需求的ID标签
                            out<<">"
                            out<<"\n"
                           
                            out<<"<objheading>"
                            out<<objectheading[k] //写入需求的标题
                            out<<"</objheading>"
                            out<<"\n"

                            out<<"<objurl>"
                            out<<objecturl[k]   //写入需求的url
                            out<<";"
                            out<<"</objurl>"
                            out<<"\n"

                            out<<"<objtext>"
                            out<<objecttext[k] //写入需求的内容
                            out<<"</objtext>"
                            out<<"\n"

                            out<<"</obj>"
                            out<<"\n"
                            }
                           out<<"</all>"
                           
                close(m) //关闭当前的模块
                }                    

        }

//结束

你可能感兴趣的:(IBM Rational DOORS通过DXL进行二次开发成果)