-
chestnut 数据领袖Lv6
发表于2024-4-24 16:43
楼主
周报任务,自定义最佳报表期,如果当日为周一以后,则最佳报表期为当周,否则为上周,用最佳报表期脚本实现。任务属性-报表期设置-最佳报表期脚本
复制代码脚本中可用变量:
1、变量:task,Task对象,可通过此变量知道当前任务。
2、变量:userid、btype、dataset:String对象,依次为当前的报表户ID、报表户类型、数据集名。
返回值要赋给变量bestBbq:类型是String,最终可以通过对此变量的赋值返回最佳报表期。
- import java.util.Calendar;
- import java.util.Date;
- import com.sanlink.util.StrFunc;
- String formatStr( int i, int len) {
- String o = String.valueOf(i);
- int l = o.length();
- if (l == len)
- return o;
- else if (l > len)
- return o.substring(0, len);
- else {
- StringBuffer sb = new StringBuffer(len);
- for ( int k = l; k < len; k++, sb.append( '0' ))
- ;
- sb.append(o);
- return sb.toString();
- }
- }
-
- String formatbbq( int y, int m, int d) {
- StringBuffer sb = new StringBuffer(8);
- sb.append(formatStr(y, 4)).append(formatStr(m, 2)).append(
- formatStr(d, 2));
- return sb.toString();
- }
-
- public static String getBestBbq(Date t) {
- Calendar d = Calendar.getInstance();
- d.setFirstDayOfWeek(Calendar.WEDNESDAY);
- d.setMinimalDaysInFirstWeek(1);
- d.setTime(t);
- int y = d.get(d.YEAR);
- int m = d.get(d.MONDAY) - d.JANUARY + 1;
- int w = d.get(d.WEEK_OF_MONTH);
- return formatbbq(y,m,w);
- }
- bestBbq=getBestBbq( new Date());
1、变量:task,Task对象,可通过此变量知道当前任务。
2、变量:userid、btype、dataset:String对象,依次为当前的报表户ID、报表户类型、数据集名。
返回值要赋给变量bestBbq:类型是String,最终可以通过对此变量的赋值返回最佳报表期。