官方主站
免费热线:400-878-2608   设为首页 | 加入收藏
用户名 密码 只有登录SuperCRM官网会员中心,您才有权利进行一些功能操作 还不是SuperCRM的客户?马上注册吧
  广州市华尔太科技有限公司欢迎您!

如何在CRM系统中实现单据格式的自动编号


2014-10-30【作者】 华尔太

CRM系统的使用及实施过程中,经常会用到报价单,合同,销售单,采购单等单据,这些单据有一个共同点是都会有一个单据编号的字段,如下图所示的合同编号:

如图,合同编号的初始化规则是:“C-” + “年月日-” + 顺序号,该表信息为:

英文表名

db_contractinfo

中文表名

合同信息表

物理表名

db_contractinfo_init

表编号

29

主键

ci_pkid

合同编号

ci_contractid

我们在表单设置中,模块编程里建立一段功能程序

作用表名

db_contractinfo

Script说明

模块启动时初始化合同编号

Script代码

以上代码实现:"C-" + "年月日-",下面代码实现顺序号:
到服务器打开Microsoft SQL Server Management Studio,然后找到需要找的物理表。这里,我们的物理表名是:db_contractinfo_init,故找到:dbo. db_contractinfo_init。

如果是其它表的此类功能,只需把下表中的红色部分字段做相应替换即可,同时,在JS里的字段是11位,也是取其11位,如是其它位数,在下面程序中相应把11替换成其它位数。

英文表名

db_contractinfo

中文表名

合同信息表

物理表名

db_contractinfo_init

表编号

29

主键

ci_pkid

合同编号

ci_contractid

ALTER TRIGGER [ht_tg_db_contractinsert] ON [dbo].[db_contractinfo_init]

FOR INSERT    /* ht_tg_db_contractinsert是当前触发器名字,只要不跟之前名字一样,可以随便取,它有中括号是因为 系统自动生成的方便好看 */

 

AS

begin

    declare @contractid varchar(20) /*首先要定义一个变量来存他插入的编号信息 */

   

    select @contractid=ci_contractid from inserted  /*这个就是获取当前插入的编号,存到变量 */

             declare @contractcount numeric(10)

             declare @flow varchar(20)

    --select @contractcount=count(*) from db_contractinfo_init where left(ci_contractid,11)= @contractid

    select @contractid=left(@contractid,11)   /*获取插入编号的前11位。在这里,js生成的就是11 */

    select top 1 @flow=ci_contractid from db_contractinfo_init where left(ci_contractid,11)=@contractid and ci_contractid<>@contractid order by ci_contractid desc   /* 这一句 就是查询当前11位编号相同的编号在数据库中有多少个,如我这个编号是 C20141028-,则查询有多少个同样编号的,如果有3个这样的,最新这个就是004  */

    if (@flow is not null )  /*if语句查询存在多少个是保存在变量@flow里面的*/

       select @contractcount=convert(int,right(@flow,3))+1

    else

       select @contractcount='1'

 

/*下面几句用来判断编号的位数,如为一位,就要在前面加002位就加0  三位就直接加上那个数字。

             if (len(@contractcount)=1 )

             begin

       select @flow='00'+convert(varchar(1),@contractcount)

             end

             if (len(@contractcount)=2 )

             begin

       select @flow='0'+convert(varchar(2),@contractcount)

             end

             if (len(@contractcount)=3 )

             begin

       select @flow=convert(varchar(3),@contractcount)

             end 

 

    update db_contractinfo_init set ci_contractid=ci_contractid+@flow where ci_pkid=@@identity

 

 

/*  select @contractmoney=ci_money from inserted

    update db_custominfo set ci_purchaseamount=ci_purchaseamount+ @contractmoney,ci_customkind=3 where ci_pkid=(select ci_customid from inserted)

*/

end

 


上二篇:
如何实现CRM系统下拉框的动态关联选择功能
关于CRM系统下拉框自动带出相关信息的功能说明

下二篇:
SuperCRM系统助力上海捷玛实业有限公司
某电缆销售中心成功升级CRM客户管理系统
如果您希望与本文章的作者或其所在机构,进一步交流,请联系:华尔太 020-82352035 400-8782608-18
合作伙伴
公司介绍企业文化联系我们成为代理加盟华尔太申请友情链接
本站主营:销售管理系统,客户管理系统,客户关系管理,客户管理软件,免费CRM软件-回馈社会,CRM免费用免费CRM系统
华尔太版权所有 © 2003- 粤ICP备05010193号
本站基于SuperCRM(中国CRM系统的领跑者)制作