分享_使用【自定义产品字典】限定产品目录下的产品编号长度脚本分享_使用经验
学习.交流
专业源于专注
www. onlyit. cn   
学习交流 文件下载 手册资料 交流QQ群

    

 4  1/1   1  
作者
内容
fwj3861  [个人空间]
QQ名  越南-叶子(121305301)


注册  2010-09-09
发贴数  549
精华贴  10
原创贴  20
来自  越南
状态  正常

级别  贵宾
#1»发布于2023-03-03 16:43

今天在QQ群有用户提出如何限定产品编号的长度,目前暂时用脚本可以达成该需求,以下脚本供参考,有更好的解决方法欢迎跟帖分享,谢谢! 
1.打开【产品资料管理→功能→更多功能→相关字典定义】,新增字典标识:residcd,把需要【限定产品编码长度的目录编号】分别作为【字典编码】,把【字符长度】作为【字典名称】 
2.打开【产品资料管理→功能→脚本定义→产品记录编辑脚本定义】,添加下列脚本【若为空,先初始化】 
extern change_obj; 
 
int func_f9_call() 

  //msg('f9 pressed'); 
  return 1; 
}; 
 
int func_show_win() 

  //msg('show win'); 
  return 1; 
}; 
 
int func_create_rec() 

  //msg('create rec'); 
  return 1; 
}; 
 
int func_edit_rec() 

  //msg('edit rec'); 
  return 1; 
}; 
 
int func_delete_rec() 

  //msg('delete rec'); 
  //can_delete=1; 
  return 1; 
}; 
 
int func_save_rec() 

 //按目录限定编码长度,在产品字典添加自定义字典【residcd】,将【目录编码】作为【字典编码】,【字符长度】作为【字典名称】 
   string mlbh,residcd,resid; 
    mlbh = gui_get_val("ComboBox_Ext_Res_Cat_Id") //获取产品目录编号 
    resid = gui_get_val("Edit_Res_Id") //获取产品编码 
    residcd = dt_get_name('residcd',mlbh) //获取自定义字典【residcd】对应字典编码的字典名称 
    if(strlen(resid) != residcd && residcd != '') //当当前产品编码字符不等于字典名称时,弹出警告,清空产品编码和助记码并拒绝保存 
    { 
     warn('警告:本目录下的产品编码限定为【'+residcd+'】个字符,当前产品编码字符:【'+strlen(resid)+'】个,请重新输入产品编码!') 
     gui_set_val("Edit_Res_Id",'') 
     gui_set_val("Edit_Easy_Code",'') 
     gui_focus("Edit_Res_Id") 
     can_save=0; 
     }; 
  //msg('save rec'); 
  //can_save=1; 
  return 1; 
}; 
 
int func_after_save() 

  //msg('after save rec'); 
  return 1; 
}; 
 
int func_after_delete() 

  //msg('after delete rec'); 
  return 1; 
}; 
 
int obj_change() 

  //msg('obj change'); 
  //change_obj 
  return 1; 
}; 
 
int func_duplicate_rec() 

  //msg('duplicate rec'); 
  return 1; 
}; 
 
string change_col,change_col_id,change_row_id; 
int bom_cell_change() 

  //msg('bom_cell_change'); 
  return 1; 
}; 
 
打开产品字典的路径




        于 2023-03-03 16:43 被 fwj3861 修改




官方认证第三方服务团队  樊文俊(越南-叶子) QQ:121305301 TEL:+84869350626
承接越南北部-河内周边省份-OIT部署和维护服务(24小时上门或远程服务)
服务介绍:http://www.onlyit.cn/onlyit_service.html

fwj3861  [个人空间]
QQ名  越南-叶子(121305301)


注册  2010-09-09
发贴数  549
精华贴  10
原创贴  20
来自  越南
状态  正常

级别  贵宾
#2»发布于2023-03-03 16:07

打开脚本定义路径







官方认证第三方服务团队  樊文俊(越南-叶子) QQ:121305301 TEL:+84869350626
承接越南北部-河内周边省份-OIT部署和维护服务(24小时上门或远程服务)
服务介绍:http://www.onlyit.cn/onlyit_service.html

fwj3861  [个人空间]
QQ名  越南-叶子(121305301)


注册  2010-09-09
发贴数  549
精华贴  10
原创贴  20
来自  越南
状态  正常

级别  贵宾
#3»发布于2023-03-03 16:08

字符长度不符的警告提示和拒绝保存的提示








官方认证第三方服务团队  樊文俊(越南-叶子) QQ:121305301 TEL:+84869350626
承接越南北部-河内周边省份-OIT部署和维护服务(24小时上门或远程服务)
服务介绍:http://www.onlyit.cn/onlyit_service.html

fwj3861  [个人空间]
QQ名  越南-叶子(121305301)


注册  2010-09-09
发贴数  549
精华贴  10
原创贴  20
来自  越南
状态  正常

级别  贵宾
#4»发布于2023-03-03 16:44

修复判断条件漏洞,加上字典为空的条件 
int func_save_rec() 

 //按目录限定编码长度,在产品字典添加自定义字典【residcd】,将【目录编码】作为【字典编码】,【字符长度】作为【字典名称】 
   string mlbh,residcd,resid; 
    mlbh = gui_get_val("ComboBox_Ext_Res_Cat_Id") //获取产品目录编号 
    resid = gui_get_val("Edit_Res_Id") //获取产品编码 
    residcd = dt_get_name('residcd',mlbh) //获取自定义字典【residcd】对应字典编码的字典名称 
    if(strlen(resid) != residcd && residcd != '') //当当前产品编码字符不等于字典名称【并且自定义字典不为空】时,弹出警告,清空产品编码和助记码并拒绝保存 
    { 
     warn('警告:本目录下的产品编码限定为【'+residcd+'】个字符,当前产品编码字符:【'+strlen(resid)+'】个,请重新输入产品编码!') 
     gui_set_val("Edit_Res_Id",'') 
     gui_set_val("Edit_Easy_Code",'') 
     gui_focus("Edit_Res_Id") 
     can_save=0; 
     }; 
  //msg('save rec'); 
  //can_save=1; 
  return 1; 
};






官方认证第三方服务团队  樊文俊(越南-叶子) QQ:121305301 TEL:+84869350626
承接越南北部-河内周边省份-OIT部署和维护服务(24小时上门或远程服务)
服务介绍:http://www.onlyit.cn/onlyit_service.html


 4  1/1   1  

登录后方可发贴


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