过滤关联 动态过滤在web报表中的实现
“前面选择了省份,后面怎么才能自动出来省份里的城市”,”一个单元格选择父级字段,后面单元格可以自动出现该父级下的子级列表吗?”这些都是报表客户经常提出的需求,在报表中这类需求很常见,并且在报表的填报和查询中大量用到,这种功能在快逸报表里叫做过滤关联。
本文就来讲一下用快逸报表是怎么实现”过滤关联”功能的,同时也介绍下它的一个很有用的好搭档:动态过滤。
过滤关联概念通过下面的截图向大家解释会更加清楚
如上图所示:”地区”和前面的”国家”关联,”城市”和前面的”国家”还有”地区”关联。
那动态过滤又是什么呢?大家注意看上图下拉框中的数据,例子中只有7个地区,选择自己需要的内容还算方便,但是当数据特别多的时候查找想要的数据就有点困难了,动态过滤在这里就起作用了,假如我们想选择”西北”,我们在单元格中输入一个”西”字,然后所有带”西”字的数据就都被过滤出来了,这就是动态过滤。效果见下图:
下面就开始今天的主题,看看快逸报表中是怎么实现这两个功能的,很简单,我们根据客户的需求做个例子。
第一步:新建一张空白报表,并在”报表属性”里把报表设置成”可以填报” ,然后连接数据源,建立数据集,本例中用得是demo数据源,数据集从”订单表”上建立,关于如何建立数据集请参看快逸文档中的:学习教程->报表初级复杂报表设计" target="_blank" class="quieeLink1">设计。建立数据集ds1,其sql语句为 :SELECT 订单.货主国家,订单.货主地区,订单.货主城市 FROM 订单
数据集配置好以后就可以开始设计报表样式了,我们在设计器里画出报表大致框架,如图 :
第二步:开始设置其中的数据,右键点击B1单元格,选择”填报属性”设置”国家”内容。 见下图:
这里的”编辑风格”属于下拉数据集,所以选择”下拉数据集”,单元格是需要填写的数据的,所以”是否可写”设成选中状态,然后点击”设置”按钮开始设置”下拉数据集”数据内容,数据集选择相应的数据集ds1,显示列和数据列都选择”货主国家”,右下角的4个复选项我们要选择其中红色框中的两项,作用后面会介绍到。
第三步:右键点击D1单元格,选择”填报属性”设置”地区”内容,和第二步一样,选择”下拉数据集”"是否可写”设成选中状态。下面的操作是比较重要的步骤,大家应该多加注意。 见下图:
这里的设置比第二步多了一个环节,因为要和前面的”货主国家”进行关联,所以我们要在”web特性”里进行一些设置,首先是过滤关联表达式,例子里是这样写的:货主国家=${B1}.toString(),大家可以根据自己的情况设定。然后设置”触发关联过滤单元格” ,这里触发过滤得是B1单元格,点右面的增加按钮,然后在名称中写上 :${B1},设置完成。
第四步:第二次关联设定,也就是”城市”的设定,操作步骤和第三步大体相同,但是公式略有不同,先看下图 ,然后大家自己对比下不同之处。
不同在哪里?就是上图中大红色框中的部分,第一次关联只需要和”货主国家”关联就可以,第二次关联的时候就需要同时和”货主国家”还有”货主地区”关联了,所以我们在过滤关联表达式里应该这样写:货主国家=${B1}.toString() and 货主地区=${D1}.toString(),触发单元格也就相应的应该设置两个了:${B1}和${D1}。
到这里一个完整的过滤关联例子就做完了,我们发布以后就可以看到我们想要的效果了,也就是本文的第一个图。
最后说一下过滤关联的好搭档:动态过滤,也很简单,大家看下上面三张图片右下方都有四个复选框,而且三张图中都选择了其中的两个选项:增强控件、允许编辑,我们的动态过滤就是这两个选项实现的,就这么简单,至于其中的原理咱们都无需深究,知道快逸报表给报表开发人员提供了这么方便的功能就可以了。
文章结束,希望可以帮的上您,这类实用的功能快逸报表还有很多,应用之妙,纯乎一心,相信大家一定可以用快逸报表解决更加复杂的web报表问题。
引自:报表工具知识库
相关文章:输入时的关联过滤 ; 下拉数据集的多层动态多虑 ; 查询条件的保存">用快逸报表轻松实现查询条件的保存;excel入库">用快逸实现在web页面导入excel入库
其他相关内容:用快逸设计WEB报表;.NET Web报表开发工具探讨报表工具;web报表博客