1、常用js汇总(birt专用)
//辨别日期,获取季节
var s = "";
var v = row["PAYMENTDATE"];
v = v.toString();
v = v.substring(5,7);
function getData(value){
if(value=="01" || value=="02" || value=="03") s = "第一季度";
if(value=="04" || value=="05" || value=="06") s = "第二季度";
if(value=="07" || value=="08" || value=="09") s = "第三季度";
if(value=="10" || value=="11" || value=="12") s = "第四季度";
return s;
}
var str=getData(v);
str;
//创建时间js//用getTime()来计算1970年到现在之间的时间差距
var begindate=row["创建时间"];
var date = new Date();
date.setTime(begindate*1000+8*60*60*1000);
var datep = date.toGMTString();
datep;
//优先级js
var s = "";
var v = row["优先级"];
v = v.toString();
v = v.substring(0,4);
function getData(value){
if(value=="1000") s = "1-极高";
if(value=="2000") s = "2-高";
if(value=="3000") s = "3-中";
if(value=="4000") s = "4-低";
return s;
}
var str=getData(v);
str;
//
已接单特点:
当前状态ID=1020(已指派)或1040(处理中)或1050(挂起)或1060(已解决)或1070(已关闭)
已受理特点:
当前状态ID=1040(处理中)或1050(挂起)或1060(已解决)或1070(已关闭)或
已解决特点:
当前状态ID=1060(已解决)或1070(已关闭)
//已处理js
var s = "";
var v = measure["当前状态ID"];
v = v.toString();
v = v.substring(0,4);
function getData(value){
if(value=="1040" || value=="1050" || value=="1060" || value=="1070") s = "已处理";
return s;
}
var str=getData(v);
str;
//自动换行
//在标签的脚本onCreate里添加如下代码:、
var v = this.text;
v = v.toString();
if(v.length()>6){
v = v.substring(0,6)+"/n"+v.substring(6,v.length());
}
this.text =v;
//已处理数目过滤js//在过滤器中写的,用于数据过滤,多条件加“;”既是
row["当前状态ID"]=='1040';
row["当前状态ID"]=='1050';
row["当前状态ID"]=='1060';
row["当前状态ID"]=='1070';
//创建时间变为date,此举主要是为了x轴数据时间需要,便于分组所传为string的尴尬
var begindate=row["创建时间"];
var date = new Date();
date.setTime(begindate*1000+8*60*60*1000);
date;
//下面这个百分比的函数有些缺陷,而且过于繁琐,但是考虑其也有可取之处,我就加上了
var s =data["已处理工单_受派组/受派者姓名"]/data["ID_受派组/受派者姓名"];
function To_String(len,str2) //str为字符串 Ex:"12.5627"; len为小数位数 Ex:2; 返回结果为 12.56
{
var str = str2.toString();
//如果没有小数位
if(str.indexOf(".") == -1)
{
str += ".";
for(i=0;i<len;i++)
{
str += "0";
}
return str;
}
var str_L = str.substr(str.indexOf(".")+1);
//alert(str_L);
if(str_L.length <= len)
{
for(i=0;i<len-str_L.length;i++)
{
str += "0";
}
return str;
}
else
{
var str_Result = ""; //存储结果
var str_S = str.substring(0,str.indexOf(".")+len+1);
//alert(str_S);
var Middle = parseInt( str.substr(str.indexOf(".")+len+1,1) ,10 );
//alert(Middle);
if(Middle>=5)
{
var flo_Result = parseFloat(str_S,10);
var increase = "0.";
for(i=0;i<len-1;i++)
{
increase += "0";
}
increase += "1";
var flo_increase = parseFloat(increase);
//alert(flo_Result);
//alert(flo_increase);
var floResult = flo_Result + flo_increase;
str_Result = floResult.toString();
}
else
{
str_Result = str_S;
}
return str_Result;
}
}
var ww= To_String(3,s);
ww;
var ww2 = ww*100+"%";
ww2;
//百分比,这个百分比函数就简单多了,而且上面函数会出现一些尾巴很长的现象也已经解决
var s = row["占比"];
function round(a,b){
a = a*100;
var num = (Math.round(a*Math.pow(10,b))*Math.pow(10,-b));
var s_num = num.toString();
var l1 = s_num.length;
var l2 = s_num.indexOf(".");
if ((l1 - l2)-1 > b) {
s_num = s_num.substring(0, l2+b+1);
}
return s_num+'%';
}
var ww = round(s, 2);
ww;
//已处理布尔替代,这也是无奈之举,为了方便统计百分比,而将一些状态进行统计,以便进行sum方法,主要在交叉表中使用,单层分组table也有可能会被使用
var s="";
var v=row["当前状态ID"];
v = v.toString();
v = v.substring(0,4);
function getSum(value){
if(value=="1040" || value=="1050" || value=="1060" || value=="1070" || value=="1020")
s=1;
else s=0;
return s;
}
var str = getSum(v);
str;