i@Report任务填报时间限制

1341
2

玳玳我 小试身手Lv3

发表于2021-8-8 02:42

楼主
本帖最后由 玳玳我 于 2021-8-8 02:44 编辑

     在填报任务设计中,会设置任务的报表期,比如周报是一周一报,月报是一月一报,那么在此基础上如何限制用户的填报时间呢?     比如周报限制报表户必须在周五、周六、周日时才能填报,月报限制在当月29号之前完成填报


     在任务的属性-》报表期设置-》最佳报表期脚本里可以设置填报任务的最佳报表期

      

周报任务
import com.esen.ei.bbq.BbqFuncs;
import java.util.Calendar;
import java.util.Date;
Calendar c = Calendar.getInstance();
c.setTime(newDate());
int weekday = c.get(Calendar.DAY_OF_WEEK);
if(weekday == 5 || weekday  == 6 || weekday== 7){
task.setProperty("allowOnlineFill","true");
} else {
task.setProperty("allowOnlineFill","false");
}
bestBbq = BbqFuncs.getBestBbq(task.getBbqType(),task);



月报任务
import com.esen.ei.bbq.BbqFuncs;
import java.util.Calendar;
import java.util.Date;
Date date = new Date();
int day = date.getDate();
if(day >= 29){
task.setProperty("allowOnlineFill","true");
} else {
task.setProperty("allowOnlineFill","false");
}
bestBbq =BbqFuncs.getBestBbq(task.getBbqType(), task);



最近看过此主题的会员

chestnut

2个回答

只看楼主

v笑向前走 小试身手Lv3

发表于2022-7-13 15:40

只看该作者

取消 关注该作者的回复

沙发

本帖最后由 v笑向前走 于 2022-7-14 14:33 编辑

月报--> 每月只有指定时间段可以填(最佳报表期为前一个月)
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);


v笑向前走 小试身手Lv3

发表于2022-7-14 14:18

只看该作者

取消 关注该作者的回复

板凳

本帖最后由 v笑向前走 于 2022-7-14 14:45 编辑

月报:填写当前月指定时间可填写(最佳报表期为当月)

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 = 1; // 允许填报日期区间,开始于每月第几天
int endDate = 5; // 允许填报日期区间,结束于每月第几天
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();
}
int day   =  cal.get(java.util.Calendar.DAY_OF_MONTH);
int year  =  cal.get(java.util.Calendar.YEAR);
int month =  cal.get(java.util.Calendar.MONTH);
month       = month +1;
bestBbq  = year + "" + ((month < 10) ? ("0"+ month) : (""+month))  + "--";

登录后可回答问题,请登录注册

快速回复 返回顶部 返回列表

小时

全天响应

分钟

快速处理问题

工程师强势助力

明星产品
解决方案
联系合作

400咨询:400-0011-866

技术支持QQ:400-0011-866(工作日9:00-18:00)

产品建议邮箱yixin@esensoft.com

关注我们

扫TA学习更多干货

一对一专家交流

版权所有© 2006-2024 北京亿信华辰软件有限责任公司 京ICP备07017321号 京公网安备11010802016281号