通过内置的 DXL 属性“上次修改时间”对 DOORS 中的对象进行排序仅按日期级别排序。也就是说,排序后不能保证在同一日历日期(但在不同时间)修改的对象的顺序。
这太愚蠢了,特别是因为其他在线资源表明该字段实际上确实有这些信息可用 - 但显然只对显示的信息进行排序,而不是基础数据。
没关系我希望它如何工作,我能做些什么呢?今天,一个模块实际上有数百个更改的对象,但我只对最近一小时内更改的对象感兴趣。
通过内置的 DXL 属性“上次修改时间”对 DOORS 中的对象进行排序仅按日期级别排序。也就是说,排序后不能保证在同一日历日期(但在不同时间)修改的对象的顺序。
这太愚蠢了,特别是因为其他在线资源表明该字段实际上确实有这些信息可用 - 但显然只对显示的信息进行排序,而不是基础数据。
没关系我希望它如何工作,我能做些什么呢?今天,一个模块实际上有数百个更改的对象,但我只对最近一小时内更改的对象感兴趣。
看起来 DOORS 仅将 Last Modified On 存储为日期,没有任何时间。为了检查,我在其中添加了一个布局 DXL 列:
Date dMod
dMod = obj."Last Modified On"
dMod = dateAndTime(dMod)
display dMod ""
作为回报,我收到了以下条目:
09/08/15 00:00:00
我并不为接下来的事情感到骄傲,但它确实起到了作用。我使用以下 DXL 创建了一个名为 Last History Date 的 DXL 属性:
History hr
Date dResult = null
Date dHist = null
Date dLastMod = null
dLastMod = obj."Last Modified On"
dLastMod = dateAndTime(dLastMod)
for hr in obj do {
dHist = hr.date
}
if (null dHist) { dResult = dLastMod }
else if (dLastMod > dHist) { dResult = dLastMod }
else { dResult = dHist }
obj.attrDXLName = dResult
如果没有历史记录,或者历史记录在 Last Modified On 之前,它只使用 Last Modified On 并且您必须处理 00:00:00。历史日期不一定与上次修改日期相同——取决于您是否为各种对象属性打开了“影响更改日期”或“生成历史”功能。这是一种半生不熟的解决方案,但如果你真的想按时间排序,我想不出另一种方法。