当前位置: 首页 > news >正文

一种替代DOORS在WORD中进行需求管理的方法 (二)

一、前景

参考:

一种替代DOORS在WORD中进行需求管理的方法(基于WORD插件的应用)_doors aspice-CSDN博客

二、界面和资源

WORD2013/WORD2016 插件 【已使用该工具通过第三方功能安全产品认证】:

1、 核心功能

1、需求编号和跟踪矩阵

2、插件支持跟踪的结果统计

注:加密工具会自动将保存为CSV扩展名的文件主动加密,插件只生成CSV格式,但用tscv扩展名;使用者在导入Tessy之前,必须将扩展名手动改为CSV

3、WORD文件配置标记方式

      

4、下载资源链接

WORD2013/WORD2016 插件安装包:

【免费】WORD2013/2016,需求管理插件,安装包,VS2017VSTO工程,C#开发源码参见:https://download.csdn.net/download/xianghuaizi/905资源-CSDN文库

Python自动化处理源码:

【免费】ReqIDHelperWord16需求管理插件自动化工具,源码,python开发资源-CSDN文库

 WORD2013/WORD2016 插件源码:

WORD2013/2016,需求管理插件,源码,VS2017VSTO工程,C#开发资源-CSDN文库

三、扩展使用

1 、COM接口

        System.Collections.ArrayList CreateReqIDTableCollection(Word.Document targetDoc);
        string GetReqPropertyValue(string reqID, string name);
        string GetReqMainText(string reqID);
        void SetSlientMode(bool slient);
        void CreateSpecDocListCrossLink(Word._Document[] docs, bool[] appends);
        void ImportExcelLinkList(string targetDocName, string srcExcelName, string[] reqIDs, string[] cellAddrs);
        int CreateExcelReqLink(string targetDocName, string reqProperty, bool append, string srcExcelName, string[] reqIDs, string[] traceIDs, string[] cellAddrs);
        void CreateWordReqLink(Word.Document targetDoc, Word.Document srcDoc, string property, bool append);
        void CreateWordSelfLink(Word.Document targetDoc);
        string[] ExportFileVersionInformation(Word.Document doc);
        void ClearReqPropertyValue(Word.Document targetDoc, string reqProperty);
        void AddTraceInformation(Word.Document targetDoc, string inf);
        void ExportReqWithoutPropertyTable(string outPath, Word.Document targetDoc);
        string GetVerInformation();

2、Python使用示例

1、加载com组件

import win32com

def LoadOfficeAddon() :
    WordAddInComObject = None
    Word = win32com.client.Dispatch('Word.Application')
    docAddin = Word.COMAddIns("ReqIDHelperWord16") # Load VSTO add-on
    Word.Visible = 0

    if docAddin != None :
        print("Load ReqIDHelperWord16 Add-In program OK")
        WordAddInComObject = docAddin.Object
        if WordAddInComObject != None :
            print("Load ReqIDHelperWord16 Add-In COM Object Sucessful!")
            print(WordAddInComObject.GetVerInformation())

        return [Word, WordAddInComObject]

2、接口调用 

def ReBuildTrace(Word, WordAddInComObject, targetDoclist) :
    docHandles = []
    appends = []
    wordNum = 0
    if len(targetDoclist) > 1:
        print("#" * 80)
        for doc in targetDoclist:
            print("ReBuildTrace: " + str(doc))

        for targetdoc in targetDoclist:
            # Check the document type: word or another
            if (IsWordDocument(targetdoc)) :
                wordNum = wordNum + 1
                doc = Word.Documents.Open(targetdoc)
                Word.Visible = 0
                # Clear requirement property
                WordAddInComObject.ClearReqPropertyValue(doc, "Link By") # call com interface
                WordAddInComObject.ClearReqPropertyValue(doc, "Test By")
                docHandles.append(doc)
                appendFlag = AppendMode #
                appends.append(appendFlag)
                Word.Documents.Save()

    elif len(targetDoclist) == 1:
        for targetdoc in targetDoclist:
            # Check the document type: word or another
            if (IsWordDocument(targetdoc)) :
                wordNum = wordNum + 1
                doc = Word.Documents.Open(targetdoc)
                Word.Visible = 0
                # Clear requirement property
                WordAddInComObject.ClearReqPropertyValue(doc, "Test By")
                docHandles.append(doc)
                appendFlag = AppendMode #
                appends.append(appendFlag)
                Word.Documents.Save()

     # There are only one word document, don't need to rebuild
    if (wordNum > 1):
        WordAddInComObject.SetSlientMode(True)
        WordAddInComObject.CreateSpecDocListCrossLink(docHandles, appends)

3、自动化生成报告

借助插件和python丰富的库可以生成以下报告(统计报告和详细报告)

统计报告示例

详细报告示例

四、总结

通过该工具能够替代专业工具,但额外维护的花费时间较多。如果经费允许,还是使用专业工具,例如DROME。

 

 

http://www.dtcms.com/a/122228.html

相关文章:

  • Vue:路由切换表格塌陷
  • SpringBoot 整合 MCP
  • 树莓派非桌面版无法ssh或vnc远程连接问题解决办法
  • 通过HTTP协议实现Git免密操作的解决方案
  • telophoto源码查看记录 三
  • 【回眸】Linux 内核 (十五) 之 多线程编程 上
  • 4月9日笔记
  • 2021-10-26 C++繁忙通信兵
  • Java 设计模式:原型模式详解
  • 使用雪花算法生成分布式唯一ID
  • Android 回答视频边播放边下载的问题
  • GMSL Strapping Pins CFG0/CFG1 应用
  • 【力扣刷题实战】外观数列
  • ragflow开启https访问:浏览器将自签证书添加到受信任的根证书颁发机构 ,当证书过期,还需要添加吗?
  • 第一部分——Docker篇 第六章 容器监控
  • vulnhub:sunset decoy
  • 洛谷普及B3691 [语言月赛202212] 狠狠地切割(Easy Version)
  • 优化 Web 性能:移除未使用的 CSS 规则(Unused CSS Rules)
  • The packaging for this project did not assign a file to the build artifact
  • 02.使用cline(VSCode插件)、continue(IDEA插件)、cherry-studio玩转MCP
  • Android里面开子线程的方法
  • OpenHarmony子系统开发 - 调测工具(二)
  • 柑橘病虫害图像分类数据集OrangeFruitDataset-8600
  • Python: 实现数据可视化分析系统
  • Coze平台 发布AI测试Agent的完整实现方案
  • redis_exporter服务安装并启动
  • STL-list链表
  • mac 苍穹外卖 后端初始 SkyApplication 报错
  • HTTP:一.概述
  • 【Leetcode-Hot100】移动零