1. 需求案例一
1.1 需求概述
在参数框中有开始日期和结束日期两个参数,满足以下四个需求:
1)开始日期或者结束日期任意选择一个日期查询该日期数据;
2)开始日期和结束日期不能同时为空;
3)结束日期不能大于开始日期31天;
4)开始日期默认前一天日期。
1.2 实现方案
通过一个隐藏参数(@yincang)来控制开始时间和结束时间的间距,此时应用在具体的报表中应该通过过滤条件中if语句实现。1.3 实现步骤
1)拖入两个时间参数组件(@start和@end)和一个隐藏参数(@yincang)
2)设置开始日期(@start)的默认值为前一天
3)设置参数校验条件,实现开始日期和结束日期不能同时为空
4)将开始时间31天后的值传递给隐藏参数(@yincang),并设置为隐藏
5)设置隐藏参数的默认值为开始日期31天后的值
6)设置结束日期的校验条件,实现结束日期不大于开始日期31天
针对第一个需求,实现方法是在过滤条件中写if语句,具体if语句如下:if(@start<>"" and @end="",XXB.BBQ=@start,if(@start="" and @end<>"",XXB.BBQ=@end,XXB.BBQ>=@start and XXB.BBQ<=@end))。
2. 需求案例二
2.1 需求概述
根据不同用户控制对参数的校验,例:某一用户登录,必须选择维下拉中的数据,而另一用户登录时可选可不选。
2.2 实现方案一
根据登录用户的不同将维输入框内容传递给输入框,通过输入框间接控制维下拉框是否为空。
2.3 实现步骤
1)拖入维下拉框(@cs)和输入框(@cs1)
2)输入框(@cs1)设置为非空
3)设置参数行为,并对相应用户赋权
此方案实现了客户的需要,但在测试中出现了一些问题,将维下拉框输入的内容删除后,无法联动输入框内容删除,通过补丁(JIRA: ESENBI-10092)得到解决。基于已有方案,进一步研究得到方案二。
2.4 实现方案二
在方案一的基础上改进,通过判断两个参数的长度,避免方案一中的问题。同样拖入维下拉框(@xzqh)和输入框(@yc),通过两个参数的长度是否大于0实现。2.5 实现步骤
1)拖入维下拉框(@xzqh)和输入框(@yc)
请先登录