Lotus嵌入式视图能否实现字段过滤?类似SQL WHERE子句,适配采购单需求
实现Lotus嵌入式视图过滤特定ReceiptID的采购单明细
以下是几种可行的实现方法,按需选择:
视图选择公式关联过滤
打开产品明细视图的设计界面,修改视图的选择公式,加入与当前采购单ReceiptID的关联条件:SELECT Form = "产品明细表单" & ReceiptID = @GetDocField(@DocumentUniqueID; "ReceiptID")说明:
@GetDocField(@DocumentUniqueID; "ReceiptID")会获取当前打开的采购单文档中的ReceiptID值,视图仅显示与之匹配的产品明细文档。嵌入式视图属性直接设置查询
在采购单表单中选中嵌入式视图,打开属性面板的「查询」标签页,在「查询字符串」中输入公式:"ReceiptID = " + @Text(@GetDocField(@DocumentUniqueID; "ReceiptID"))这种方式不需要修改视图本身的选择公式,仅对当前表单中的嵌入式视图生效。
LotusScript动态控制视图过滤
如果需要更灵活的逻辑(比如加载时动态判断),可以在采购单表单的PostOpen事件中添加脚本:Dim ws As New NotesUIWorkspace Dim uidoc As NotesUIDocument Dim doc As NotesDocument Dim embedView As NotesUIView Set uidoc = ws.CurrentDocument Set doc = uidoc.Document Set embedView = uidoc.GetEmbeddedView("嵌入式视图的名称") ' 设置视图过滤条件,仅显示当前ReceiptID的明细 Call embedView.SetViewFormula("SELECT ReceiptID = """ + doc.ReceiptID(0) + """")
注意事项:
- 确保产品明细文档中的
ReceiptID字段与采购单文档的字段名称、数据类型完全一致(建议用文本类型)。 - 测试时需打开具体的采购单文档,验证嵌入式视图是否仅加载对应ReceiptID的明细内容。
内容的提问来源于stack exchange,提问作者user22705210
相关产品推荐
相关产品推荐

