hur.cn - 华软网

 热门搜索

求教,商品编码自动生成?多谢!

  作者:未知    来源:网络    更新时间:2017/9/29
编码13位,大类(3)+中类(3)+品牌(3)+商品序号(4),字段为字符型;如何使同大类,同中类,同品牌的商品序号自动增加。
------华软网友回答------
用Left()函数取13位的前9位,当新增商品时,去数据库里匹配,找到后4位最大的编码,然后加1
------华软网友回复------
同意楼上,若编码格式固定的话直接取最大值加1即可,数据窗口中连续录入时最好设一实例变量,初始值为最大值加1,随后其值自增1即可。
------华软网友回复------
根据大类、中类、品牌去数据库查找出最大值,然后取后四位加一即可

select max(商品编号) into :ls_card_no
  from 商品
 where 大类 = :ls_大类 and 中类 = :ls_中类 and 品牌 = :ls_品牌;

if len(ls_card_no) = 13 then
   ls_card_no = left(ls_card_no, 9) + string(long(right(ls_card_no, 4)) + 1, '0000')
else
   ls_card_no = ls_大类 + ls_中类 + ls_品牌
end if

ls_card_no 里即是你想要的商品编号
------华软网友回复------
select distinct max(wp_ckls) into :a from wpck where wp_lrrq=:sjj;//根据录入时间判断
select wp_ckpzh into :aa from wpck where wp_ckls=:a;//根据流水号判断当天最大的凭证号
if isnull(a) or isnull(aa) then//如果没有当天凭证号
bb="1000"
else
bb=right(trim(aa),4)//如果有当天凭证号
end if
a=integer(bb)+1
cc=string(a)
dd=string(today(),'yyyymmdd')
ee=dd+cc

改改,你应该可以用了,呵呵,比较懒惰,你自己去处理吧
------华软网友回复------
如果没有“大类”、“中类”、“品牌”的字段的话,可以这样取最大值:

string ls_card_no=""

select max(商品编号) into :ls_card_no
  from 商品 where substr(商品编号,1,3) = :ls_大类 and substr(商品编号,4,3) = :ls_中类 and substr(商品编号,7,3) = :ls_品牌;

if len(ls_card_no) = 13 then
   ls_card_no = left(ls_card_no, 9) + string(long(right(ls_card_no, 4)) + 1, '0000')
else
   ls_card_no = left(ls_card_no, 9) + "0001"
end if

------华软网友回复------
建议你编码采用:大类      001
               中类      001001  (大类+中类)
               品牌      001001001 (大类+中类+品牌)
               商品序号  0010010010001 (大类+中类+品牌+序号)
这样以后操作起来会方便很多
------华软网友回复------
请问一下楼主
我也在模拟做这个商品编码,请问你是如何根据输入的商品得到它的大类和中类的??
谢谢!!      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。