如何将SOQL查询结果中某列的值传入带{0}的自定义标签?
解决方案
要将SOQL查询结果中某一列的所有值传入带{0}占位符的自定义标签,核心是先提取目标列的所有值并处理成适合String.format的单个参数,具体步骤如下:
1. 提取目标列的所有值
遍历SOQL返回的列表,将需要的列值收集到集合中(以Sample_Name__c列为例):
List<Object__c> statusCheck = [SELECT Sample_Name__c, Status__c FROM Object__c]; List<String> targetValues = new List<String>(); for (Object__c record : statusCheck) { // 过滤空值避免无效内容 if (record.Sample_Name__c != null) { targetValues.add(record.Sample_Name__c); } }
2. 将值合并为单个字符串
根据需求用合适的分隔符(如逗号、换行符)拼接所有值,生成可填充到{0}的字符串:
// 用逗号加空格分隔,示例:"SampleA, SampleB, SampleC" String combinedValue = String.join(targetValues, ', ');
3. 传入自定义标签完成格式化
将合并后的字符串作为参数传入String.format:
String result = String.format(Label.label_name, new List<Object>{combinedValue});
注意事项
- 替换代码中的
Object__c为你实际的自定义对象API名称 - 若自定义标签
{0}需要特定格式(比如换行展示),修改String.join的分隔符为'\n'即可 - 如果目标列是非字符串类型(如数字、日期),需先转换为字符串再加入集合,例如
String.valueOf(record.Status__c)
内容的提问来源于stack exchange,提问作者Barry Einhorn
相关产品推荐
相关产品推荐

