birt报表常用JS,初级

 

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;

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值