门版本:9.5.2.1
我会尽量简单地分解它。首先,我将从数据开始。假设我在 DOORS 中有一个模块Module。模块包括:
树形结构
假设标题和子标题的对象文本为空白,并假设其余3 级对象的对象文本与对象本身的名称相同。例如,Object_1.1.0-1的对象标题为空白,但其对象文本为“ Object_1.1.0-1 ”。
- Module
- 1 Heading1 // Object Heading: "Heading1" ; Object Number: 1
| - 1.1 Sub-Heading1.1 // Object Heading: "Sub-Heading1.1" ; Object Number: 1.1
| | + Object_1.1.0-1 // Object Heading: "" ; Object Number: 1.1.0-1
| | + Object_1.1.0-2 // Object Heading: "" ; Object Number: 1.1.0-2
| | | .
| | | .
| | | .
| | + Object_1.1.0-A // Object Heading: "" ; Object Number: 1.1.0-A
| |
| - 1.2 Sub-Heading1.2 // Object Heading: "Sub-Heading1.2" ; Object Number: 1.2
| + Object_1.2.0-1 // Object Heading: "" ; Object Number: 1.2.0-1
| + Object_1.2.0-2 // Object Heading: "" ; Object Number: 1.2.0-2
| | .
| | .
| | .
| + Object_1.2.0-B // Object Heading: "" ; Object Number: 1.2.0-B
|
- 2 Heading2 // Object Heading: "Heading2" ; Object Number: 2
- 2.1 Sub-Heading2.1 // Object Heading: "Sub-Heading2.1" ; Object Number: 2.1
| + Object_2.1.0-1 // Object Heading: "" ; Object Number: 2.1.0-1
| + Object_2.1.0-2 // Object Heading: "" ; Object Number: 2.1.0-2
| | .
| | .
| | .
| + Object_2.1.0-C // Object Heading: "" ; Object Number: 2.1.0-C
|
- 2.2 Sub-Heading2.1 // Object Heading: "Sub-Heading2.1" ; Object Number 2.2
+ Object_2.2.0-1 // Object Heading: "" ; Object Number: 2.2.0-1
+ Object_2.2.0-2 // Object Heading: "" ; Object Number: 2.2.0-2
| .
| .
| .
+ Object_2.2.0-D // Object Heading: "" ; Object Number: 2.2.0-D
And so on and so forth . . .
属性
*Object Heading and Text*, Version, Data
对象标题和文本似乎是门的东西,所以我不会在这里解释。这里的数据是通用的(实际上,代表不止一个属性)。有些数据适用于某些版本,有些数据适用于其他版本。不同版本的数据可能会交叉,而其他版本的某些数据是互斥的。版本是一个单独的字符串,它用新行“ \n ”分隔不同的版本。所以,让我们假设版本是:
v1\nv2\nv3 . . . v\nvX
或者,以更易读的格式:
v1
v2
v3
.
.
.
vX
更重要的是,一个对象的版本可能是(为了便于阅读,这里用逗号分隔)v1、v2、v3、. . ., vX而另一个可能是v1, v3而另一个可能只是v2。任何可用版本的组合,真的。
问题
在我看来,我正在尝试做的事情应该很容易。不费吹灰之力。举个例子,假设我想应用一个过滤器,我只查看Sub-Heading1.2及其子项,并且只查看Version v3。我在这个主题上尝试了很多变体,但我似乎只能完成其中一个。我成功地隔离了单个部分或单个版本的数据,但我无法同时获得两者。当我为单个部分应用过滤器时,说Sub-Heading1.2及其子项,然后将其与“包含 v3”;我会得到那个部分,但它拒绝只显示v3的那个部分。
在任何编程语言中,a 和 b 和 c 的计算结果为真 IF AND ONLY IF a 和 b 和 c。在我看来,我在 DOORS 中看到的更像(a and b) 或 c。
使用如上所述的 DOORS 数据库,如何仅查看给定版本的给定范围内的对象(或对象及其后代)?我知道 DXL 作为一种潜在的解决方案存在,但 GUI 解决方案更可取。