分享_产品采用折算单位,在单据里面计算显示最小单位的单价_产供销
学习.交流
专业源于专注
www. onlyit. cn   
学习交流 文件下载 手册资料 交流QQ群

    

 9  1/1   1  
作者
内容
wbjjzhu  [个人空间]


注册  2012-08-22
发贴数  102
精华数  0
原创贴  1
来自  
状态  正常

级别  会员
#1»发布于2022-09-22 21:30

QQ群有朋友问,单据界面用折算单位输入产品数量和单价,但要在单据上面显示最小单位的数量和单价。 
 
查过单据显示界面没有基准单位的单价列,只能用脚本辅助处理 
 
解决方案: 
 
一、单据界面,显示方案,将基准单位、基准数量和自定义一,三列显示出来。 
 
二、将自定义列的显示标题更改为“基准单价”。 
 
三、添加如下脚本 
 
int cell_change() 

  //change_col,change_col_id,change_row_id 
 num n1,n2 
 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))//自定义列:基准单价=金额/基准数量 
      } 
    } 
  return 1; 
};






        于 2022-09-22 21:30 被 wbjjzhu 修改


wbjjzhu  [个人空间]


注册  2012-08-22
发贴数  102
精华数  0
原创贴  1
来自  
状态  正常

级别  会员
#2»发布于2022-09-22 23:13

根据手工输入的基准单价,反算金额和单价 
 
更改脚本: 
 
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
来自  
状态  正常

级别  会员
#3»发布于2022-09-23 08:50

谢谢老师,这个脚本太强太实用了,适合多单位批发、外贸场景,支持折算单位、最小单位、折算单位单价、最小单位单价、金额之间的灵活输入和自动计算👍👍 
实现临时输入基准单价,金额=基准数量×基准单价(最小单位单价)


        于 2022-09-23 08:50 被 木桃 修改


林先生  [个人空间]


注册  2022-05-21
发贴数  19
精华数  0
原创贴  0
来自  
状态  正常

级别  会员
#4»发布于2022-09-29 12:10

这个很实用`````老师能不写一个可以辅助单位跟基准单位同时输入计算最小单位单价,   比如1箱=24瓶      一瓶10元      输入1箱   10瓶    单价 10      金额=340元    我们搞混批的很多整件跟零散的混合拿货的




林先生  [个人空间]


注册  2022-05-21
发贴数  19
精华数  0
原创贴  0
来自  
状态  正常

级别  会员
#5»发布于2022-09-29 12:10

这个很实用`````老师能不写一个可以辅助单位跟基准单位同时输入计算最小单位单价,   比如1箱=24瓶      一瓶10元      输入1箱   10瓶    单价 10      金额=340元    我们搞混批的很多整件跟零散的混合拿货的




wbjjzhu  [个人空间]


注册  2012-08-22
发贴数  102
精华数  0
原创贴  1
来自  
状态  正常

级别  会员
#6»发布于2022-09-29 14:44

我有上线过副食品批发的客户,他们的需求,跟你的很相似。也是整件和零散一起拿货的。 
 
我的解决方案是: 
 
1、只用折算单位,不启用辅助单位。 
2、所有产品的基准单位定义为最小单位。 
3、在产品资料的规格处填写整箱的规格:如 25瓶/箱。 
4、如同一产品同一次发货既有整箱数,也有散数,则在系统录入两行数据,分别记录不同单位的数量和单价。 
5、开单的时候针对不同的客户用F8查询历史价格录入,非常高效。 
 
这个方案的好处是,整箱价格和散件的价格可以独立分开处理。因为在实际应用中,不同客户的价格可能是不同的;整箱发货比散件发货优惠。还有一种是类似买3送一的情况,即买3箱,送一瓶,分开两行录入的话,瓶的价格就可以改为0,作为赠品。





林先生  [个人空间]


注册  2022-05-21
发贴数  19
精华数  0
原创贴  0
来自  
状态  正常

级别  会员
#7»发布于2022-10-15 10:04

这样分开输入,就是整箱你不能输入基准数量的价格,批发比较灵活,价格变动拿货少个2毛,多个5毛什么的需要随时调整..辅助数量和基准数量混合输入 以最基础价格来计算总钱数,这样无论是整件还是领拿都省掉一步辅助数量和基准数量的换算




木桃  [个人空间]


注册  2022-09-23
发贴数  8
精华数  0
原创贴  0
来自  
状态  正常

级别  会员
#8»发布于2023-05-15 12:19

计算有问题,基准单价是小数时,修改基准单价,金额=基准数量×基准单价(最小单位单价),会有0.0000几的相差,还有基准单价也偶尔会有0.0000几的相差,比如会出现278.4/2=139.19999这样的数



        于 2023-05-15 12:19 被 木桃 修改


木桃  [个人空间]


注册  2022-09-23
发贴数  8
精华数  0
原创贴  0
来自  
状态  正常

级别  会员
#9»发布于2023-05-16 13:40

楼主老师回复代码的计算逻辑是正确的,出现这种情况,主要是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;  
};





 9  1/1   1  

登录后方可发贴


[ 电话: 0571-85462761 王先生 QQ: 124520435 加入软件QQ群 - 杭州 - 浙ICP备19051128号-1 网安 33010402003225 ]