Filter Reports — Code Example

DEX455 - Reports API、Sites、Support Classes 与 Territory Management

📄 第 336 页 🎬 视频课程

课程章节介绍

好,我们来看一看在Apex里怎么做报表的筛选,这个功能在实际项目中非常实用。 想象一下,你有一张销售报表,想看“本周的数据”,过一会儿又想看“上个月的数据”。难道每次都要手动进报表改筛选条件吗?不用,用代码就可以灵活控制。 整个过程大致分三步:,先看报表长什么样,再给它戴上一副“筛选眼镜”,最后戴着这副眼镜去看数据。, 具体到代码里是这样操作的: 1. 首先,用`ReportManager.describeReport`拿到这个报表的“描述信息”,也就是它的元数据,里面包含了所有列、分组、筛选条件的定义。 2. 接着,我们创建新的过滤器。比如你想按“创建日期”筛选,就新建一个`ReportFilter`对象,然后告诉它: - `setColumn`:对哪个列进行筛选,比如“CREATED_DATE”。 - `setOperator`:怎么个筛选法,比如`equals`就是等于,还可以是`greaterThan`等等。 - `setValue`:具体要等于啥,传入一个日期字符串,比如“LAST_WEEK”。 3. 做好一个过滤器后,把它放进一个列表里。一个报表可以有多个过滤器,所以用列表装起来。 4. 然后调用`setReportFilters`,把这一堆过滤器赋值给先前拿到的报表元数据。 5. 最后,拿着这个修改过的元数据去`ReportManager.runReport`运行报表,拿到的结果就是筛选后的数据啦。 最棒的是,你可以,复用,这一套元数据。想换个条件看数据?只需要重新调`setValue`,再运行一次报表就行。比如第一次筛选“本周”,拿到总计A;第二次把值改成“上周”,再运行,总计就变成B了。这样同一个逻辑,轻松对比不同时间段的数据,是不是既清晰又省事? 好了,这个知识点你学会了吗?动手试试吧,运行两次看看总计值的变化,感受一下筛选器的魅力。

关键词

Apex Salesforce Developer Guide