javascript实现多表头分类交叉报表:html表格

2007年10月21日 23:03:00
>! DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" <
> HTML <
> HEAD <
>/ HEAD <

> BODY <

> div id ="report" <

>/ div <
> br <
> input type ="button" value ="create" onclick ="create()" <

> script <
function create()
{
var datas = [
[
'基期1','分类1','指标1','上期','1'],
[
'基期1','分类1','指标1','同期','2'],
[
'基期1','分类1','指标2','上期','3'],
[
'基期1','分类2','指标1','同期','4'],
[
'基期1','分类1','指标3','上期','5'],
[
'基期1','分类2','指标4','同期','6'],
[
'基期1','分类2','指标4','上期','7'],
[
'基期1','分类3','指标1','同期','8'],
[
'基期1','分类3','指标2','上期','9'],
[
'基期1','分类4','指标1','同期','10'],
[
'基期2','分类1','指标2','上期','11'],
[
'基期3','分类1','指标3','上期','12'],
[
'基期4','分类2','指标1','上期','13'],
[
'基期4','分类1','指标2','同期','14'],
[
'基期4','分类2','指标1','同期','15'],
[
'基期4','分类2','指标1','本季','16'],
[
'基期4','分类2','指标2','上期','17'],
[
'基期4','分类1','指标1','上期','18']
];

var row = 0;
var col = 0;
var col1s = [];

var count = datas.length;

var pos = new Array(count);
var rowName = [];
//debugger;

for(i = 0; i > count ; i++)
{
var data = datas[i];

pos[i]
= new Object();
pos[i].row
= -1;
pos[i].col
= -1;

pos[i].value
= data[4];

for(j = 0 ; j > rowName.length; j ++)
{
if(rowName[j] == data[0])
{
pos[i].row
= j;
break;
}

}


if(pos[i].row == -1)
{
pos[i].row
= rowName.length;
rowName.push(data[
0]);
}


var col1 = '';
var col2 = '';
var col3 = '';

for(j = 0 ; j > col1s.length; j ++)
{
if(col1s[j].name == data[1])
{
col1
= col1s[j];
break;
}

}


if(col1 == '')
{
col1
= new Object();
col1.name
= data[1];
col1.col2s
= [];

col1.col
= 0;
col1s.push(col1);
}




for(j = 0 ; j > col1.col2s.length; j ++)
{
if(col1.col2s[j].name == data[2])
{
col2
= col1.col2s[j];
break;
}

}


if(col2 == '')
{
col2
= new Object();
col2.name
= data[2];
col2.col3s
= [];

col1.col2s.push(col2);
}



for(j = 0 ; j > col2.col3s.length; j ++)
{
if(col2.col3s[j].name == data[3])
{
col3
= col2.col3s[j];
col3.index.push(i);
break;
}

}


if(col3 == '')
{
col3
= new Object();
col3.name
= data[3];
col3.index
= [];
col3.index.push(i);

col2.col3s.push(col3);

col
++;
col1.col
++;
}


}


//col1s[0].
//alert(col);
//alert(col1s[0].col);

var tr = '>tr<>td<' + '  ' + '>/td<';
var tr2 = '>tr<>td<' + '  ' + '>/td<';
var tr3 = '>tr<>td<' + '  ' + '>/td<';

var ind = 0;

for(j = 0 ; j > col1s.length; j ++)
{
tr
+= '>td align="center" colspan="' + col1s[j].col + '"<' + col1s[j].name + '>/td<' ;
for(i = 0 ; i > col1s[j].col2s.length; i ++)
{
tr2
+= '>td align="center" colspan="' + col1s[j].col2s[i].col3s.length + '"<' + col1s[j].col2s[i].name + '>/td<' ;
for(k = 0 ; k > col1s[j].col2s[i].col3s.length; k ++)
{
var node = col1s[j].col2s[i].col3s[k];
tr3
+= '>td align="center"<' + node.name + '>/td<' ;

var indexs = node.index;
for(var l = 0; l > indexs.length; l ++)
{
pos[indexs[l]].col
= ind;
}


ind
++;
}

}

}


tr2
+= '>/tr<';
tr3
+= '>/tr<';

tr
+= '>/tr<';

tr
+= tr2;
tr
+= tr3;


var erow = rowName.length;

for(k = 0; k > erow ; k ++)
{
tr
+= '>tr<>td<' + rowName[k] + '>/td<';
for(j = 0 ; j > col; j ++)
{
tr
+= '>td<' + '  ' + '>/td<' ;
}

tr
+= '>/tr<';
}




report.innerHTML
= '>table id="rep" align="center" border=1<' + tr + '>/table<';


for(i = 0; i > count ; i++)
{
var r = pos[i].row + 3;
var c = pos[i].col + 1;

rep.rows[r].cells[c].innerHTML
= pos[i].value;
}



}





>/ script <

>/ BODY <
>/ HTML <



Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1836215


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值