做这个例子,主要是我在工作当中遇到一个主表的明细表的操作计算问题,也用了不少时间。操作计算的方式是这样的。

这个功能是在.net语言当中实现,操作过程当点击添加行,添加第一行时,当我输入金额的时候,累积支付=金额,当点击添加行时,如果是第二行,输入金额,累积支付=第二行金额+第一行的累积支付,如果是第三行,输入金额,累积支付=第三行金额+第二行的累积支付,如图。

这个其实最主要的是控件的值获取问题,当金额控件的光标移开时,如果是第一行就直接赋值就ok,但是在第二行。。。。第n行时如何将最后一个文本框累计支付=第一行金额+第n行的累计支付,于是我就想如何在js里面可以在我移开最后一个金额文本框的时候获取前面所有的控件id,然后在js里面分割获取document.getElementById("xx").value,具体js如下

//objJE为金额,objLJ为累计支付字段,objBL为累计支付比例
function _doCal(objJE, objLJ, objBL) {
var je = 0; //当数据为第一行的时候
if (objJE.indexOf(";") == -1) {
if (document.getElementById(objJE).value != "") {
je = parseFloat(document.getElementById(objJE).value);
}
} else { var arrJE = objJE.split(";");
for (var i = 0; i < arrJE.length; i++) {
if (document.getElementById(arrJE[i]).value != "") {
je += parseFloat(document.getElementById(arrJE[i]).value);
}
}
}
//获取金额
document.getElementById(objLJ).value = je; //变更调整总价
var _htgbhzj = document.getElementById("<%=txt_bgzj.ClientID %>").value;
// 总支付比例 = 累计支付额 / 变更调整总价
document.getElementById(objBL).value = (je / _htgbhzj).toString(); }

  做到这里的话,接下来计算就容易了。

例子源码

主表当中明细表字段的金额计算问题,操作控件是在gridview+aspnetPage的更多相关文章

  1. 新浪微博客户端(23)-计算Cell内控件的frame

    DJStatusCellFrame.m #import "DJStatusCellFrame.h" #import "DJStatus.h" #import & ...

  2. Microsoft Dynamics CRM 增删改子表汇总子表的某个字段到主表的某个字段(通用插件)

    背景 经常有某个汇总子表的数量到主表的总数量,或者汇总子表的总价到主表的总价这种需求. 传统的做法: 1.就是为每个子表实体单独写成一个插件,但是这样不好复用. 2.主表的汇总字段是汇总货币类型,但是 ...

  3. js中进行金额计算parseFloat

    在js中进行以元为单位进行金额计算时 使用parseFloat会产生精度问题var price = 10.99;var quantity = 7;var needPay = parseFloat(pr ...

  4. 关于DEDECMS自定义模型当中添加自定义字段后在后台添加内容后不显示解决方案

    用DEDECMS的时间也不长,最近在做一个站时,就遇到了这个问题(自定义字段在后台不显示内容)中添加自定义字段后在后台编辑打开后发现我之前添加的内容不显示,如果是只是看看不单击确定的话,那么在前台数据 ...

  5. dedecms(织梦)自定义表单后台显示不全 自定义模型当中添加自定义字段后在后台添加内容后不显示解决方案

    我们常用dedecms 自定义表单做留言功能.但是偶尔会遇到这样一个问题,就是 在前台提交表单后..后天显示不全.特别是中文字符  都不会显示, 比如下图: 这是因为  如果你织梦是gbk的话那就对了 ...

  6. django模型中, 外键字段使用to_filed属性 指定到所关联主表的某个字段

    在django项目的开发过程中,在设计模型时一开始将主键设置成了一个自定义的字段,但是在创建搜索索引时却发现必须要存在一个id的字段,并且为主键(不知道是否是项目一开始就这样配置的原因), 但此时表结 ...

  7. js中进行金额计算

    js中进行金额计算parseFloat   在js中进行以元为单位进行金额计算时 使用parseFloat会产生精度问题var price = 10.99;var quantity = 7;var n ...

  8. js中进行金额计算 parseFloat 会产生精度问题

    在js中进行以元为单位进行金额计算时 使用parseFloat会产生精度问题 var price = 10.99;var quantity = 7;var needPay = parseFloat(p ...

  9. JAVA中高精度金额计算

    一般java代码中遇到高精度金额计算,日常使用bigDecimal类型. 在使用BigDecimal类来进行计算的时候,主要分为以下步骤: 1.用float或者double变量构建BigDecimal ...

随机推荐

  1. opencv:直方图操作

    示例程序: #include <opencv.hpp> using namespace cv; using namespace std; int main() { Mat src, dst ...

  2. jquery制作选项卡

    思路:点击按钮后,先让所有的按钮的class属性都为“”,所有的div的display样式都为none:再让当前被点击按钮的class属性为active,以及所对应的div的display样式为blo ...

  3. 自定义音频条形图--p52

    package com.zzw.qunyingzhuan2; import android.content.Context; import android.graphics.Canvas; impor ...

  4. 网络之Call Phone、Web、SMS、Email

    1. 准备工作:导入信息UI库 #import <MessageUI/MessageUI.h>2. Call Phone 方式一: 拼接字符串 注意开头是tel: 这种方式打电话回不到原来 ...

  5. postgresql recovery.conf改变需要重启吗

    之前在研究pgpoll时,发现trigger_file参数指定的文件存在后,会自动将standby节点提升为可写节点.不需要手动执行pg_ctl promote,但是这个时间一般有延迟,因为进程会定期 ...

  6. hashlib摘要算法模块,logging日志,configparser配置文件模块

    一.hashlib模块(摘要算法模块) 1.算法介绍 Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等. 什么是摘要算法呢? 摘要算法又称哈希算法.散列算法.它通过一个函数,把 ...

  7. (九)java位运算符

    位运算符 &(与),|(或),^(异或),~(取反),<<(左移),>>(右移),>>>(无符号右移)         1:为true,0为false ...

  8. 【学习】Git和Github菜鸟入门

    Git 是一个开源的分布式版本控制系统,用以有效.高速的处理从很小到非常大的项目版本管理. 目录(自己创建吧) 生成ssh密钥:ssh-keygen -t rsa -C "邮箱" ...

  9. 21天学通C++_Day2

    继续学习,今天满课,相对学习内容较少,下面罗列内容: 0.常量 ▪字面常量: ▪使用关键字const声明的常量,const double Pi = 22.0/7; //后面有分号,跟定义变量一样 ▪使 ...

  10. bzoj 4545 DQS 的 Trie

    老年选手不会 SAM 也不会 LCT 系列 我的数据结构好菜啊 qnq 一颗 Trie 树,$q$ 次询问,每次可以是: 1.求这棵树上本质不同的子串数量 2.插入一个子树,保证总大小不超过 $100 ...