如何创建一个视图,显示单个项目下所有正式模块中的所有现有属性 DOORS?
How to Create a view that shows all existing attributes DOORS in all formal modules under a single project?
我有一个项目,IBM DOORS 中有 50 多个正式模块,
我想为所有模块创建一个视图(作为默认视图)
当我打开该视图时,该视图应显示该特定模块可用的所有属性。
并且某些模块中的属性数量有所不同。
如果 stack-overflow 中的任何人知道这方面的方法,那将非常有帮助!
首先,您可能应该知道可以加载到视图中的属性数量是有上限的。您可以查看此线程以获取有关最大列的更多信息:
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 参考手册中查找有关设置视图首选项和保存它们的其他信息。
我有一个项目,IBM DOORS 中有 50 多个正式模块,
我想为所有模块创建一个视图(作为默认视图) 当我打开该视图时,该视图应显示该特定模块可用的所有属性。
并且某些模块中的属性数量有所不同。 如果 stack-overflow 中的任何人知道这方面的方法,那将非常有帮助!
首先,您可能应该知道可以加载到视图中的属性数量是有上限的。您可以查看此线程以获取有关最大列的更多信息: 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 参考手册中查找有关设置视图首选项和保存它们的其他信息。