分享_产品采用折算单位,在单据里面计算显示最小单位的单价_产供销
学习交流 » 产供销 »产品采用折算单位,在单据里面计算显示最小单位的单价
|
|
| |
作者 |
|
wbjjzhu [个人空间]
注册  2012-08-22 发贴数 102 精华数 0 原创贴 1 来自 状态 正常
级别 会员 |
|
wbjjzhu [个人空间]
注册  2012-08-22 发贴数 102 精华数 0 原创贴 1 来自 状态 正常
级别 会员 |
|
|
根据手工输入的基准单价,反算金额和单价 更改脚本: int cell_change() { //change_col,change_col_id,change_row_id num n1,n2,n3 if(change_col=="inp_num"||change_col=="inp_price"||change_col=="inp_amount")//当数量、单价、金额,三列数据有变动时,执行如下脚本 { n1=inp_amount n2=std_num if(n2>0) {vr_item_ext_1=num_trim(to_float(n1/n2))//自定义列:基准单价=金额/基准数量 } } if(change_col=="vr_item_ext_1") { n3=vr_item_ext_1 n2=std_num if(n2>0) {inp_amount=num_trim(to_float(n3*n2))//金额=基准单价*基准数量 } } return 1; }; |
|
|
|
|
木桃 [个人空间]
注册  2022-09-23 发贴数 8 精华数 0 原创贴 0 来自 状态 正常
级别 会员 |
|
|
谢谢老师,这个脚本太强太实用了,适合多单位批发、外贸场景,支持折算单位、最小单位、折算单位单价、最小单位单价、金额之间的灵活输入和自动计算👍👍 实现临时输入基准单价,金额=基准数量×基准单价(最小单位单价) |
|
|
于 2022-09-23 08:50 被 木桃 修改
|
|
林先生 [个人空间]
注册  2022-05-21 发贴数 19 精华数 0 原创贴 0 来自 状态 正常
级别 会员 |
|
|
这个很实用`````老师能不写一个可以辅助单位跟基准单位同时输入计算最小单位单价, 比如1箱=24瓶 一瓶10元 输入1箱 10瓶 单价 10 金额=340元 我们搞混批的很多整件跟零散的混合拿货的 |
|
|
|
|
林先生 [个人空间]
注册  2022-05-21 发贴数 19 精华数 0 原创贴 0 来自 状态 正常
级别 会员 |
|
|
这个很实用`````老师能不写一个可以辅助单位跟基准单位同时输入计算最小单位单价, 比如1箱=24瓶 一瓶10元 输入1箱 10瓶 单价 10 金额=340元 我们搞混批的很多整件跟零散的混合拿货的 |
|
|
|
|
wbjjzhu [个人空间]
注册  2012-08-22 发贴数 102 精华数 0 原创贴 1 来自 状态 正常
级别 会员 |
|
|
我有上线过副食品批发的客户,他们的需求,跟你的很相似。也是整件和零散一起拿货的。 我的解决方案是: 1、只用折算单位,不启用辅助单位。 2、所有产品的基准单位定义为最小单位。 3、在产品资料的规格处填写整箱的规格:如 25瓶/箱。 4、如同一产品同一次发货既有整箱数,也有散数,则在系统录入两行数据,分别记录不同单位的数量和单价。 5、开单的时候针对不同的客户用F8查询历史价格录入,非常高效。 这个方案的好处是,整箱价格和散件的价格可以独立分开处理。因为在实际应用中,不同客户的价格可能是不同的;整箱发货比散件发货优惠。还有一种是类似买3送一的情况,即买3箱,送一瓶,分开两行录入的话,瓶的价格就可以改为0,作为赠品。 |
|
|
|
|
林先生 [个人空间]
注册  2022-05-21 发贴数 19 精华数 0 原创贴 0 来自 状态 正常
级别 会员 |
|
|
这样分开输入,就是整箱你不能输入基准数量的价格,批发比较灵活,价格变动拿货少个2毛,多个5毛什么的需要随时调整..辅助数量和基准数量混合输入 以最基础价格来计算总钱数,这样无论是整件还是领拿都省掉一步辅助数量和基准数量的换算 |
|
|
|
|
木桃 [个人空间]
注册  2022-09-23 发贴数 8 精华数 0 原创贴 0 来自 状态 正常
级别 会员 |
|
|
计算有问题,基准单价是小数时,修改基准单价,金额=基准数量×基准单价(最小单位单价),会有0.0000几的相差,还有基准单价也偶尔会有0.0000几的相差,比如会出现278.4/2=139.19999这样的数 |
|
|
于 2023-05-15 12:19 被 木桃 修改
|
|
木桃 [个人空间]
注册  2022-09-23 发贴数 8 精华数 0 原创贴 0 来自 状态 正常
级别 会员 |
|
|
楼主老师回复代码的计算逻辑是正确的,出现这种情况,主要是ONLYIT的数据类型精度影响。如果想进一步改善,就保留小数位。将后面的误差值进行四舍五入。并附上代码如下 int cell_change() { //change_col,change_col_id,change_row_id num n1,n2,n3 if(change_col=="inp_num"||change_col=="inp_price"||change_col=="inp_amount")//当数量、单价、金额,三列数据有变动时,执行如下脚本 { n1=inp_amount n2=std_num if(n2>0) {vr_item_ext_1=num_trim(num_dec_cut(to_float(n1/n2),4));//自定义列:基准单价=金额/基准数量 } } if(change_col=="vr_item_ext_1") { n3=vr_item_ext_1 n2=std_num if(n2>0) {inp_amount=num_trim(num_dec_cut(to_float(n3*n2),4));//金额=基准单价*基准数量 } } return 1; }; |
|
|
|
|
|
|