您的位置:首页 > Web前端 > JavaScript

js 横向排列数据并汇总

2010-08-23 10:13 190 查看
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script language ="javascript" type="text/javascript" src="../JScript/PrintFw.js"></script>
<style type ="text/css">
#print
{
border:1px solid black;
border-collapse:collapse;
border-width:1px 1px 1px 1px;
font-size:6pt;
width:90%;
align:center;
height:8px;
cellpadding:0px;
color:black;
padding:0px 0px 0px 0px;

}
#print td
{
border-right: 1px solid black;
border-bottom: 1px solid black;
background: #fff;
font-size:9pt;
padding: 6px 6px 6px 12px;
color: #4f6b72;
height:8px;
cellpadding:0px;
color:black;

}
#mytable
{
border:1px solid black;
border-collapse:collapse;
border-width:1px 1px 1px 1px;
font-size:6pt;
width:90%;
align:center;
height:8px;
cellpadding:0px;
color:black;
padding:0px 0px 0px 0px;

}
#mytable td
{
border-right: 1px solid black;
border-bottom: 1px solid black;
background: #fff;
font-size:9pt;
padding: 1px 1px 1px 1px;
color: #4f6b72;
height:8px;
cellpadding:0px;
color:black;

}
#mytable thead td
{
border-right: 1px solid black;
border-bottom: 1px solid black;
background: #fff;
font-size:9pt;
padding: 1px 1px 1px 1px;
color: #4f6b72;
height:8px;
cellpadding:0px;
color:black;
valign:top;

}
</style>
</head>
<body>
<form id="form1" runat="server">
<div align="center" style="vertical-align:top">

<asp:Repeater ID="repeater" runat="server">
<HeaderTemplate>
<table id="mytable">

<thead>
<tr>
<td colspan="4" style="font-size: 12pt">
领料单</td>
</tr>
<tr>
<td>
系列号</td>
<td>
款号
</td>
<td>
颜色
</td>
<td>
数量
</td>
</tr>
</thead>
<tbody>
</tbody>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td>
<%#Eval("kp_series_code")%>
</td>
<td>
<%#Eval("kp_item_code")%>
</td>
<td>
<%#Eval("kp_item_color")%>
</td>
<td>
<%#Eval("kp_item_number")%>
</td>
</tr>
</ItemTemplate>
<FooterTemplate>
</tbody>

</table>

</FooterTemplate>
</asp:Repeater>
<table id="print" style="vertical-align :top" ></table>
<asp:HiddenField ID="hdcolumn" runat="server" />
<asp:HiddenField ID="hdrows" runat="server" />
<br />
<br />
</div>
</form>
</body>
</html>

js :

// JScript 文件
function printfw()
{
var tableobj=document.getElementById("print");
var header=document.getElementById("hdcolumn").value;
var row=document.getElementById("hdrows").value;
var column=new Array();
if(tableobj.innerText.replace(' ','')=="")
{
if(tableobj.rows.length>0)
{
tableobj.deleteRow(0);
}
var newtr=tableobj.insertRow();
column=header.split("¶");
for(var i=0;i<column.length+2;i++)
{
var cell=newtr.insertCell();
cell.innerText=column[i];

if(i==column.length-1)
{
cell.innerText='总用量';
cell.style.noWrap=true;

}

if(i==column.length)
{
cell.innerText='实发';

}
if(i==column.length+1)
{
cell.innerText='签收';

}

}

}
var rownum=row.split("Ä");
for(var r=0;r<rownum.length-1;r++)
{
var column=rownum[r].split("Ù");
var newrow=tableobj.insertRow();
for (var col=0;col<column.length+3;col++)
{
var newcell=newrow.insertCell();
newcell.innerText=column[col];

if(col==column.length)
{
newcell.innerText='';

}
if(col==column.length+1)
{

newcell.innerText='';

}

if(col==column.length+2)
{

newcell.innerText='';

}

}

}

}
function accountTotal()
{
var tableobj=document.getElementById("print");
var celllength=tableobj.rows[1].cells.length;
for(var i=1;i<tableobj.rows.length;i++)
{
for(var j=0;j<celllength;j++)
{
var total=0;
if(j>5&&j<celllength-2)
{
for(var k=6;k<j;k++)
{

total+=parseFloat(tableobj.rows[i].cells[k].innerText);
tableobj.rows[i].cells[celllength-3].innerText=total;

}

}

}

}

}
function decimaltest(num,v)
{
var vv = Math.pow(10,v);
return Math.round(num*vv)/vv;
}
function ChangNum()
{
var tableobj=document.getElementById("print");
var celllength=tableobj.rows[1].cells.length;
for(var i=1;i<tableobj.rows.length;i++)
{
for(var j=6;j<celllength-2;j++)
{

var p=parseFloat(tableobj.rows[i].cells[j].innerText)

if(p==0)
{
tableobj.rows[i].cells[j].innerText=0;

}
else{

var getnum=p.toString().substring(p.toString().indexOf(".")+1);
tableobj.rows[i].cells[j].innerText=(getnum>0)?p:decimaltest(p,0);
}

}
}
}
后台:

protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
DataTable dt = null;
if (Request["kp_sheet_no"] == null)
{
return;
}
else
{
dt=BomInfo.GetFwPrint(Request["kp_sheet_no"]);
}
string dstr = "";
string colname = "";
for (int i = 0;i<dt.Columns .Count;i++)
{
colname+=dt.Columns[i].ColumnName.ToString() + "¶";
}
for(int j = 0; j < dt.Rows.Count; j++)
{
int mycolumn = dt.Columns.Count;
for (int k = 0; k < mycolumn; k++)
{
string txtContent = dt.Rows[j][k].ToString().Trim();
if (k == mycolumn - 1)//当为最后一笔资料时改变分隔符
{
dstr += txtContent + "Ä";
}
else
{
dstr += txtContent + "Ù";
}
}

}
hdcolumn.Value=colname;
hdrows.Value=dstr;
ScriptManager.RegisterStartupScript(this.Page, typeof(Page), this.ClientID, "printfw();accountTotal();ChangNum();", true);
StringBuilder sb = new StringBuilder();
sb.Append(string.Format(" SELECT kp_item_code,kp_series_code,kp_item_color, kp_item_number FROM jb_fw_master_detail where kp_sheet_no='{0}'", Request["kp_sheet_no"]));
DbCommand cmd = GenericDataAccess.createcommand(sb .ToString ());
repeater.DataSource = GenericDataAccess.selectcommand(cmd);
repeater.DataBind();

}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: