学习.交流
专业源于专注
www. myoit. cn   
学习交流 文件下载 手册资料 交流QQ群

    

 15  1/1   1  
作者
内容
wmlys  [个人空间]


注册  2012-02-28
发贴数  90
精华数  0
原创贴  0
来自  
状态  正常

级别  会员
#1»发布于2020-11-06 09:45

销售发货单的单据编号希望按照客户编码+流水号来生成,这样便于查验和分类,请版主指导该怎么搞。


        





人力資源管理軟體, 綠色免費

wmlys  [个人空间]


注册  2012-02-28
发贴数  90
精华数  0
原创贴  0
来自  
状态  正常

级别  会员
#2»发布于2020-11-06 09:46

这样做了每个客户的流水号很容易查找和识别和查漏


        





庫存管理軟體, 綠色免費

dragonzsp  [个人空间]


注册  2011-03-25
发贴数  84
精华数  0
原创贴  4
来自  温州
状态  正常

级别  贵宾
#3»发布于2020-11-06 09:57

Begin: 
      voucher_no = voucher_type + "-" + eba_id + "-"; 
      sql = "select voucher_no from ebs_v where voucher_no like '" + voucher_no + "%' order by voucher_id"; 
      db_select_area(1); 
      db_free_area(1); 
      db_run(sql); 
      count1 = db_row_count(); 
      if (count1 > 0) 
      { 
        db_go_row(count1 - 1); 
        tmp = db_res(0); 
        if (tmp != "") 
        { 
          tmp.Replace(voucher_no, ""); 
          //剩余的就是编号了 
          m = to_int(tmp); 
          if (max < m) 
          { 
            max = m; 
          } 
        } 
      } 
      max++; 
      voucher_no = voucher_no + fmt_int(max, "%06d"); 
      sql = "select voucher_id from ebs_v where voucher_no='" + voucher_no + "'"; 
      db_free_area(1); 
      db_run(sql); 
      count1 = db_row_count(); 
      if (count1 > 0) 
      { 
        tmp = db_res(0); 
        if (tmp != "") 
        { 
          goto Begin; 
        } 
      } 
      gui_set_text("Edit_Voucher_No", voucher_no.GetBuffer()); 
 
 
我自己的c++代码片段,你自己参考下写写

单据编号效果图


        于 2020-11-06 09:57 被 dragonzsp 修改





固定資産設備 管理軟體, 綠色免費

wmlys  [个人空间]


注册  2012-02-28
发贴数  90
精华数  0
原创贴  0
来自  
状态  正常

级别  会员
#4»发布于2020-11-06 13:57

太好了,但是我不知道怎么放进去,望望赐教。







商贸进销存 管理軟體, 綠色免費

xwb514  [个人空间]
QQ名  无锡-流浪(340298101)


注册  2010-03-19
发贴数  469
精华贴  6
原创贴  7
来自  
状态  正常

级别  会员
#5»发布于2020-11-08 14:51

12的太高端,适合所有单据,我写一个只适合某一个单据的脚本; 
以销售订单默认时为例: 
 
--------分割线-------- 
 
int obj_change() 

string v,s,eba,sql; 
eba=gui_get_val("ComboBox_Ext_Eba_Id"); 
db_run("select easy_code from eba where eba_id='"+eba+"' ");//得到客户的助记码 
v=gui_get_text("Edit_Voucher_No");//单据编号 
 
if(change_obj=="ComboBox_Ext_Eba_Id") 
gui_set_text("Edit_Voucher_No",str_replace(v,"BA",db_res(0)))//修改单据编号的前缀 
//销售订单的默认前缀是BA,其他单据或者单据前缀作过改变作相应的修改 
 
return 1; 

--------分割线-------- 
单据脚本入口:单据的功能菜单下,有个“单据参数与配置--脚本定义”,把上面脚本代码复制并保存


        于 2020-11-08 14:51 被 xwb514 修改




官方认证第三方服务团队  徐文标(福建-流浪) QQ:340298101
服务介绍:http://www.onlyit.cn/onlyit_service.html

人力資源管理軟體, 綠色免費

wmlys  [个人空间]


注册  2012-02-28
发贴数  90
精华数  0
原创贴  0
来自  
状态  正常

级别  会员
#6»发布于2020-11-08 08:48

这2个代码,是不是不适用单机版?放进去都没反应。





庫存管理軟體, 綠色免費

wmlys  [个人空间]


注册  2012-02-28
发贴数  90
精华数  0
原创贴  0
来自  
状态  正常

级别  会员
#7»发布于2020-11-08 08:49

Begin:是什么意思?要用什么代替,才能正常?





固定資産設備 管理軟體, 綠色免費

wmlys  [个人空间]


注册  2012-02-28
发贴数  90
精华数  0
原创贴  0
来自  
状态  正常

级别  会员
#8»发布于2020-11-08 10:35

xwb514 的代码可以用了,但是不能自动递增





商贸进销存 管理軟體, 綠色免費

xwb514  [个人空间]
QQ名  无锡-流浪(340298101)


注册  2010-03-19
发贴数  469
精华贴  6
原创贴  7
来自  
状态  正常

级别  会员
#9»发布于2020-11-09 00:32

 
int create_voucher() 

string no2 
no2=gui_get_val("Edit_Voucher_No"); 
user_para_set("no2",no2); 
 
return 1; 

int obj_change() 

string v,s,eba,sql,sql1,no,no1,no2,sep,s1,s2,s3,s4,s5,s6,s7,easy; 
int len,i; 
no2=user_para_get("no2"); 
 
eba=gui_get_val("ComboBox_Ext_Eba_Id"); //客户ID 
db_run("select * from app_voucher_type where voucher_type='"+v_voucher_type+"' "); 
len=to_int(db_res_ext("id_len")); 
sep=db_res_ext("sep_char"); 
no=gui_get_val("Edit_Voucher_No"); 
 
if(change_obj=="ComboBox_Ext_Eba_Id") 

no=no2 
db_run("select easy_code from eba where eba_id='"+eba+"' ");//得到客户的助记码 
easy=db_res(0); 
 
if(easy !='') 

 
sql1="select voucher_id,voucher_no from ebs_v where voucher_type='"+v_voucher_type+"' "; 
sql1+=" and voucher_date='"+gui_get_val("DateTimePicker_Voucher_Date")+"' " 
sql1+=" order by voucher_id desc " 
db_run(sql1) 
no1=db_res(1); 
if(db_row_count()>0)//当天做单第二次起 

s1=''; 
s1=str_get_sub(no,0,strlen(no)-len) 
s2=str_get_sub(no1,strlen(no1)-len,len); 
s3=to_int(s2)+1; 
 
if(strlen(s3)<len) 
s4=fmt_int(s3,"%0"+len+"d") 
else 
s4=s3 
s5=easy+str_get_sub(s1,str_pos(s1,sep),strlen(s1)); 
 
v=v_voucher_type+sep+s5+s4 
 

else//当天首次做单 

s1=str_get_sub(no,str_pos(no,sep),strlen(no)); 
 
v=v_voucher_type+sep+easy+s1; 

gui_set_text("Edit_Voucher_No",v); 
 

else 

msg("没有找到客户:"+gui_get_text("ComboBox_Ext_Eba_Id")+"(编号:"+eba+") 的助记码"); 
break; 


 
return 1; 

 
 
 
 
 
不知这个符合不符合你的需求,此适合软件默认的单据日期规则(单据编码长度和分割符则无限制)


        于 2020-11-09 00:32 被 xwb514 修改




官方认证第三方服务团队  徐文标(福建-流浪) QQ:340298101
服务介绍:http://www.onlyit.cn/onlyit_service.html

人力資源管理軟體, 綠色免費

wmlys  [个人空间]


注册  2012-02-28
发贴数  90
精华数  0
原创贴  0
来自  
状态  正常

级别  会员
#10»发布于2020-11-09 07:49

编码要长期的连续,或者一个年码+连续码,不然出现断码就很难直观的查到,因为,每天每月的单量不同,查漏就是一本糊涂账了。





庫存管理軟體, 綠色免費

xwb514  [个人空间]
QQ名  无锡-流浪(340298101)


注册  2010-03-19
发贴数  469
精华贴  6
原创贴  7
来自  
状态  正常

级别  会员
#11»发布于2020-11-09 14:54

我试了下,只有年也能够使用这个脚本,这个脚本对于销售类单据都适用。






官方认证第三方服务团队  徐文标(福建-流浪) QQ:340298101
服务介绍:http://www.onlyit.cn/onlyit_service.html

固定資産設備 管理軟體, 綠色免費

wmlys  [个人空间]


注册  2012-02-28
发贴数  90
精华数  0
原创贴  0
来自  
状态  正常

级别  会员
#12»发布于2020-11-14 08:44

用了一下,只能对当天的 单据连续,系统中的总单据最大号还是找不到,这样每天开始的第一张单子就很难搞定,工人就不愿意用了





商贸进销存 管理軟體, 綠色免費

xwb514  [个人空间]
QQ名  无锡-流浪(340298101)


注册  2010-03-19
发贴数  469
精华贴  6
原创贴  7
来自  
状态  正常

级别  会员
#13»发布于2020-11-15 22:44

如果要整年单据连续就必须对单据编号规则与基本属性作修改,把日期规则改为yy或者yyyy,其他的都不需要,如果要按月,则把日期规则改为yy(或者yyyy)-mm,-dd就不再需要






官方认证第三方服务团队  徐文标(福建-流浪) QQ:340298101
服务介绍:http://www.onlyit.cn/onlyit_service.html

人力資源管理軟體, 綠色免費

fwj3861  [个人空间]


注册  2010-09-09
发贴数  89
精华贴  2
原创贴  2
来自  广东深圳
状态  正常

级别  会员
#14»发布于2020-11-16 11:59

感谢各位大神分享,收藏备用!






没有最好,只有更好!
广东-叶子

庫存管理軟體, 綠色免費

wmlys  [个人空间]


注册  2012-02-28
发贴数  90
精华数  0
原创贴  0
来自  
状态  正常

级别  会员
#15»发布于2020-11-18 13:14

目前单号还不能继续最后那个号或者最高的那个号





固定資産設備 管理軟體, 綠色免費


 15  1/1   1  


登录后方可发贴


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