查看: 4721|回复: 3

数据表计算问题求教

升级   0.08%

97

主题

137

回帖

8

积分

注册会员

Rank: 2

积分
8
发表于 2023-12-11 09:11:02 | 显示全部楼层 |阅读模式
如图所示 :需要实现的需求是 在表单的select组件“专业类型” 中设置change事件
1、通过选择“专业类型”,返回该专业的对应“专业提成系率”
2、然后表单中的“基本提成率”(假设为一个固定值)与“专业提成率”相加得到"提成小计"


代码运行后遇到的问题如下:
1、选择“专业类型”可以正确返回该专业类型对应的“专业提成系数”
2、“基本提成率”与返回值“专业提成率”进行相加时,得出“提成小计”的值有如下问题:“基本提成率”总是与上一次选择返回的“专业提成率”的值进行相加的

举例  :1、比如我打开页面后第1次选择“专业类型”为“基本提成”时(对应的返回值为0),得出的“提成小计”为 19 =19+0  ,这个看似正确的,但是可能并不正确,因为打开表单时,这里的默认值为0
             2、我2次重新选择“专业类型”为“安装审核”时(对应的返回值为10),得出的“提成小计”的值还是19 ,这里说明 返回值10并没有参与计算,参与计算的可能是上一次的返回值0
             3、我第3次重新选择“专业类型”为“钢筋审核”时(对应的返回值为11),得出的“提成小计”的值为29  ,这里证明参与计算的是上一次选择的返回值10

请教下管理大大 这个问题该如何解决呢
脚本代码:


var line = this.target.parentLine; //获取当前组件所在数据模板/数据表格的行(条目)对象
var zj_professionalType = line.getModule("zj_professionalType").getData(); //获取专业类型的值
var zj_basicCoefficient = line.getModule("zj_basicCoefficient").getData(); //获取基本提成率的值
var zj_professionalCoefficient = line.getModule("zj_professionalCoefficient").getData(); //获取专业提成率的值
var zj_totalCoefficient = line.getModule("zj_totalCoefficient").getData(); //获取提成率小计的值



switch (zj_professionalType) {
    case "基本提成":
           line.getModule("zj_professionalCoefficient").setData(0);
           line.getModule("zj_totalCoefficient").setData(parseFloat(zj_basicCoefficient) + parseFloat(zj_professionalCoefficient));
    break;
    case "安装审核":
           line.getModule("zj_professionalCoefficient").setData(10);
           line.getModule("zj_totalCoefficient").setData(parseFloat(zj_basicCoefficient) + parseFloat(zj_professionalCoefficient));
    break;
    case "钢筋审核":
           line.getModule("zj_professionalCoefficient").setData(11);
           line.getModule("zj_totalCoefficient").setData(parseFloat(zj_basicCoefficient) + parseFloat(zj_professionalCoefficient));
    break;
    case "景观审核":
           line.getModule("zj_professionalCoefficient").setData(12);
           line.getModule("zj_totalCoefficient").setData(parseFloat(zj_basicCoefficient) + parseFloat(zj_professionalCoefficient));
    break;
    case "装修审核":
           line.getModule("zj_professionalCoefficient").setData(13);
           line.getModule("zj_totalCoefficient").setData(parseFloat(zj_basicCoefficient) + parseFloat(zj_professionalCoefficient));
    case "安装编制":
           line.getModule("zj_professionalCoefficient").setData(14);
           line.getModule("zj_totalCoefficient").setData(parseFloat(zj_basicCoefficient) + parseFloat(zj_professionalCoefficient));
    break;
    case "钢筋编制":
           line.getModule("zj_professionalCoefficient").setData(15);
           line.getModule("zj_totalCoefficient").setData(parseFloat(zj_basicCoefficient) + parseFloat(zj_professionalCoefficient));
    break;
    case "景观编制":
           line.getModule("zj_professionalCoefficient").setData(16);
           line.getModule("zj_totalCoefficient").setData(parseFloat(zj_basicCoefficient) + parseFloat(zj_professionalCoefficient));
    case "装修编制":
           line.getModule("zj_professionalCoefficient").setData(17);
           line.getModule("zj_totalCoefficient").setData(parseFloat(zj_basicCoefficient) + parseFloat(zj_professionalCoefficient));
    break;
    case "跟踪审计":
           line.getModule("zj_professionalCoefficient").setData(18);
           line.getModule("zj_totalCoefficient").setData(parseFloat(zj_basicCoefficient) + parseFloat(zj_professionalCoefficient));
    break;
    case "项目管理":
           line.getModule("zj_professionalCoefficient").setData(19);
           line.getModule("zj_totalCoefficient").setData(parseFloat(zj_basicCoefficient) + parseFloat(zj_professionalCoefficient));
    break;
    case "全过程跟踪审计业务":
           line.getModule("zj_professionalCoefficient").setData(0);
           line.getModule("zj_totalCoefficient").setData(parseFloat(zj_basicCoefficient) + parseFloat(zj_professionalCoefficient));
    break;
    default:
           line.getModule("zj_professionalCoefficient").setData(0);
           line.getModule("zj_totalCoefficient").setData(0);                    
    break;
}



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

升级   100%

139

主题

1万

回帖

4万

积分

超级版主

Rank: 8Rank: 8

积分
41458
发表于 2023-12-11 10:24:36 | 显示全部楼层
1、那您把数字字段为空时的默认值设置为空,不要设置为0,数字默认空时显示0,在右侧属性里可以修改
2、您赋值了10,但是没有重新获取,获取时字段存储的时0,您应该在赋值后再重新获取一下
3、3和2是同一个问题,获取的是上一次的数据
回复

使用道具 举报

升级   0.08%

97

主题

137

回帖

8

积分

注册会员

Rank: 2

积分
8
发表于 2023-12-11 10:27:02 | 显示全部楼层
论坛管理员 发表于 2023-12-11 10:24
1、那您把数字字段为空时的默认值设置为空,不要设置为0,数字默认空时显示0,在右侧属性里可以修改
2、您 ...

好的  谢谢
回复

使用道具 举报

升级   100%

139

主题

1万

回帖

4万

积分

超级版主

Rank: 8Rank: 8

积分
41458
发表于 2023-12-12 10:02:58 | 显示全部楼层
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

联系客服 关注微信 下载APP 返回顶部 返回列表
viewthread