高分求助----具有修改功能的表 javascript可以做到,在你的TD里放个TEXT框就可以修改数据了,你可以用STYLE把他设的看不出是个TEXT框.插入和删除行以前有人回答过这个问题,你可以查查 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 <div contenteditable><table border=1><tr><td>aaaaaaaaaaa</td><td>bbbbbbbb</td></tr></table></div> http://fason.nease.net/zhuanti/table/sort.htm 下面的代码里插入行,列,编辑单元格的函数都有,从代码里面粘过来的,你自己找吧<SCRIPT language="javascript">var NowInput,NowType,CanEdit; CanEdit=true;function InsertCol(){ if(!CanEdit) { alert("现在不能进行派生,请先设置和保存当前计算方法"); return; } if(form1.Col.value==""||form1.Col.value==null) { return; } if(form1.Row.value==""||form1.Row.value==null) { return; } var x = form1.Col.value; var y = form1.Row.value; var C ; var StartX = form1.RowValue.value.split("|---|").length; var StartY = form1.ColValue.value.split("|---|").length; var TempNum = parseInt(tab1.rows[0].cells[x-1].innerHTML); var TempStr,TempArray; for(i=0;i<tab1.rows.length;i++) { C = tab1.rows[i].insertCell(x); C.noWrap = "noWrap"; C.bgColor = "#E4F2F3"; if(i<StartY) { C.innerHTML =tab1.rows[i].cells[x-1].innerHTML ; if(i>0) { C.setAttribute("id","Cell" + i + (x-1)); C.attachEvent("ondblclick",new Function('editCell(Cell' + i + (x-1) + ')')); } } else if(i==StartY) { C.innerHTML = '<input type="text" id="Text1' + i + (x-1) + '" style="border: 1 solid #FFFFFF; padding: 0; HEIGHT: 13px;font-size: 13px" ONBLUR="setCell1(this.parentElement, this)">'; C.setAttribute("id","Cell" + i + (x-1)); C.attachEvent("ondblclick",new Function('editCell(Cell' + i + (x-1) + ')')); eval("form1.Text1" + i + (x-1)).focus(); eval("form1.Text1" + i + (x-1)).select(); } else if(i==StartY+1) { C.innerHTML = '<input type="text" id="Text1' + i + (x-1) + '" style="border: 1 solid #FFFFFF; padding: 0; HEIGHT: 13px;font-size: 13px" onkeydown="setCell2(this.parentElement, this)" onfocus="CursorToLast()">'; C.setAttribute("id","Cell" + i + (x-1)); C.attachEvent("ondblclick",new Function('editCell1(Cell' + i + (x-1) + ')')); NowInput = eval("form1.Text1" + i + (x-1)); NowType = "COL"; CanEdit = false; } else { C.innerHTML = " " } } for(i=x;i<tab1.rows[0].cells.length;i++) { TempNum++; tab1.rows[0].cells[i].innerHTML = TempNum; tab1.rows[0].cells[i].setAttribute("align","center"); tab1.rows[0].cells[i].bgColor = tab1.rows[0].cells[x-1].bgColor; } tab1.rows[0].cells[x].attachEvent("ondblclick",SetColNum); //记录添加的列号 TempArray = form1.AddedCol.value.split(",") TempStr = ""; for(i=0;i<TempArray.length;i++) { if(parseInt(TempArray[i])>=parseInt(x)) { TempArray[i] = parseInt(TempArray[i]) + 1; } if(TempStr =="") { TempStr = TempArray[i]; } else { TempStr = TempStr + "," + TempArray[i]; } } form1.AddedCol.value = TempStr; if((form1.AddedCol.value=="")||(form1.AddedCol.value==null)) { form1.AddedCol.value = x; } else { form1.AddedCol.value = form1.AddedCol.value + "," + x; } }//---------------------------------------------------------------------------------- function InsertRow(){ if(!CanEdit) { alert("现在不能进行派生,请先设置和保存当前计算方法"); return; } if(form1.Col.value==""||form1.Col.value==null) { return; } if(form1.Row.value==""||form1.Row.value==null) { return; } var x = form1.Col.value; var y = form1.Row.value; var R = tab1.insertRow(y); var C ; var StartX = form1.RowValue.value.split("|---|").length; var StartY = form1.ColValue.value.split("|---|").length; var TempNum = parseInt(tab1.rows[y-1].cells[0].innerHTML); var TempStr,TempArray; for(i=0;i<tab1.rows[y-1].cells.length;i++) { C = R.insertCell(i); C.noWrap="noWrap"; C.bgColor = "#EAF4E3"; if(i<StartX) { C.innerHTML = tab1.rows[y-1].cells[i].innerHTML; if(i>0) { C.setAttribute("id","Cell" + (y-1) + i); C.attachEvent("ondblclick",new Function('editCell(Cell' + (y-1) + i + ')')); } } else if(i==StartX) { C.innerHTML = '<input type="text" id="Text1' +(y-1) + i +'" style="border: 1 solid #FFFFFF; padding: 0; HEIGHT: 13px;font-size: 13px" ONBLUR="setCell1(this.parentElement, this)">'; C.setAttribute("id","Cell" + (y-1) + i); C.attachEvent("ondblclick",new Function('editCell(Cell' + (y-1) + i + ')')); eval("form1.Text1" + (y-1) + i).focus(); eval("form1.Text1" + (y-1) + i).select(); } else if(i==StartX+1) { C.innerHTML = '<input type="text" id="Text1' +(y-1) + i +'" style="border: 1 solid #FFFFFF; padding: 0; HEIGHT: 13px;font-size: 13px" onkeydown="setCell2(this.parentElement, this)" onfocus="CursorToLast()">'; C.setAttribute("id","Cell" + (y-1) + i); C.attachEvent("ondblclick",new Function('editCell1(Cell' + (y-1) + i + ')')); NowInput = eval("form1.Text1" + (y-1) + i); NowType = "ROW"; CanEdit = false; } else { C.innerHTML = " " } } for(i=y;i<tab1.rows.length;i++) { TempNum++; tab1.rows[i].cells[0].innerHTML = TempNum; tab1.rows[i].cells[0].setAttribute("align","center"); tab1.rows[i].cells[0].bgColor = tab1.rows[y-1].cells[0].bgColor; } tab1.rows[y].cells[0].attachEvent("ondblclick",SetRowNum); //记录添加的列号 TempArray = form1.AddedRow.value.split(",") TempStr = ""; for(i=0;i<TempArray.length;i++) { if(parseInt(TempArray[i])>=parseInt(y)) { TempArray[i] = parseInt(TempArray[i]) + 1; } if(TempStr =="") { TempStr = TempArray[i]; } else { TempStr = TempStr + "," + TempArray[i]; } } form1.AddedRow.value = TempStr; if((form1.AddedRow.value=="")||(form1.AddedRow.value==null)) { form1.AddedRow.value = y; } else { form1.AddedRow.value = form1.AddedRow.value + "," + y; }}function DeleteRow(){ var x = form1.Col.value; var y = form1.Row.value; //alert(form1.AddedRow.value); //alert(y); var tempStr1=","+form1.AddedRow.value + ","; if(tempStr1.lastIndexOf(y-1)<0) { alert("本行不是您添加的,不能删除"); return; } tab1.rows[y-1].bgColor = "blue" ; if(confirm("您将删除本行,是否继续?")) { tab1.deleteRow(y-1); for(i=y-1;i<tab1.rows.length;i++) { tab1.rows[i].cells[0].innerText = parseInt(tab1.rows[i].cells[0].innerText)-1; } var tempArray = form1.AddedRow.value.split(","); var tempStr = ""; for (i=0;i<tempArray.length;i++) { if(tempArray[i]==y-1) { continue; } if(tempArray[i]>y) { tempArray[i] = parseInt(tempArray[i])-1; } if (tempStr=="") { tempStr = tempArray[i] } else { tempStr = tempStr + "," + tempArray[i] } } form1.AddedRow.value = tempStr; CanEdit=true; } else { tab1.rows[y-1].bgColor = "" ; } }function DeleteCol(){ var x = form1.Col.value; var y = form1.Row.value; //alert(x + "," + y); var tempStr1=","+form1.AddedCol.value + ","; if(tempStr1.lastIndexOf(x-1)<0) //检查是否为派生得列,不是的话不能删除 { alert("本列不是您添加的,不能删除"); return; } for (i=1;i<tab1.rows.length;i++) //设置选中的颜色 { tab1.rows[i].cells[x-1].bgColor = "blue" ; } //alert(form1.AddedCol.value); if(confirm("您将删除本列,是否继续?")) //提示用户确认 { for (i=0;i<tab1.rows.length;i++) //开始删除 { tab1.rows[i].deleteCell(x-1); } for(i=x-1;i<tab1.rows[0].cells.length;i++) //修改列号 { tab1.rows[0].cells[i].innerText = parseInt(tab1.rows[0].cells[i].innerText)-1; } var tempArray = form1.AddedCol.value.split(","); //删除用户添加的列号记录并重新调整 var tempStr = ""; for (i=0;i<tempArray.length;i++) { if(tempArray[i]==x-1) { continue; } if(tempArray[i]>x) { tempArray[i] = parseInt(tempArray[i])-1; } if (tempStr=="") { tempStr = tempArray[i] } else { tempStr = tempStr + "," + tempArray[i] } } form1.AddedCol.value = tempStr; CanEdit=true; } else { for (i=1;i<tab1.rows.length;i++) { tab1.rows[i].cells[x-1].bgColor = ""; } } }function tabSelect(){ obj=window.event.srcElement; form1.Col.value=obj.cellIndex+1; form1.Row.value=obj.parentElement.rowIndex+1; }//==================================================================================//==================================================================================function editCell (cell) {if(!CanEdit){ alert("单元格现在不能编辑,请先设置和保存当前计算方法"); return;} OldUnit = cell.innerText; obj=window.event.srcElement; if (document.all) { cell.innerHTML = '<INPUT ID="editCell" style="border: 1 solid #FFFFFF; padding: 0; HEIGHT: 13px;font-size: 13px" ONCLICK="event.cancelBubble = true;" ONCHANGE="setCell(this.parentElement, this)" ONBLUR="setCell(this.parentElement, this)" VALUE="' + cell.innerText + '" SIZE="' + (cell.innerText.length) + '">'; document.all.editCell.focus(); document.all.editCell.select(); }else if (document.getElementById) { cell.normalize(); var input = document.createElement('INPUT'); input.setAttribute('value', cell.firstChild.nodeValue); input.setAttribute('size', cell.firstChild.nodeValue.length); input.onchange = function (evt) { setCell(this.parentNode, this.value); }; input.onclick = function (evt) { evt.cancelBubble = true; if (evt.stopPropagation) evt.stopPropagation(); };cell.replaceChild(input, cell.firstChild);input.focus();input.select();}}//---------------------------------------------------------------------------------- function editCell1 (cell) {//计算方法单元格的编辑函数if(!CanEdit){ alert("单元格现在不能编辑,请先设置和保存当前计算方法"); return;}if (document.all) { cell.innerHTML = '<INPUT ID="editCell" style="border: 1 solid #FFFFFF; padding: 0; HEIGHT: 13px;font-size: 13px" ONCLICK="event.cancelBubble = true;" ONCHANGE="setCell2(this.parentElement, this)" onkeydown="setCell2(this.parentElement, this)" onfocus="CursorToLast()" VALUE="' + cell.innerText + '">'; document.all.editCell.focus(); document.all.editCell.select(); }else if (document.getElementById) { cell.normalize(); var input = document.createElement('INPUT'); input.setAttribute('value', cell.firstChild.nodeValue); input.setAttribute('size', cell.firstChild.nodeValue.length); input.onchange = function (evt) { setCell(this.parentNode, this.value); }; input.onclick = function (evt) { evt.cancelBubble = true; if (evt.stopPropagation) evt.stopPropagation(); };cell.replaceChild(input, cell.firstChild);input.focus();input.select();}NowInput = eval("form1." + "editCell");CanEdit = false;}//----------------------------------------------------------------------------------function setCell (cell, Ipt) { var value= Ipt.value;if(value==""||value==null) { alert("请输入派生名称"); Ipt.focus(); Ipt.select(); return; } if (document.all) { cell.innerText = value; } else if (document.getElementById) { cell.replaceChild(document.createTextNode(value), cell.firstChild); } //NowInput.focus();}//----------------------------------------------------------------------------------function setCell1 (cell, Ipt) {//派生的最后一个指标的设置,并使计算方法获得焦点 var value= Ipt.value;if(value==""||value==null) { alert("请输入派生名称"); Ipt.focus(); Ipt.select(); return; } if (document.all) { cell.innerText = value; } else if (document.getElementById) { cell.replaceChild(document.createTextNode(value), cell.firstChild); } NowInput.focus();}//----------------------------------------------------------------------------------function setCell2 (cell, Ipt) {//计算方法,回车保存 var gk=event.keyCode; if (gk==13) { event.keyCode=9; var value= Ipt.value;if(value==""||value==null) { alert("请输入计算方法"); Ipt.focus(); Ipt.select(); return; } if (document.all) { cell.innerText = value; } else if (document.getElementById) { cell.replaceChild(document.createTextNode(value), cell.firstChild); } CanEdit = true; } //NowInput.focus();}//==================================================================================//==================================================================================function SetRowNum(){ if((NowType == "ROW")||(NowInput.id=="editCell")) { obj=window.event.srcElement; var Col = obj.cellIndex+1; var Row= obj.parentElement.rowIndex+1; var Str = tab1.rows[Row-1].cells[Col-1].innerHTML;if((NowInput.value!="")&&(NowInput.value!=null)) { NowInput.value =NowInput.value + Str; } else { NowInput.value =Str; } NowInput.focus(); }}function SetColNum(){//alert("aa"); if((NowType == "COL")||(NowInput.id=="editCell")) { obj=window.event.srcElement; var Col = obj.cellIndex+1; var Row= obj.parentElement.rowIndex+1; var Str = tab1.rows[Row-1].cells[Col-1].innerHTML; if((NowInput.value!="")&&(NowInput.value!=null)) { NowInput.value =NowInput.value + Str; } else { NowInput.value =Str; } NowInput.focus(); }}function CursorToLast(){//使光标移到最后 var e = event.srcElement; var r =e.createTextRange(); r.moveStart('character',e.value.length); r.collapse(true); r.select();}function SaveAdded(){//保存 var AddedRow = form1.AddedRow.value; var AddedCol = form1.AddedCol.value; var TempStr,TempArray; var DataStartCol,DataStarRow var RowUnit = ""; var RowCalCulate = ""; var ColUnit = ""; var ColCalCulate = ""; var aaa; DataStarRow = parseInt(form1.StartRow.value)+2; DataStartCol = parseInt(form1.StartCol.value)+2; //alert(DataStarRow +","+ DataStartCol); //保存行 //return; if((AddedRow !="")&&(AddedRow != null)) { TempArray = AddedRow.split(","); TempArray = OrderBy(TempArray); for(i=0;i<TempArray.length;i++) { TempStr ="" for(j=0;j<tab1.rows[TempArray[i]].cells.length;j++) { if(j==0) { continue; } if(j<DataStartCol) { TempStr = TempStr + "|" + tab1.rows[TempArray[i]].cells[j].innerText; } else { if((tab1.rows[TempArray[i]].cells[j].innerText!=" ")&&(tab1.rows[TempArray[i]].cells[j].innerText!=null)) { if(RowCalCulate!="") { RowCalCulate = RowCalCulate + "@" + "ROW[" + TempArray[i] +"]:" +tab1.rows[TempArray[i]].cells[j].innerText; } else { RowCalCulate = "ROW[" + TempArray[i] +"]:" +tab1.rows[TempArray[i]].cells[j].innerText; } } } } if(TempStr !="") { TempStr = TempStr.substr(1); } TempStr = "ROW[" + TempArray[i] + "]:" + TempStr; if(RowUnit!="") { RowUnit = RowUnit + "@" + TempStr; } else { RowUnit = TempStr; } } //alert(RowUnit + " " + RowCalCulate); parent.form1.AddedRowUnit.value = RowUnit; parent.form1.RowCalCulate.value = RowCalCulate; } //保存列 if((AddedCol != "")&&(AddedCol != null)) { TempArray = AddedCol.split(","); TempArray = OrderBy(TempArray); for(i=0;i<TempArray.length;i++) { TempStr ="" for(j=0;j<tab1.rows.length;j++) { if(j==0) { continue; } if(j<DataStarRow) { TempStr = TempStr + "|" + tab1.rows[j].cells[TempArray[i]].innerText; } else { if((tab1.rows[j].cells[TempArray[i]].innerText!=" ")&&(tab1.rows[j].cells[TempArray[i]].innerText!=null)) { if(ColCalCulate!="") { ColCalCulate = ColCalCulate + "@" + "COL[" + TempArray[i] +"]:" + tab1.rows[j].cells[TempArray[i]].innerText; } else { ColCalCulate = "COL[" + TempArray[i] +"]:" + tab1.rows[j].cells[TempArray[i]].innerText; } } } } if(TempStr !="") { TempStr = TempStr.substr(1); } TempStr = "COL[" + TempArray[i] + "]:" + TempStr; if(ColUnit!="") { ColUnit = ColUnit + "@" + TempStr; } else { ColUnit = TempStr; } } // alert(ColUnit + " " + ColCalCulate); parent.form1.AddedColUnit.value = ColUnit; parent.form1.ColCalCulate.value = ColCalCulate; } parent.form1.submit(); }function OrderBy(SourceArray){ var temparray = SourceArray; var t,p,i,j; for(i=0;i<temparray.length;i++) { p = i; for(j=i;j<temparray.length;j++) { if(parseInt(temparray[j])<parseInt(temparray[p])) { p = j; } } t = temparray[i]; temparray[i] = temparray[p]; temparray[p] = t; } return temparray;}function NotSave(){ //parent.Layer1.style.visibility='hidden'; parent.document.all.ps.width=0; parent.document.all.ps.height=0; parent.ShowTable.style.visibility='visible'; parent.document.body.style.overflow='auto'; parent.form1.AddedRowUnit.value = ""; parent.form1.RowCalCulate.value = ""; parent.form1.AddedColUnit.value = ""; parent.form1.ColCalCulate.value = "";} function CalculateCell(){Cell.style.visibility='visible';//Cell.innerHTML="<TEXTAREA style='WIDTH: 200px; HEIGHT: 200px' name=TEXTAREA1 rows=10 cols=23></TEXTAREA>";}//==================================================================================//==================================================================================</script> JS 获取本地文件夹的文件列表 jquery css显示和隐藏,效果fadein fadeout。 一个新浪的高难度背投特效 高手来帮忙呀,父窗口如何根据 子窗口的名称 获取 他 怎么样获得图片的某个点位的坐标?????????高手请指点 为什么网页无法调用我做的ocx控件里的函数呢?急啊?help Me! 图片正则问题,在线等着结帐 对于mvc模式,深度讨论其view层问题,所有javascript爱好者请进!!!!!! 赋值----怎么办----------急 在线等 如何屏蔽掉系统的右键菜单,只显示自己的菜单?谢谢! 如何删除td中的一个元素? 请问怎样取消事件的冒泡?
var NowInput,NowType,CanEdit;
CanEdit=true;
function InsertCol()
{
if(!CanEdit)
{
alert("现在不能进行派生,请先设置和保存当前计算方法");
return;
}
if(form1.Col.value==""||form1.Col.value==null)
{
return;
}
if(form1.Row.value==""||form1.Row.value==null)
{
return;
}
var x = form1.Col.value;
var y = form1.Row.value;
var C ;
var StartX = form1.RowValue.value.split("|---|").length;
var StartY = form1.ColValue.value.split("|---|").length;
var TempNum = parseInt(tab1.rows[0].cells[x-1].innerHTML);
var TempStr,TempArray;
for(i=0;i<tab1.rows.length;i++)
{
C = tab1.rows[i].insertCell(x);
C.noWrap = "noWrap";
C.bgColor = "#E4F2F3"; if(i<StartY)
{
C.innerHTML =tab1.rows[i].cells[x-1].innerHTML ;
if(i>0)
{
C.setAttribute("id","Cell" + i + (x-1));
C.attachEvent("ondblclick",new Function('editCell(Cell' + i + (x-1) + ')'));
}
}
else if(i==StartY)
{
C.innerHTML = '<input type="text" id="Text1' + i + (x-1) + '" style="border: 1 solid #FFFFFF; padding: 0; HEIGHT: 13px;font-size: 13px" ONBLUR="setCell1(this.parentElement, this)">';
C.setAttribute("id","Cell" + i + (x-1));
C.attachEvent("ondblclick",new Function('editCell(Cell' + i + (x-1) + ')'));
eval("form1.Text1" + i + (x-1)).focus();
eval("form1.Text1" + i + (x-1)).select();
}
else if(i==StartY+1)
{
C.innerHTML = '<input type="text" id="Text1' + i + (x-1) + '" style="border: 1 solid #FFFFFF; padding: 0; HEIGHT: 13px;font-size: 13px" onkeydown="setCell2(this.parentElement, this)" onfocus="CursorToLast()">';
C.setAttribute("id","Cell" + i + (x-1));
C.attachEvent("ondblclick",new Function('editCell1(Cell' + i + (x-1) + ')'));
NowInput = eval("form1.Text1" + i + (x-1));
NowType = "COL";
CanEdit = false;
}
else
{
C.innerHTML = " "
}
}
for(i=x;i<tab1.rows[0].cells.length;i++)
{
TempNum++;
tab1.rows[0].cells[i].innerHTML = TempNum;
tab1.rows[0].cells[i].setAttribute("align","center");
tab1.rows[0].cells[i].bgColor = tab1.rows[0].cells[x-1].bgColor;
}
tab1.rows[0].cells[x].attachEvent("ondblclick",SetColNum);
//记录添加的列号
TempArray = form1.AddedCol.value.split(",")
TempStr = "";
for(i=0;i<TempArray.length;i++)
{
if(parseInt(TempArray[i])>=parseInt(x))
{
TempArray[i] = parseInt(TempArray[i]) + 1;
}
if(TempStr =="")
{
TempStr = TempArray[i];
}
else
{
TempStr = TempStr + "," + TempArray[i];
}
}
form1.AddedCol.value = TempStr;
if((form1.AddedCol.value=="")||(form1.AddedCol.value==null))
{
form1.AddedCol.value = x;
}
else
{
form1.AddedCol.value = form1.AddedCol.value + "," + x;
}
}//----------------------------------------------------------------------------------
{
if(!CanEdit)
{
alert("现在不能进行派生,请先设置和保存当前计算方法");
return;
}
if(form1.Col.value==""||form1.Col.value==null)
{
return;
}
if(form1.Row.value==""||form1.Row.value==null)
{
return;
}
var x = form1.Col.value;
var y = form1.Row.value;
var R = tab1.insertRow(y);
var C ;
var StartX = form1.RowValue.value.split("|---|").length;
var StartY = form1.ColValue.value.split("|---|").length;
var TempNum = parseInt(tab1.rows[y-1].cells[0].innerHTML);
var TempStr,TempArray;
for(i=0;i<tab1.rows[y-1].cells.length;i++)
{
C = R.insertCell(i);
C.noWrap="noWrap";
C.bgColor = "#EAF4E3";
if(i<StartX)
{
C.innerHTML = tab1.rows[y-1].cells[i].innerHTML;
if(i>0)
{
C.setAttribute("id","Cell" + (y-1) + i);
C.attachEvent("ondblclick",new Function('editCell(Cell' + (y-1) + i + ')'));
}
}
else if(i==StartX)
{
C.innerHTML = '<input type="text" id="Text1' +(y-1) + i +'" style="border: 1 solid #FFFFFF; padding: 0; HEIGHT: 13px;font-size: 13px" ONBLUR="setCell1(this.parentElement, this)">';
C.setAttribute("id","Cell" + (y-1) + i);
C.attachEvent("ondblclick",new Function('editCell(Cell' + (y-1) + i + ')'));
eval("form1.Text1" + (y-1) + i).focus();
eval("form1.Text1" + (y-1) + i).select();
}
else if(i==StartX+1)
{
C.innerHTML = '<input type="text" id="Text1' +(y-1) + i +'" style="border: 1 solid #FFFFFF; padding: 0; HEIGHT: 13px;font-size: 13px" onkeydown="setCell2(this.parentElement, this)" onfocus="CursorToLast()">';
C.setAttribute("id","Cell" + (y-1) + i);
C.attachEvent("ondblclick",new Function('editCell1(Cell' + (y-1) + i + ')'));
NowInput = eval("form1.Text1" + (y-1) + i);
NowType = "ROW";
CanEdit = false;
}
else
{
C.innerHTML = " "
}
}
for(i=y;i<tab1.rows.length;i++)
{
TempNum++;
tab1.rows[i].cells[0].innerHTML = TempNum;
tab1.rows[i].cells[0].setAttribute("align","center");
tab1.rows[i].cells[0].bgColor = tab1.rows[y-1].cells[0].bgColor;
}
tab1.rows[y].cells[0].attachEvent("ondblclick",SetRowNum);
//记录添加的列号
TempArray = form1.AddedRow.value.split(",")
TempStr = "";
for(i=0;i<TempArray.length;i++)
{
if(parseInt(TempArray[i])>=parseInt(y))
{
TempArray[i] = parseInt(TempArray[i]) + 1;
}
if(TempStr =="")
{
TempStr = TempArray[i];
}
else
{
TempStr = TempStr + "," + TempArray[i];
}
}
form1.AddedRow.value = TempStr;
if((form1.AddedRow.value=="")||(form1.AddedRow.value==null))
{
form1.AddedRow.value = y;
}
else
{
form1.AddedRow.value = form1.AddedRow.value + "," + y;
}
}
function DeleteRow()
{
var x = form1.Col.value;
var y = form1.Row.value;
//alert(form1.AddedRow.value);
//alert(y);
var tempStr1=","+form1.AddedRow.value + ",";
if(tempStr1.lastIndexOf(y-1)<0)
{
alert("本行不是您添加的,不能删除");
return;
}
tab1.rows[y-1].bgColor = "blue" ;
if(confirm("您将删除本行,是否继续?"))
{
tab1.deleteRow(y-1);
for(i=y-1;i<tab1.rows.length;i++)
{
tab1.rows[i].cells[0].innerText = parseInt(tab1.rows[i].cells[0].innerText)-1;
}
var tempArray = form1.AddedRow.value.split(",");
var tempStr = "";
for (i=0;i<tempArray.length;i++)
{
if(tempArray[i]==y-1)
{
continue;
}
if(tempArray[i]>y)
{
tempArray[i] = parseInt(tempArray[i])-1;
}
if (tempStr=="")
{
tempStr = tempArray[i]
}
else
{
tempStr = tempStr + "," + tempArray[i]
}
}
form1.AddedRow.value = tempStr;
CanEdit=true;
}
else
{
tab1.rows[y-1].bgColor = "" ;
}
}
function DeleteCol()
{
var x = form1.Col.value;
var y = form1.Row.value;
//alert(x + "," + y);
var tempStr1=","+form1.AddedCol.value + ",";
if(tempStr1.lastIndexOf(x-1)<0) //检查是否为派生得列,不是的话不能删除
{
alert("本列不是您添加的,不能删除");
return;
}
for (i=1;i<tab1.rows.length;i++) //设置选中的颜色
{
tab1.rows[i].cells[x-1].bgColor = "blue" ;
}
//alert(form1.AddedCol.value);
if(confirm("您将删除本列,是否继续?")) //提示用户确认
{
for (i=0;i<tab1.rows.length;i++) //开始删除
{
tab1.rows[i].deleteCell(x-1);
}
for(i=x-1;i<tab1.rows[0].cells.length;i++) //修改列号
{
tab1.rows[0].cells[i].innerText = parseInt(tab1.rows[0].cells[i].innerText)-1;
}
var tempArray = form1.AddedCol.value.split(","); //删除用户添加的列号记录并重新调整
var tempStr = "";
for (i=0;i<tempArray.length;i++)
{
if(tempArray[i]==x-1)
{
continue;
}
if(tempArray[i]>x)
{
tempArray[i] = parseInt(tempArray[i])-1;
}
if (tempStr=="")
{
tempStr = tempArray[i]
}
else
{
tempStr = tempStr + "," + tempArray[i]
}
}
form1.AddedCol.value = tempStr;
CanEdit=true;
}
else
{
for (i=1;i<tab1.rows.length;i++)
{
tab1.rows[i].cells[x-1].bgColor = "";
}
}
}function tabSelect(){
obj=window.event.srcElement;
form1.Col.value=obj.cellIndex+1;
form1.Row.value=obj.parentElement.rowIndex+1;
}//==================================================================================
//==================================================================================
function editCell (cell) {
if(!CanEdit)
{
alert("单元格现在不能编辑,请先设置和保存当前计算方法");
return;
}
OldUnit = cell.innerText;
obj=window.event.srcElement;
if (document.all) {
cell.innerHTML = '<INPUT ID="editCell" style="border: 1 solid #FFFFFF; padding: 0; HEIGHT: 13px;font-size: 13px" ONCLICK="event.cancelBubble = true;" ONCHANGE="setCell(this.parentElement, this)" ONBLUR="setCell(this.parentElement, this)" VALUE="' + cell.innerText + '" SIZE="' + (cell.innerText.length) + '">';
document.all.editCell.focus();
document.all.editCell.select();
}
else if (document.getElementById) {
cell.normalize();
var input = document.createElement('INPUT');
input.setAttribute('value', cell.firstChild.nodeValue);
input.setAttribute('size', cell.firstChild.nodeValue.length);
input.onchange = function (evt) {
setCell(this.parentNode, this.value); };
input.onclick = function (evt) {
evt.cancelBubble = true;
if (evt.stopPropagation)
evt.stopPropagation();
};
cell.replaceChild(input, cell.firstChild);
input.focus();
input.select();
}
}
//----------------------------------------------------------------------------------
//计算方法单元格的编辑函数
if(!CanEdit)
{
alert("单元格现在不能编辑,请先设置和保存当前计算方法");
return;
}
if (document.all) {
cell.innerHTML = '<INPUT ID="editCell" style="border: 1 solid #FFFFFF; padding: 0; HEIGHT: 13px;font-size: 13px" ONCLICK="event.cancelBubble = true;" ONCHANGE="setCell2(this.parentElement, this)" onkeydown="setCell2(this.parentElement, this)" onfocus="CursorToLast()" VALUE="' + cell.innerText + '">';
document.all.editCell.focus();
document.all.editCell.select();
}
else if (document.getElementById) {
cell.normalize();
var input = document.createElement('INPUT');
input.setAttribute('value', cell.firstChild.nodeValue);
input.setAttribute('size', cell.firstChild.nodeValue.length);
input.onchange = function (evt) {
setCell(this.parentNode, this.value); };
input.onclick = function (evt) {
evt.cancelBubble = true;
if (evt.stopPropagation)
evt.stopPropagation();
};
cell.replaceChild(input, cell.firstChild);
input.focus();
input.select();
}
NowInput = eval("form1." + "editCell");
CanEdit = false;
}//----------------------------------------------------------------------------------
function setCell (cell, Ipt)
{
var value=
Ipt.value;if(value==""||value==null)
{
alert("请输入派生名称");
Ipt.focus();
Ipt.select();
return;
}
if (document.all)
{
cell.innerText = value;
}
else if (document.getElementById)
{
cell.replaceChild(document.createTextNode(value), cell.firstChild);
}
//NowInput.focus();
}
//----------------------------------------------------------------------------------
function setCell1 (cell, Ipt)
{
//派生的最后一个指标的设置,并使计算方法获得焦点
var value=
Ipt.value;if(value==""||value==null)
{
alert("请输入派生名称");
Ipt.focus();
Ipt.select();
return;
}
if (document.all)
{
cell.innerText = value;
}
else if (document.getElementById)
{
cell.replaceChild(document.createTextNode(value), cell.firstChild);
}
NowInput.focus();
}
//----------------------------------------------------------------------------------
function setCell2 (cell, Ipt)
{
//计算方法,回车保存
var gk=event.keyCode;
if (gk==13)
{
event.keyCode=9;
var value=
Ipt.value;if(value==""||value==null)
{
alert("请输入计算方法");
Ipt.focus();
Ipt.select();
return;
}
if (document.all)
{
cell.innerText = value;
}
else if (document.getElementById)
{
cell.replaceChild(document.createTextNode(value), cell.firstChild);
}
CanEdit = true;
}
//NowInput.focus();
}//==================================================================================
//==================================================================================function SetRowNum()
{
if((NowType == "ROW")||(NowInput.id=="editCell"))
{
obj=window.event.srcElement;
var Col = obj.cellIndex+1;
var Row= obj.parentElement.rowIndex+1;
var Str =
tab1.rows[Row-1].cells[Col-1].innerHTML;if((NowInput.value!="")&&(NowInput.value!=null))
{
NowInput.value =NowInput.value + Str;
}
else
{
NowInput.value =Str;
}
NowInput.focus();
}
}
function SetColNum()
{
//alert("aa");
if((NowType == "COL")||(NowInput.id=="editCell"))
{
obj=window.event.srcElement;
var Col = obj.cellIndex+1;
var Row= obj.parentElement.rowIndex+1;
var Str = tab1.rows[Row-1].cells[Col-1].innerHTML;
if((NowInput.value!="")&&(NowInput.value!=null))
{
NowInput.value =NowInput.value + Str;
}
else
{
NowInput.value =Str;
}
NowInput.focus();
}
}
function CursorToLast()
{
//使光标移到最后
var e = event.srcElement;
var r =e.createTextRange();
r.moveStart('character',e.value.length);
r.collapse(true);
r.select();
}
function SaveAdded()
{
//保存
var AddedRow = form1.AddedRow.value;
var AddedCol = form1.AddedCol.value;
var TempStr,TempArray;
var DataStartCol,DataStarRow
var RowUnit = "";
var RowCalCulate = "";
var ColUnit = "";
var ColCalCulate = "";
var aaa;
DataStarRow = parseInt(form1.StartRow.value)+2;
DataStartCol = parseInt(form1.StartCol.value)+2;
//alert(DataStarRow +","+ DataStartCol);
//保存行
//return;
if((AddedRow !="")&&(AddedRow != null))
{
TempArray = AddedRow.split(",");
TempArray = OrderBy(TempArray);
for(i=0;i<TempArray.length;i++)
{
TempStr =""
for(j=0;j<tab1.rows[TempArray[i]].cells.length;j++)
{
if(j==0)
{
continue;
}
if(j<DataStartCol)
{
TempStr = TempStr + "|" + tab1.rows[TempArray[i]].cells[j].innerText;
}
else
{
if((tab1.rows[TempArray[i]].cells[j].innerText!=" ")&&(tab1.rows[TempArray[i]].cells[j].innerText!=null))
{
if(RowCalCulate!="")
{
RowCalCulate = RowCalCulate + "@" + "ROW[" + TempArray[i] +"]:" +tab1.rows[TempArray[i]].cells[j].innerText;
}
else
{
RowCalCulate = "ROW[" + TempArray[i] +"]:" +tab1.rows[TempArray[i]].cells[j].innerText;
}
}
}
}
if(TempStr !="")
{
TempStr = TempStr.substr(1);
}
TempStr = "ROW[" + TempArray[i] + "]:" + TempStr;
if(RowUnit!="")
{
RowUnit = RowUnit + "@" + TempStr;
}
else
{
RowUnit = TempStr;
}
}
//alert(RowUnit + " " + RowCalCulate);
parent.form1.AddedRowUnit.value = RowUnit;
parent.form1.RowCalCulate.value = RowCalCulate;
}
//保存列
if((AddedCol != "")&&(AddedCol != null))
{
TempArray = AddedCol.split(",");
TempArray = OrderBy(TempArray);
for(i=0;i<TempArray.length;i++)
{
TempStr =""
for(j=0;j<tab1.rows.length;j++)
{
if(j==0)
{
continue;
}
if(j<DataStarRow)
{
TempStr = TempStr + "|" + tab1.rows[j].cells[TempArray[i]].innerText;
}
else
{
if((tab1.rows[j].cells[TempArray[i]].innerText!=" ")&&(tab1.rows[j].cells[TempArray[i]].innerText!=null))
{
if(ColCalCulate!="")
{
ColCalCulate = ColCalCulate + "@" + "COL[" + TempArray[i] +"]:" + tab1.rows[j].cells[TempArray[i]].innerText;
}
else
{
ColCalCulate = "COL[" + TempArray[i] +"]:" + tab1.rows[j].cells[TempArray[i]].innerText;
}
}
}
}
if(TempStr !="")
{
TempStr = TempStr.substr(1);
}
TempStr = "COL[" + TempArray[i] + "]:" + TempStr;
if(ColUnit!="")
{
ColUnit = ColUnit + "@" + TempStr;
}
else
{
ColUnit = TempStr;
}
}
// alert(ColUnit + " " + ColCalCulate);
parent.form1.AddedColUnit.value = ColUnit;
parent.form1.ColCalCulate.value = ColCalCulate;
}
parent.form1.submit();
}
function OrderBy(SourceArray)
{
var temparray = SourceArray;
var t,p,i,j;
for(i=0;i<temparray.length;i++)
{
p = i;
for(j=i;j<temparray.length;j++)
{
if(parseInt(temparray[j])<parseInt(temparray[p]))
{
p = j;
}
}
t = temparray[i];
temparray[i] = temparray[p];
temparray[p] = t;
}
return temparray;
}
function NotSave()
{
//parent.Layer1.style.visibility='hidden';
parent.document.all.ps.width=0;
parent.document.all.ps.height=0;
parent.ShowTable.style.visibility='visible';
parent.document.body.style.overflow='auto'; parent.form1.AddedRowUnit.value = "";
parent.form1.RowCalCulate.value = "";
parent.form1.AddedColUnit.value = "";
parent.form1.ColCalCulate.value = "";
}
function CalculateCell()
{
Cell.style.visibility='visible';
//Cell.innerHTML="<TEXTAREA style='WIDTH: 200px; HEIGHT: 200px' name=TEXTAREA1 rows=10 cols=23></TEXTAREA>";
}
//==================================================================================
//==================================================================================
</script>