js 横向排列数据并汇总

来源:互联网 发布:安卓换ip软件 编辑:程序博客网 时间:2024/05/17 03:46

 

<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();

        }
    }
}