在线急等!JS 循环计算 上期余额+当期应收-当期已收=当期余额 表格数据循环

manlink227 2017-02-23 09:27:17
jquery JS 循环计算 上期余额+当期应收-当期已收=当期余额 表格数据循环
也不一定要用JS 只要实现结果就OK 源码ASP的

<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td align="center" valign="top"><div class="main-1"><table width="100%" border="0" cellpadding="1" cellspacing="1" bgcolor="#CCCCCC" id="table">
<tr>
<td height="40" align="center" bgcolor="#f9f9f9">单据号码</td>
<td height="40" align="center" bgcolor="#f9f9f9">应付金额</td>
<td height="40" align="center" bgcolor="#f9f9f9">已付金额</td>
<td height="40" align="center" bgcolor="#f9f9f9">余额</td>
</tr>

<tr>
<td bgcolor="#FFFFFF"><a href="ff3-1.asp?id=980"><font color="#FF0000">XSD2016110974</font></a></td>
<td bgcolor="#FFFFFF">32916.75</td>
<td bgcolor="#FFFFFF"></td>
<td bgcolor="#FFFFFF"><span id="span1">32916.75</span></td>
</tr>

<tr>
<td bgcolor="#FFFFFF"><a href="ff3-1.asp?id=934"><font color="#FF0000">XSD2016110930</font></a></td>
<td bgcolor="#FFFFFF">930.00</td>
<td bgcolor="#FFFFFF"></td>
<td bgcolor="#FFFFFF"><span id="span2">33846.75</span></td>
</tr>

<tr>
<td bgcolor="#FFFFFF"><a href="ff3-1.asp?id=1243"><font color="#FF0000">XSD2016111237</font></a></td>
<td bgcolor="#FFFFFF">2975.00</td>
<td bgcolor="#FFFFFF"></td>
<td bgcolor="#FFFFFF"><span id="span3">3905</span></td>
</tr>

<tr>
<td bgcolor="#FFFFFF"><a href="ff3-1.asp?id=1588"><font color="#FF0000">XSD2016111581</font></a></td>
<td bgcolor="#FFFFFF">31996.50</td>
<td bgcolor="#FFFFFF"></td>
<td bgcolor="#FFFFFF"><span id="span4">34971.5</span></td>
</tr>

<tr>
<td bgcolor="#FFFFFF">SK-2016-11-1196</td>
<td bgcolor="#FFFFFF"><font color="#FF0000">收到佳得塑胶货款</font></td>
<td bgcolor="#FFFFFF">348984.5</td>
<td bgcolor="#FFFFFF"><span id="span5">-346009.5</span></td>
</tr>

<tr>
<td bgcolor="#FFFFFF"><a href="ff3-1.asp?id=2056"><font color="#FF0000">XSD2016112048</font></a></td>
<td bgcolor="#FFFFFF">32056.75</td>
<td bgcolor="#FFFFFF"></td>
<td bgcolor="#FFFFFF"><span id="span6">33489.25</span></td>
</tr>

<tr>
<td bgcolor="#FFFFFF"><a href="ff3-1.asp?id=2340"><font color="#FF0000">XSD2016112332</font></a></td>
<td bgcolor="#FFFFFF">12430.00</td>
<td bgcolor="#FFFFFF"></td>
<td bgcolor="#FFFFFF"><span id="span7">44486.75</span></td>
</tr>

<tr>
<td bgcolor="#FFFFFF">SK-2016-11-1706</td>
<td bgcolor="#FFFFFF"><font color="#FF0000">收到美明塑胶货款</font></td>
<td bgcolor="#FFFFFF">70152</td>
<td bgcolor="#FFFFFF"><span id="span8">-38095.25</span></td>
</tr>

<tr>
<td bgcolor="#FFFFFF"><a href="ff3-1.asp?id=2681"><font color="#FF0000">XSD2016112671</font></a></td>
<td bgcolor="#FFFFFF">15562.50</td>
<td bgcolor="#FFFFFF"></td>
<td bgcolor="#FFFFFF"><span id="span9">17297</span></td>
</tr>
...全文
207 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
manlink227 2017-02-25
  • 打赏
  • 举报
回复
calcTotal(document.getElementById('table'),1); calcTotal(document.getElementById('table'),2); 统计第一列的结果出不来啦。是哪里冲突?
manlink227 2017-02-25
  • 打赏
  • 举报
回复
看错。头都大了 OK 结贴。
manlink227 2017-02-25
  • 打赏
  • 举报
回复
页面完整代码:
<table width="100%" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td><table width="100%" border="0" cellspacing="0" cellpadding="0">
      <tr>
        <td width="35%" align="right"><img src="1_files/ZT_YF.gif" width="59" height="48"></td>
        <td><span style="font-size: 1.5em;
    line-height: 3em;
    color: #111;
    text-align: center;
    height: 3em;
    padding-top: 1em;
    padding-bottom: 1em;">应付明细帐查询</span></td>
        </tr>
      </table></td>
  </tr>
  </table>

<table width="100%" border="0" cellpadding="0" cellspacing="0">
  <tr>
    <td align="center" valign="top"><div class="main-1"><table width="100%" border="0" cellpadding="1" cellspacing="1" bgcolor="#CCCCCC" id="table">
      <tr>
        <td height="40" align="center" bgcolor="#f9f9f9">单据号码</td>
        <td height="40" align="center" bgcolor="#f9f9f9">应付金额</td>
        <td height="40" align="center" bgcolor="#f9f9f9">已付金额</td>
        <td align="center" bgcolor="#f9f9f9">余额</td>
        <td height="40" align="center" bgcolor="#f9f9f9"> </td>
      </tr> 
       
        <tr>
        <td bgcolor="#FFFFFF"><a href="ff3-1.asp?id=980"><font color="#FF0000">XSD2016110974</font></a></td>
        <td bgcolor="#FFFFFF"><span id="span0">32916.75</span></td>
        <td bgcolor="#FFFFFF"></td>
        <td bgcolor="#FFFFFF"><span id="span1"></span></td>
        <td bgcolor="#FFFFFF"></td>
        </tr>
       
        <tr>
        <td bgcolor="#FFFFFF"><a href="ff3-1.asp?id=934"><font color="#FF0000">XSD2016110930</font></a></td>
        <td bgcolor="#FFFFFF"><span id="span1">930.00</span></td>
        <td bgcolor="#FFFFFF"></td>
        <td bgcolor="#FFFFFF"><span id="span2"></span></td>
        <td bgcolor="#FFFFFF"></td>
        </tr>
       
        <tr>
        <td bgcolor="#FFFFFF"><a href="ff3-1.asp?id=1243"><font color="#FF0000">XSD2016111237</font></a></td>
        <td bgcolor="#FFFFFF"><span id="span2">2975.00</span></td>
        <td bgcolor="#FFFFFF"></td>
        <td bgcolor="#FFFFFF"><span id="span3"></span></td>
        <td bgcolor="#FFFFFF"></td>
        </tr>
       
        <tr>
        <td bgcolor="#FFFFFF"><a href="ff3-1.asp?id=1588"><font color="#FF0000">XSD2016111581</font></a></td>
        <td bgcolor="#FFFFFF"><span id="span3">31996.50</span></td>
        <td bgcolor="#FFFFFF"></td>
        <td bgcolor="#FFFFFF"><span id="span4"></span></td>
        <td bgcolor="#FFFFFF"></td>
        </tr>
       
        <tr>
        <td bgcolor="#FFFFFF">SK-2016-11-1196</td>
        <td bgcolor="#FFFFFF">0</td>
        <td bgcolor="#FFFFFF">348984.5</td>
        <td bgcolor="#FFFFFF"><span id="span5"></span></td>
        <td bgcolor="#FFFFFF"><font color="#FF0000">收到佳得塑胶货款</font></td>
        </tr>
       
        <tr>
        <td bgcolor="#FFFFFF"><a href="ff3-1.asp?id=2056"><font color="#FF0000">XSD2016112048</font></a></td>
        <td bgcolor="#FFFFFF"><span id="span5">32056.75</span></td>
        <td bgcolor="#FFFFFF"></td>
        <td bgcolor="#FFFFFF"><span id="span6"></span></td>
        <td bgcolor="#FFFFFF"></td>
        </tr>
       
        <tr>
        <td bgcolor="#FFFFFF"><a href="ff3-1.asp?id=2340"><font color="#FF0000">XSD2016112332</font></a></td>
        <td bgcolor="#FFFFFF"><span id="span6">12430.00</span></td>
        <td bgcolor="#FFFFFF"></td>
        <td bgcolor="#FFFFFF"><span id="span7"></span></td>
        <td bgcolor="#FFFFFF"></td>
        </tr>
       
        <tr>
        <td bgcolor="#FFFFFF">SK-2016-11-1706</td>
        <td bgcolor="#FFFFFF">0</td>
        <td bgcolor="#FFFFFF">70152</td>
        <td bgcolor="#FFFFFF"><span id="span8"></span></td>
        <td bgcolor="#FFFFFF"><font color="#FF0000">收到美明塑胶货款</font></td>
        </tr>
       
        <tr>
        <td bgcolor="#FFFFFF"><a href="ff3-1.asp?id=2681"><font color="#FF0000">XSD2016112671</font></a></td>
        <td bgcolor="#FFFFFF"><span id="span8">15562.50</span></td>
        <td bgcolor="#FFFFFF"></td>
        <td bgcolor="#FFFFFF"><span id="span9"></span></td>
        <td bgcolor="#FFFFFF"></td>
        </tr>
       
        <tr>
        <td bgcolor="#FFFFFF"><a href="ff3-1.asp?id=2794"><font color="#FF0000">XSD2016112783</font></a></td>
        <td bgcolor="#FFFFFF"><span id="span9">32537.50</span></td>
        <td bgcolor="#FFFFFF"></td>
        <td bgcolor="#FFFFFF"><span id="span10"></span></td>
        <td bgcolor="#FFFFFF"></td>
        </tr>
       
        <tr>
        <td bgcolor="#FFFFFF"><a href="ff3-1.asp?id=3091"><font color="#FF0000">XSD2016113080</font></a></td>
        <td bgcolor="#FFFFFF"><span id="span10">21550.00</span></td>
        <td bgcolor="#FFFFFF"></td>
        <td bgcolor="#FFFFFF"><span id="span11"></span></td>
        <td bgcolor="#FFFFFF"></td>
        </tr>
       
        <tr>
        <td bgcolor="#FFFFFF"><a href="ff3-1.asp?id=3417"><font color="#FF0000">XSD2016113406</font></a></td>
        <td bgcolor="#FFFFFF"><span id="span11">31532.00</span></td>
        <td bgcolor="#FFFFFF"></td>
        <td bgcolor="#FFFFFF"><span id="span12"></span></td>
        <td bgcolor="#FFFFFF"></td>
        </tr>
       
        <tr>
        <td bgcolor="#FFFFFF"><a href="ff3-1.asp?id=3778"><font color="#FF0000">XSD2016113765</font></a></td>
        <td bgcolor="#FFFFFF"><span id="span12">56.85</span></td>
        <td bgcolor="#FFFFFF"></td>
        <td bgcolor="#FFFFFF"><span id="span13"></span></td>
        <td bgcolor="#FFFFFF"></td>
        </tr>
       
        <tr>
        <td bgcolor="#FFFFFF">SK-2016-11-2505</td>
        <td bgcolor="#FFFFFF">0</td>
        <td bgcolor="#FFFFFF">17595</td>
        <td bgcolor="#FFFFFF"><span id="span14"></span></td>
        <td bgcolor="#FFFFFF"><font color="#FF0000">收到旭晨塑胶货款</font></td>
        </tr>
       
        <tr>
        <td bgcolor="#FFFFFF"><a href="ff3-1.asp?id=4252"><font color="#FF0000">XSD2016114239</font></a></td>
        <td bgcolor="#FFFFFF"><span id="span14">8261.25</span></td>
        <td bgcolor="#FFFFFF"></td>
        <td bgcolor="#FFFFFF"><span id="span15"></span></td>
        <td bgcolor="#FFFFFF"></td>
        </tr>
       
        <tr>
        <td bgcolor="#FFFFFF"><a href="ff3-1.asp?id=4307"><font color="#FF0000">XSD2016114294</font></a></td>
        <td bgcolor="#FFFFFF"><span id="span15">7320.00</span></td>
        <td bgcolor="#FFFFFF"></td>
        <td bgcolor="#FFFFFF"><span id="span16"></span></td>
        <td bgcolor="#FFFFFF"></td>
        </tr>
      <tr>
        <td height="40" align="center" bgcolor="#f9f9f9">合计</td>
        <td bgcolor="#f9f9f9"> </td>
        <td bgcolor="#f9f9f9"> </td>
        <td bgcolor="#f9f9f9"></td>
        <td bgcolor="#f9f9f9"> </td>
      </tr>
      
    </table></div></td>
  </tr>
  <tr>
    <td><table width="100%" border="0" cellspacing="0" cellpadding="0">
      <tr>
        <td align="right"><a href="yf22.asp?yyid3="><span class="c-btn3">重新查询</span></a></td>
        <td align="left"><a href="login.asp"><span class="c-btn3">返回首页</span></a></td>
      </tr>
    </table></td>
  </tr>
</table>
<script>
    function removeHTML(td) { return td.innerHTML.replace(/<[^>]+>/g, '') }
    var rows = document.getElementById('table').rows;
    for (var i = 1, j = rows.length; i < j; i++) {
        if (i == 1) rows[i].cells[3].innerHTML = removeHTML(rows[i].cells[1]);
        else {
            rows[i].cells[3].innerHTML =
                parseFloat(removeHTML(rows[i - 1].cells[3])) +///上一行余额
                (parseFloat(removeHTML(rows[i].cells[1])) || 0) -//当前行应付
                (parseFloat(removeHTML(rows[i].cells[2])) || 0);//当前行已付
        }
    }
</script>
<script type="text/javascript">
    var calcTotal=function(table,column){//合计,表格对象,对哪一列进行合计,第一列从0开始
        var trs=table.getElementsByTagName('tr');
        var start=1,//忽略第一行的表头
            end=trs.length-1;//忽略最后合计的一行
        var total=0;
        for(var i=start;i<end;i++){
            var td=trs[i].getElementsByTagName('td')[column];
            var t=parseFloat(td.innerHTML);
            if(t)total+=t;
        }
        trs[end].getElementsByTagName('td')[column].innerHTML=Number(total.toFixed(2));
    };
    calcTotal(document.getElementById('table'),1);
	calcTotal(document.getElementById('table'),2);

</script>

  • 打赏
  • 举报
回复
哪里不对了,就是你那个规律算的,保留2位自己toFixed下 function removeHTML(td) { return td.innerHTML.replace(/<[^>]+>/g, '') } var rows = document.getElementById('table').rows; for (var i = 1, j = rows.length; i < j; i++) { if (i == 1) rows[i].cells[3].innerHTML = removeHTML(rows[i].cells[1]); else { rows[i].cells[3].innerHTML = ( parseFloat(removeHTML(rows[i - 1].cells[3])) +///上一行余额 (parseFloat(removeHTML(rows[i].cells[1])) || 0) -//当前行应付 (parseFloat(removeHTML(rows[i].cells[2])) || 0)//当前行已付 ).toFixed(2) } }
manlink227 2017-02-25
  • 打赏
  • 举报
回复

后面 上期余额为负数时,再减去本期已付 这里不对。
manlink227 2017-02-25
  • 打赏
  • 举报
回复
非常好,OK了。还有一个小问题:在后面会出现-57354.899999999994 如何只保留两位小数呢?
  • 打赏
  • 举报
回复
引用 6 楼 u013871543 的回复:
第一个图上的余额数据是不对的,我想实现如下图 示的效果,自动计算得当期的余额。
按照你的这个算法用下面的代码
<table width="100%" border="0" cellpadding="1" cellspacing="1" bgcolor="#CCCCCC" id="table">
    <tr>
        <td height="40" align="center" bgcolor="#f9f9f9">单据号码</td>
        <td height="40" align="center" bgcolor="#f9f9f9">应付金额</td>
        <td height="40" align="center" bgcolor="#f9f9f9">已付金额</td>
        <td height="40" align="center" bgcolor="#f9f9f9">余额</td>
    </tr>

    <tr>
        <td bgcolor="#FFFFFF"><a href="ff3-1.asp?id=980"><font color="#FF0000">XSD2016110974</font></a></td>
        <td bgcolor="#FFFFFF">32916.75</td>
        <td bgcolor="#FFFFFF"></td>
        <td bgcolor="#FFFFFF"><span id="span1"></span></td>
    </tr>

    <tr>
        <td bgcolor="#FFFFFF"><a href="ff3-1.asp?id=934"><font color="#FF0000">XSD2016110930</font></a></td>
        <td bgcolor="#FFFFFF">930.00</td>
        <td bgcolor="#FFFFFF"></td>
        <td bgcolor="#FFFFFF"><span id="span2"></span></td>
    </tr>

    <tr>
        <td bgcolor="#FFFFFF"><a href="ff3-1.asp?id=1243"><font color="#FF0000">XSD2016111237</font></a></td>
        <td bgcolor="#FFFFFF">2975.00</td>
        <td bgcolor="#FFFFFF"></td>
        <td bgcolor="#FFFFFF"><span id="span3"></span></td>
    </tr>

    <tr>
        <td bgcolor="#FFFFFF"><a href="ff3-1.asp?id=1588"><font color="#FF0000">XSD2016111581</font></a></td>
        <td bgcolor="#FFFFFF">31996.50</td>
        <td bgcolor="#FFFFFF"></td>
        <td bgcolor="#FFFFFF"><span id="span4"></span></td>
    </tr>

    <tr>
        <td bgcolor="#FFFFFF">SK-2016-11-1196</td>
        <td bgcolor="#FFFFFF"><font color="#FF0000">收到佳得塑胶货款</font></td>
        <td bgcolor="#FFFFFF">348984.5</td>
        <td bgcolor="#FFFFFF"><span id="span5"></span></td>
    </tr>

    <tr>
        <td bgcolor="#FFFFFF"><a href="ff3-1.asp?id=2056"><font color="#FF0000">XSD2016112048</font></a></td>
        <td bgcolor="#FFFFFF">32056.75</td>
        <td bgcolor="#FFFFFF"></td>
        <td bgcolor="#FFFFFF"><span id="span6"></span></td>
    </tr>

    <tr>
        <td bgcolor="#FFFFFF"><a href="ff3-1.asp?id=2340"><font color="#FF0000">XSD2016112332</font></a></td>
        <td bgcolor="#FFFFFF">12430.00</td>
        <td bgcolor="#FFFFFF"></td>
        <td bgcolor="#FFFFFF"><span id="span7"></span></td>
    </tr>

    <tr>
        <td bgcolor="#FFFFFF">SK-2016-11-1706</td>
        <td bgcolor="#FFFFFF"><font color="#FF0000">收到美明塑胶货款</font></td>
        <td bgcolor="#FFFFFF">70152</td>
        <td bgcolor="#FFFFFF"><span id="span8"></span></td>
    </tr>

    <tr>
        <td bgcolor="#FFFFFF"><a href="ff3-1.asp?id=2681"><font color="#FF0000">XSD2016112671</font></a></td>
        <td bgcolor="#FFFFFF">15562.50</td>
        <td bgcolor="#FFFFFF"></td>
        <td bgcolor="#FFFFFF"><span id="span9"></span></td>
    </tr>
</table>
<script>
    function removeHTML(td) { return td.innerHTML.replace(/<[^>]+>/g, '') }
    var rows = document.getElementById('table').rows;
    for (var i = 1, j = rows.length; i < j; i++) {
        if (i == 1) rows[i].cells[3].innerHTML = removeHTML(rows[i].cells[1]);
        else {
            rows[i].cells[3].innerHTML =
                parseFloat(removeHTML(rows[i - 1].cells[3])) +///上一行余额
                (parseFloat(removeHTML(rows[i].cells[1])) || 0) -//当前行应付
                (parseFloat(removeHTML(rows[i].cells[2])) || 0);//当前行已付
        }
    }
</script>
manlink227 2017-02-25
  • 打赏
  • 举报
回复
目前的表是这样的: 怎样自动算出每期的余额?
manlink227 2017-02-25
  • 打赏
  • 举报
回复
第一个图上的余额数据是不对的,我想实现如下图 示的效果,自动计算得当期的余额。
  • 打赏
  • 举报
回复
你原始数据呢?不是已经计算好了?而且你数据格式和excel的都不一样,里面插入了SK-2016-11-1196这种行后续的行重新开始还是什么也没说,重新开始计算余额和应付金额应该一样才对,但是又不一样
manlink227 2017-02-24
  • 打赏
  • 举报
回复
没有大牛帮忙么?
manlink227 2017-02-23
  • 打赏
  • 举报
回复
列出所有结果之后 再用JS计算余额应该就可以了。对JS不熟悉。
manlink227 2017-02-23
  • 打赏
  • 举报
回复
像Excel里一样:C3=C2+A3-B3
二月十六 2017-02-23
  • 打赏
  • 举报
回复
表格里的数据怎么相加相减,表格跟公式对不上

87,993

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧