You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

DXL创建DOORS模块列时如何仅让单元格显示当前对象的前缀加ForeignID

问题根因

你遇到的单元格显示全量对象内容的异常,核心是混淆了全局DXL脚本和自定义DXL列脚本的执行逻辑:
自定义DXL列的运行机制为DOORS系统逐行(逐对象)触发列计算,每个单元格计算时,系统会自动传入当前行对应的对象上下文,不需要你手动编写for o in m的全模块遍历逻辑。你写的循环会导致每计算一个单元格时,都把模块内所有对象的ForeignID值通过displayRich依次追加渲染到当前单元格,最终每个格子都积累了全模块的内容列表。

具体调整点
  • 删除整套手动遍历模块的全局代码:包括Module m = current、Object o、for o in m do的循环结构,这些代码是独立批量脚本的写法,不适用列计算场景
  • 直接使用列计算上下文内置的当前对象变量obj(全小写,由系统自动注入,无需手动声明)读取ForeignID属性值
  • 增加空值容错判断,避免部分对象未配置ForeignID时脚本报错中断
可直接使用的修正后列代码
// 直接获取当前行对象的ForeignID值
string currentForeignId = obj."ForeignID"

// 空值判断,即使无ForeignID也保留固定前缀
if (!nullExists(currentForeignId)) {
    displayRich("Prefix " currentForeignId)
} else {
    displayRich("Prefix ")
}
新手注意事项
  • 只有独立运行、需要批量遍历模块对象的全局DXL脚本,才需要手动编写for o in 目标模块的循环逻辑
  • 列代码的所有取数、格式调整操作,都只针对当前行的对象完成,不要在列代码里写跨对象、跨模块的遍历逻辑
  • 保存列定义后,右键点击列头选择「重新计算列」,即可看到逐行匹配的正确显示效果

内容的提问来源于stack exchange,提问作者DreamOfMugen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.24 16:45:00