当使用合并字段时,您可以在多选对象引用字段的令牌中包含一个 WHERE
子句或一个 ORDER BY
子句,以允许 Vault 对多个数据值进行筛选。WHERE
和 ORDER BY
子句支持 VQL 类表达式。请在开发人员门户中了解有关如何创建 VQL 表达式的更多信息。
警告:在 Microsoft Excel 中使用合并字段时不支持筛选。
令牌语法
要使用记录筛选或排序功能,请使用多选对象引用字段令牌,并在末尾附加 WHERE
和/或 ORDER BY
这两种 VQL 类表达式,表达式之间使用分号分隔。令牌遵循如下模式:
WHERE 令牌
${vault:relationshipname__vr.relationshipname__vr.fieldname__v;WHERE VQL_Expression}
例如,
${vault:document_quality_event__cr.findings__cr.name__v;WHERE findings__cr.criticality__c = ‘Major’}
将在严重性值为重大
时,返回与质量事件相关并经过筛选的结果的列表。
使用 WHERE
子句,Vault 可以筛选来自文档字段中指定的根对象(即您的令牌中列出的第一个对象)的一个或多个相关对象。您可以创建具有最多五 (5) 个关系的令牌。WHERE
子句的所有部分都应引用一个对象。在上述示例中,质量事件是根对象,结果是相关对象。
ORDER BY 令牌
(可选)您可以使用 ORDER BY
子句,通过 VQL 运算符 ASC 或 DESC 对令牌返回的值进行排序。在此子句之后,使用 ASC
按升序顺序排序,使用 DESC
按降序顺序排序。如果不在子句之后使用 ASC
或 DESC
运算符,默认将按升序排序。请注意,您只能按令牌中返回的数据排序,或者按表格内返回的数据字段排序。
您也可以在多选对象引用字段的令牌中包含一个 ORDER BY
子句,以允许 Vault 对所显示的字段进行排序。
例如,
${vault:document_quality_event__cr.lead_auditors__cr.name__v;ORDER BY lead_auditors.name__v ASC}
将返回与质量事件相关并按名称的升序字母顺序排序的主要审计员的列表。
限制
以下限制会影响合并字段的 WHERE
子句:
- 您无法对根对象进行筛选。
- 您只能对具有出站关系的对象进行筛选。
请注意,当与 WHERE
子句结合使用时,ORDER BY
子句会受到同样的限制。
记录筛选
使用 WHERE
子句,Vault 可以对多个数据值进行筛选。WHERE
子句可以支持多个条件,例如对状态为当前、签名类型为最终批准的签名进行筛选。
您可以在 WHERE
子句中使用以下标准 VQL 运算符:
=
!=
<
>
<=
>=
AND
OR
CONTAINS
BETWEEN {} AND {}
LIKE {}
请注意,对于合并字段子句,Vault 不支持 IN
运算符。
注意:当 WHERE
子句令牌中的一个查询使用 YES/NO
值而不是 true/false
时,Vault 将返回相反的结果。
对富文本进行筛选和排序
当在 Microsoft Word™ 文件中合并富文本字段时,您需要正确使用富文本令牌语法,以确保使用富文本格式设置解析和显示令牌。
要使用记录筛选功能,令牌应遵循如下模式:
${vault:relationshipname__vr.relatedobject__vr.rich_text_fieldname__v;WHERE relatedobject__vr.fieldname__v = ‘Value’;richtext}
要使用记录排序功能,令牌应遵循如下模式:
${vault:relationshipname__vr.relatedobject__vr.rich_text_fieldname__v;ORDER BY relatedobject__vr.fieldname__v;richtext}
Vault 会将非富文本字段中的任何富文本令牌语法解析为纯文本。
对表格进行筛选和排序
Vault 支持在表格内使用具有 WHERE
和 ORDER BY
子句的令牌:
结果 | 严重性 | 类别 | 子类别 |
${vault:document_quality_event__cr.findings__crname__v;WHERE findings__cr.criticality__c = ‘Major’ ORDER BY findings__cr.criticality__c DESC} | ${vault:document_quality_event__cr.findings__cr.criticality__c} | ${vault:document_quality_event__cr.findings__cr.finding_category__c} | ${vault:document_quality_event__cr.findings__cr.finding_subcategory__c} |
如果表格具有一行令牌,这些令牌包含两个不相关的多值对象引用字段或不同的 WHERE
子句,Vault 会将第一个字段作为行来填充,但将后续字段作为列表来填充。
合并字段还支持在最多三级的嵌套表格内使用 WHERE
和 ORDER BY
令牌:
名称 | 状态 | 国家/地区 | |
${vault:document_product__vr.name__v; ORDER BY product_vr.status__v DESC} | ${vault:document_product__vr.status__v} | ${vault:document_country__vr.abbreviation__vs; ORDER BY country__vr.abbreviation__vs} | ${vault:document_country__vr.name__v} |
名称 | 状态 | 国家/地区 | |
WonderDrug | 活动 | US | 美国 |
Nyaxa | 活动 | CA | 加拿大 |
US | 美国 | ||
Cholecap | 活动 | AU | 澳大利亚 |
CA | 加拿大 | ||
US | 美国 |
多列表格排序
Vault 还支持在最多具有三 (3) 列的表格中对多列进行排序。要使用多列进行排序,请使用 ORDER BY 和/或 WHERE 子句,为表格的第一列添加一个令牌。此子句支持按最多三 (3) 个字段对 VQL 声明进行排序。Vault 根据令牌中为字段指定的顺序对字段进行排序。
要对一个表格中的多列进行排序,令牌应当类似以下格式:
${vault:document_relationshipname__vr.objectname__vr.fieldname__v;ORDER BY objectname__vr.fieldname__v ASC|DESC, objectname__vr.fieldname2__v ASC|DESC, objectname__vr.fieldname3__v ASC|DESC}
例如,
国家/地区 | 州/省 | 城市 |
${vault:document_city__cr.province__cr.country__cr.name__v;WHERE country__cr.name__v=‘Canada’ OR country__cr.name__v=’United States’ ORDER BY country__cr.name__v ASC, province__cr.name__v DESC, city__cr.name__v} | ${vault:document_city__cr.province__cr.name__v} | ${vault:document_city__cr.name__v} |
国家/地区 | 州/省 | 城市 |
加拿大 | 魁北克省 | 蒙特利尔 |
加拿大 | 安大略省 | 多伦多 |
加拿大 | 新斯科舍省 | 哈利法克斯 |
美国 | 纽约 | 布法罗 |
美国 | 纽约 | 纽约 |
美国 | 加利福尼亚州 | 洛杉矶 |
美国 | 加利福尼亚州 | 普莱森顿 |
美国 | 加利福尼亚州 | 圣地亚哥 |
使用条形码进行筛选
对一个具有 WHERE
子句的令牌应用条形码时,Vault 将使用筛选出的结果创建此条形码。要为您的令牌添加一个条形码,请将条形码部分附加到 WHERE
子句之后,并使用分号分隔。
例如,
${vault:document_quality_event__cr.findings__cr.name__v;WHERE findings__cr.criticality__c = ‘Major’;barcode}
示例配置
共同审计员
当创建一个报告时,您的源文档包含用于识别主要审计员和共同审计员的令牌:
主要审计员:${vault:document_quality_event__cr.lead_auditor__c}
共同审计员:${vault:document_quality_event__cr.audit_team__cr.team_member__c}
但团队成员对象包含所有类型的用户,所生成的格式副本会同时列出共同审计员和观察员,而不按任何逻辑顺序列出共同审计员:
主要审计员:Teresa Ibanez
共同审计员:
- 观察员:Gladys Dunford
- 共同审计员:Thomas Chung
- 共同审计员:Cody Brandon
您可以在令牌中使用一个 WHERE
子句,以便按团队成员类型进行筛选,以使格式副本在共同审计员列表中不包含观察员,并使用一个 ORDER BY
子句,以便按字母顺序列出这些审计员:
共同审计员:${vault:document_quality_event__cr.audit_team__cr.team_member__c;WHERE audit_team__cr.team_member_type__c = ‘Co-Auditor’ ORDER BY audit_team__cr.team_member__c ASC}
更新之后,所生成的格式副本将会列出:
主要审计员:Teresa Ibanez
共同审计员:
- 共同审计员:Cody Brandon
- 共同审计员:Thomas Chung