Seal Report Designer软件左侧面板的Models节点,其右侧界面中的Restrictions、Aggregate Restrictions区域都是用于数据筛选,区别在于筛选时机不同,前者在数据聚合之前执行,筛选对象是数据库的原始数据行,而后者作用于数据聚合之后的数据。如果是原始的数据列,这两种筛选没有什么区别,如果筛选数据聚合之后的数据,如Data Elements区域的数据列,则只能在Aggregate Restrictions区域添加筛选条件。
以前一篇文章中的分页交叉报表为例,原始的界面及数据如下图所示:

如果不想看到北部区域的销售数据,可以在Restrictions区域添加筛选条件,条件及报表结果如下所示:

如果只想看到销售数据大于等于1000的数据,则只能在Aggregate Restrictions区域添加筛选条件,条件及报表结果如下所示:

Restrictions、Aggregate Restrictions区域的筛选条件的属性及属性说明如下所示:

Name属性:配置在数据列在筛选区域的显示名称;
Prompt restriction属性:配置筛选条件在报表运行时与用户的交互方式;
Operator属性:配置筛选条件的操作符,比如等于、不等于、包含等;
Operator label属性:值不为空则替换操作符的显示名称;
Operator style属性:配置筛选条件操作符的显示方式,该属性仅在筛选条件与用户存在交互时生效;
Is required属性:如果值为True,且筛选条件与用户存在交互,则必须要输入值才能继续执行报表;
Display order属性:配置报表运行时筛选条件的显示顺序;
Place holder属性:配置筛选条件输入框的提示词;
Value 1属性:配置筛选条件所需的第一个值;
Value 2属性:配置筛选条件所需的第二个值;
Value 3属性:配置筛选条件所需的第三个值;
Value 4属性:配置筛选条件所需的第四个值;
Trigger execution属性:如果值为True,则筛选条件的值变化会执行或更新报表;
Custom SQL属性:如果值不为空,则使用自定义SQL片段替换筛选条件默认生成的SQL语句;
Data type属性:配置筛选条件的数据类型;
Format属性:配置筛选条件的数据显示格式;
Custom format属性:自定义筛选条件的数据显示格式;
Input lines for first value属性:如果值大于0,则用于控制筛选条件的首个输入值的最大行数;
Custom enumerated属性:配置筛选条件可用的下拉列表;
Blank values属性:配置筛选条件的空值处理方式;
Allow modifications through API属性:如果值为True,则支持通过Web API修改筛选条件的值,即使筛选条件为配置在报表执行时与用户交互;
Aggregate属性:配置筛选条件关联的数据列的聚合函数类型。
参考文献:
1https://github.com/ariacom/Seal-Report
4https://sealreport.org/forum/
5https://github.com/ariacom/Seal-Report/releases
6https://www.cnblogs.com/Leo_wl/p/7716582.html
7https://sealreport.org/Help/html/26c7ae63-9b83-dc1d-b5d0-00a18021be41.htm