如何在Lotus应用中匹配多字段列的对应数据对?
Lotus Notes视图中证书与对应编号不匹配的解决办法
问题根源
当前视图的两列分别将10个Certificate字段(cert_1到cert_10)和10个Certificate No.字段(certNo_1到certNo_10)合并为多值列表,视图默认会对两个多值列表做笛卡尔积匹配,导致每个证书和所有证书编号配对,而非一一对应。
解决方法
必须调整列值公式或视图属性,以下是几种可行方案:
方案1:基于多值列表的索引对应(最快捷)
统一列公式顺序
Certificate列公式保持为:cert_1:cert_2:cert_3:cert_4:cert_5:cert_6:cert_7:cert_8:cert_9:cert_10Certificate No.列公式保持为:certNo_1:certNo_2:certNo_3:certNo_4:certNo_5:certNo_6:certNo_7:certNo_8:certNo_9:certNo_10
确保两个列表的字段顺序严格一一对应(cert_1对应certNo_1,以此类推)。
调整视图多值显示设置
打开视图设计界面,切换到「高级」标签,找到「多值选项」区域:- 将「多值分隔方式」设置为每行显示一个多值
- 勾选「同步多值列」(如果有此选项),确保两个列的多值行严格对齐
处理空字段问题
如果存在空字段导致列表长度不一致,在列公式中过滤空值:Certificate列公式改为:@Trim(cert_1:cert_2:cert_3:cert_4:cert_5:cert_6:cert_7:cert_8:cert_9:cert_10)Certificate No.列公式改为:@Trim(certNo_1:certNo_2:certNo_3:certNo_4:certNo_5:certNo_6:certNo_7:certNo_8:certNo_9:certNo_10)
注意要保证过滤后两个列表的非空值位置仍一一对应。
方案2:使用子文档存储每组证书信息(最可靠)
将每组Certificate和Certificate No.存储为独立的子文档,主文档通过文档链接关联这些子文档:
- 创建子文档表单,包含
Certificate和Certificate No.两个字段 - 在主文档中添加操作,用于创建/关联子文档
- 视图基于子文档创建,直接显示子文档的
Certificate和Certificate No.字段,天然实现一一对应
方案3:用列公式索引匹配(备选)
在Certificate No.列公式中,通过当前行的位置匹配对应编号:
@Index(certNo_1:certNo_2:certNo_3:certNo_4:certNo_5:certNo_6:certNo_7:certNo_8:certNo_9:certNo_10; @ThisColumnPosition)
此方法依赖视图的多值计算顺序,仅在方案1无法生效时使用。
内容的提问来源于stack exchange,提问作者hjh93
相关产品推荐
相关产品推荐

