博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
javascript实现多表头分类交叉报表:html表格
阅读量:4190 次
发布时间:2019-05-26

本文共 3326 字,大约阅读时间需要 11 分钟。

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

你可能感兴趣的文章
ACM UVa算法题209 Triangular Vertices的解法
查看>>
另一道看上去很吓人的面试题:如何交换a和b两个整数的值,不用额外空间 (Rev. 2)
查看>>
一道看上去很吓人的算法面试题:如何对n个数进行排序,要求时间复杂度O(n),空间复杂度O(1)
查看>>
今天David Solomon的为期三天的Windows Internal培训刚结束
查看>>
转贴:Mark Russinovich的Inside Vista Kernel系列文章,讲到了Vista内核的调度,IO,内存管理,缓存,事务处理,安全等众多新特性
查看>>
转载:如何指定程序在Vista上面需要提升权限运行(Elevated)
查看>>
如何知道可执行文件是32-bit还是64-bit
查看>>
.NET Interop: 从IErrorInfo错误对象获得托管代码的异常信息
查看>>
Microsoft Silverlight正式发布
查看>>
国际化编程中Locale相关概念的一些解释
查看>>
PIA (Primary Interop Assembly) & AIA (Alternate Interop Assembly)简介
查看>>
“妖精”团队———阿里巴巴
查看>>
迟到的感谢——2006最有价值博客的候选人(& 个人回顾)
查看>>
第29回 软件质量度量
查看>>
IT 2007预言
查看>>
怎样让.Net2.0的Membership使用已存在的Sql Server2000/2005数据库
查看>>
ASP.NET2.0 文本编辑器FCKeditor使用方法详解
查看>>
常见的 Web 项目转换问题及解决方案
查看>>
VS2005中使用ClickOnce 部署应用程序的升级
查看>>
Visual Studio2005下配置及运行NUnit
查看>>