-
liyzh 数据小白Lv1
发表于2022-6-10 18:35
楼主
本帖最后由 liyzh 于 2022-6-10 18:35 编辑
1、适用场景:
复制代码
效果图如下:
2、适用场景
复制代码
3、适用场景
复制代码复制代码
1、适用场景:
月报,每个月的几号之前可以填当月的,几号之后只能填下个月的
解决方案:
在该任务的任务属性中进行报表期设置(要写脚本的话注意不能勾选报表期设置)脚本如下:
- IF(DAY(TODAY())>9,str(left(od(today(),'m+1'),6)^"--"),str(left(today(),6)^"--"))
效果图如下:
2、适用场景
固定每个月的某几天可以填报,其余时间不允许填报
解决方案:
只要客户想实现每月某些天可以填,这个脚本都使用,不区分什么报表期(这个脚本里面默认5号到15号允许填报,可以自己把这两个数值改变,而且该脚本没考虑到当月没有31号,2月没有30号,平年2月没有29号这些情况。)
只要客户想实现每月某些天可以填,这个脚本都使用,不区分什么报表期(这个脚本里面默认5号到15号允许填报,可以自己把这两个数值改变,而且该脚本没考虑到当月没有31号,2月没有30号,平年2月没有29号这些情况。)
脚本如下:
- import java.util.Calendar;
- import com.esen.ei.bbq.BbqFuncs;
- import com.esen.ei.rp.Task;
- import com.esen.ei.server.IReportServer;
- import com.esen.util.StrFunc;
- boolean allowOnlineFill = StrFunc.str2boolean(task.getProperty("allowOnlineFill","true"));
- Calendar cal = Calendar.getInstance();
- int dd = cal.get(Calendar.DATE); // 获取天
- int startDate = 5; // 允许填报日期区间,开始于每月第几天
- int endDate = 15; // 允许填报日期区间,结束于每月第几天
- try {
- if (dd >= startDate && dd <= endDate) { // 在允许填报的日期范围内
- if (!allowOnlineFill) { // 如果任务当前不允许填报,那么需要设置为可填报
- task.setProperty("allowOnlineFill", "true");
- task.getServerPpt().saveProperties(); // 保存任务允许填报服务器属性
- System.out.println("更新任务" + task.getCaption() + "(" + task.getServerId() + ")允许填报");
- }
- System.out.println("今天(" + StrFunc.formatDateTime(cal.getTime()) + ")允许填报任务" + task.getCaption() + "(" + task.getServerId() + ")");
- } else { // 不在允许填报的日期范围内,且允许填报,需要设置为不允许填报
- if (allowOnlineFill) {
- task.setProperty("allowOnlineFill", "false");
- task.getServerPpt().saveProperties(); // 保存任务允许填报服务器属性
- System.out.println("更新任务" + task.getCaption() + "(" + task.getServerId() + ")不允许填报");
- }
- System.out.println("今天(" + StrFunc.formatDateTime(cal.getTime()) + ")不允许填报任务" + task.getCaption() + "(" + task.getServerId() + ")");
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
- bestBbq = BbqFuncs.getBestBbq(task.getBbqType(), task);
脚本位置:
效果图如下:通过这样达到不允许在线填报的效果
3、适用场景
任务填报界面的报表期只显示2005年1月、2月、3月的报表期,其它报表期不显示。
报表期类型:月报
解决方案:
任务属性-》报表期设置中定义报表期显示脚本,例如显示2005年1月、2月、3月的报表期,
任务属性-》报表期设置中定义报表期显示脚本,例如显示2005年1月、2月、3月的报表期,
脚本如下:
- bbqs.clear();
- bbqs.add("200501--");
- bbqs.add("200502--");
- bbqs.add("200503--");
此处是以月报为例,如果还想添加其他报表期,继续在脚本后面添加“bbqs.add("报表期")”即可。
注意:只有当任务设置了不允许填写最佳报表期外的其他报表期时,此脚本才会生效!
效果图如下: