ibm-doors - 如何创建一个视图来显示单个项目下所有正式模块中的所有现有属性 DOORS?
问题描述
我有一个项目,在 IBM DOORS 中有 50 多个正式模块,
我想为所有模块创建一个视图(作为默认视图)当我打开它时,这个视图应该显示该特定模块可用的所有属性。
并且某些模块中的属性数量会有所不同。如果堆栈溢出中的任何人知道这方面的方法,那将非常有帮助!
解决方案
在任何事情之前,您可能应该知道可以加载到视图中的属性的最大数量。您可以查看此线程以获取有关最大列的更多信息: https ://www.ibm.com/developerworks/community/forums/html/topic?id=1861480b-7aa0-43b2-bf77-be677f5f778e
现在至于如何做到这一点。如果您正在寻找使用 DXL 的自动化解决方案,这里有一些示例代码,您可以根据自己的目的进行修改。当前代码会将不是系统属性的对象级属性添加到运行此代码的模块的当前视图中。
AttrDef ad
Module m = current Module
string sAttrName
int count = 0
Column col
for col in m do {count++}
for ad in m do
{
if ((ad.object) && (!ad.system))
{
sAttrName = ad.name
col = insert (column count)
attribute(col, sAttrName)
width(col, 200)
count++
}
}
注意:此代码只会生成一个包含运行它的模块中所有属性的视图,它不会循环遍历项目中的所有模块或保存视图。
要遍历项目并获取所有模块,您需要使用 for 创建递归函数itemRef in folder do {...}
。类似于以下内容:
Folder f = current Folder
void recurseFolder(Folder f)
{
Item iRef
for iRef in f do
{
if (type(iRef) == "Formal")
(call your create views function here with parameter iRef)
else if (type(iRef) == "Folder" || type(iRef) == "Project")
recurseFolder(folder(iRef))
}
}
recurseFolder(f)
然后,如果您需要额外的代码来保存视图,您还必须使用save(View v)
. 您可以在 DXL 参考手册中查找有关设置视图首选项并将其保存的其他信息。
推荐阅读
- c# - c# Converting part of form into a child
- javascript - 比较十六进制字符串
- node.js - 如何解决节点 js 中的以下要求?
- excel - Finding header/title of nearest number from a row
- flutter - 如何在颤动中改变动画方向
- python - 在没有 Django 的情况下从另一台服务器更新 Django-model-instance/database-table 的最佳方法
- html - 隐藏 URL 栏时 IOS Safari 中的不可点击区域
- kubernetes - 如何安装 Argo CLI?
- nlp - NLP 中各种情感分析技术的不同底层逻辑是什么?
- android - Android 使用工具:showIn 和 NavHostFragment