求助:通过DOORS Layout DXL显示模块基线中的对象文本
实现DOORS Layout DXL:特定基线与当前对象文本并排对比
以下是直接可用的Layout DXL代码,实现当前对象文本和指定基线版本文本的并排显示,还包含差异高亮功能:
// 替换为你需要对比的基线名称 string targetBaseline = "V1.0 发布基线" // 获取当前模块的目标基线 Baseline targetBL = baseline(targetBaseline, module(current)) if (null targetBL) { print "错误:模块中未找到基线 '" targetBaseline "'\n" stop } // 获取当前对象在基线中的版本 ObjectVersion baselineObjVer = objectVersion(current, targetBL) // 定义并排布局列 column("当前文本", width: 45) { display richText(current."Object Text") } column(targetBaseline + " 文本", width: 45) { if (null baselineObjVer) { display "该对象在基线中不存在" } else { display richText(baselineObjVer."Object Text") } } // 高亮文本差异行 if (!null baselineObjVer) { string currTxt = plainText(current."Object Text") string baseTxt = plainText(baselineObjVer."Object Text") if (currTxt != baseTxt) { set background color to yellow } }
使用说明
- 配置基线:将代码第一行的
targetBaseline值替换为你的目标基线名称,也可以用基线ID(比如baseline(1001, module(current)),ID可通过基线属性查看) - 加载基线:确保当前模块已经加载了目标基线(DOORS菜单 -> 基线 -> 加载基线)
- 应用布局:将代码粘贴到Layout DXL编辑器,保存后应用到模块视图
关键细节
- 支持富文本格式保留:包括字体样式、颜色、列表等格式都会在两个列中正确显示
- 边界处理:如果当前对象是基线创建后新增的,会在基线列显示提示文本
- 性能优化:在大模块中使用时,可提前缓存基线对象,避免重复查询
内容的提问来源于stack exchange,提问作者Bob Loblaw
相关产品推荐
相关产品推荐

