Microsoft Dynamics CRM4.0 创建单据的时候,自动生成单据编号的通用方法
一、新建两个实体,具体如下:
| 单据流水号(new_maxbillcode) | |||||||
| 显示名称 | 名称 | 类型 | 格式 | 最大长度 | 需求级别 | IME模式 | 备注 |
| 名称 | new_name | nvarchar | 文本 | 100 | 业务必需的 | 自动 | 系统自带 |
| 标记 | new_billmark | nvarchar | 文本 | 100 | 无约束 | 自动 | |
| 实体 | new_entity | nvarchar | 文本 | 100 | 无约束 | 自动 | |
| 年 | new_year | nvarchar | 文本 | 100 | 无约束 | 自动 | |
| 月 | new_month | nvarchar | 文本 | 100 | 无约束 | 自动 | |
| 日 | new_day | nvarchar | 文本 | 100 | 无约束 | 自动 | |
| 位数 | new_places | int | 无 | ||||
| 流水号 | new_maxcode | int | 无 | ||||
| 测试(new_test) | |||||||
| 显示名称 | 名称 | 类型 | 格式 | 最大长度 | 需求级别 | IME模式 | 备注 |
| 名称 | new_name | nvarchar | 文本 | 100 | 业务必需的 | 自动 | 系统自带 |
二、在单据流水号实体上添加配置规则,具体如下图:

三、创建存储过程 [dbo].[UP_GetMaxBillCode]
/*--------------------------------------------------------------------------------------------------------
Memo 获取单据最大号 DECLARE @BillMark VARCHAR(20)
DECLARE @BillCode VARCHAR(50)
SET @BillMark='NEW'
EXEC UP_GetMaxBillCode @BillMark,@BillCode OUTPUT
SELECT BillMark=@BillMark,BillCode=@BillCode SELECT * FROM NEW_MaxBillCodeExtensionBase
--------------------------------------------------------------------------------------------------------*/
CREATE PROC [dbo].[UP_GetMaxBillCode]
@Entity VARCHAR(50),
@BillCode VARCHAR(50) OUTPUT
AS
SET NOCOUNT ON
DECLARE @MaxCode VARCHAR(20)
DECLARE @Version ROWVERSION
DECLARE @Times INT SELECT @MaxCode=NEW_MaxCode+1,@Version=[Version]
FROM NEW_MaxBillCodeExtensionBase
WHERE NEW_Entity=@Entity UPDATE NEW_MaxBillCodeExtensionBase SET NEW_MaxCode=NEW_MaxCode+1
WHERE NEW_Entity=@Entity
AND [Version]=@Version WHILE @@ROWCOUNT=0
BEGIN
SET @Times=@Times+1
IF(@Times%100=0)
BEGIN
WAITFOR DELAY '00:00:01'
IF(@Times>500)
BEGIN
RETURN NULL
END
END SELECT @MaxCode=NEW_MaxCode+1,@Version=[Version]
FROM NEW_MaxBillCodeExtensionBase
WHERE NEW_Entity=@Entity UPDATE NEW_MaxBillCodeExtensionBase SET NEW_MaxCode=NEW_MaxCode+1
WHERE NEW_Entity=@Entity
AND [Version]=@Version
END SELECT @BillCode=ISNULL(NEW_BillMark,'')+ISNULL(NEW_Year,'')+ISNULL(NEW_Month,'')+ISNULL(NEW_Day,'')+RIGHT(CONVERT(VARCHAR,@MaxCode),NEW_places)
FROM NEW_MaxBillCodeExtensionBase
WHERE NEW_Entity=@Entity
四、创建测试实体的触发器
--创建测试实体的触发器
CREATE Trigger [dbo].[Company_Insert_new_test]
ON [dbo].[new_testExtensionBase]
AFTER INSERT
AS
BEGIN
SET NOCOUNT ON
IF EXISTS(SELECT * FROM INSERTED WHERE new_name IS NULL)
BEGIN
DECLARE @BillCode VARCHAR(50)
EXEC UP_GetMaxBillCode 'new_test',@BillCode OUTPUT
UPDATE new_testExtensionBase SET new_name=@BillCode
WHERE new_testid IN (SELECT new_testid FROM INSERTED)
END
END
五、新建一个测试实体记录,发现new_name自动生成如下:

Microsoft Dynamics CRM4.0 创建单据的时候,自动生成单据编号的通用方法的更多相关文章
- Microsoft Dynamics CRM4.0编程---说明
Introduction(说明) If your organization has customers, you need a software system to help you manage y ...
- Microsoft Dynamics CRM4.0 和 Microsoft Dynamics CRM 2011 JScript 方法对比
CRM 2011 如果需要再IE里面调试,可以按F12在前面加上contentIFrame,比如 contentIFrame.document.getElementById("字段" ...
- Microsoft Dynamics CRM4.0 JScript 过滤lookup 出现 Microsoft Dynamics CRM 窗口无法打开,可能已被弹出窗口阻止程序所阻止。
一.现象:JScript过滤lookup字段,选择lookup字段出现下图的情况: 出现:Microsoft Dynamics CRM 窗口无法打开,可能已被弹出窗口阻止程序所阻止.请将这台Micro ...
- 【SQL-自动生成编号】按规则自动生成单据编号 以及并发问题_使用触发器、函数 等
描述:每种单据新建时,自动生成它的单据编号. 规则如:固定码+日期+流水号 (ABC1603180001) 方法一:触发器 触发器的缺点是,执行了sql之后才看到编码. 测试:流水号不能超过最大数,否 ...
- 新版本ADT创建Android项目无法自动生成R文件解决办法
本人使用的是ADT是Version 23.0.2,支持Android 6.0之后的系统环境,最高版本23,在创建Android项目的时候,每次创建项目选择“Compile With”低于6.0版本的时 ...
- GZFramwork数据库层《二》单据表增删改查(自动生成单据号码)
运行效果: 使用代码生成器(GZCodeGenerate)生成tb_EmpLeave的Model 生成器源代码下载地址: https://github.com/GarsonZhang/GZCodeGe ...
- PHP数字字符串左侧补0、字符串填充和自动补齐的几种方法
一.数字补0. 如果要自动生成学号,自动生成某某编号,就像这样的形式“d0000009”.“d0000027”时,那么就会面临一个问题,怎么把左边用0补齐成这样8位数的编码呢?我想到了两种方法实现这个 ...
- webstorm创建js文件时自动生成js注释
设置webstorm创建js文件时自动生成js注释 settings--Editor--File and Code Temlates 黑色框框里的内容自己填写上去,以下是参考的代码块: /** * @ ...
- Dynamics CRM4.0 和 Dynamics CRM2011 Plugin 实现一样的功能的方法的比较
1.给类型赋值不同 CRM4 plugin给lookup赋值为空 : Lookup lookupnull = new Lookup(); lookupnull.IsNull = true; looku ...
随机推荐
- 使用GAN进行异常检测——可以进行网络流量的自学习哇,哥哥,人家是半监督,无监督的话,还是要VAE,SAE。
实验了效果,下面的还是图像的异常检测居多. https://github.com/LeeDoYup/AnoGAN https://github.com/tkwoo/anogan-keras 看了下,本 ...
- 小程序中bindtap绑定函数,函数参数event对数据的处理
WXML: <view id=" bindtap="tapName"> Click me! </view> JS: Page({ tapName: ...
- 3DES加密解密
C#3DES加密解密,JAVA.PHP可用 using System; using System.Security.Cryptography; using System.Text; namespace ...
- win10下用u盘装centos后如何修复win10引导
相关参考: http://www.cnblogs.com/xiaoyao-lxy/p/5561728.html#wu
- 2018-2019-2 网络对抗技术 20165202 Exp2 后门原理与实践
博客目录 一.基础问题回答 二.实验准备:后门软件 1.Windows获得Linux Shell 2.Linux获得Windows Shell 3.使用nc传输数据 4.使用ncat实现文件传输 三. ...
- zabbix监控系统的配置
一.zabbix介绍 zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案. zabbix能监视各种网络参数,保证服务器系统的安全运营:并提供灵活的通知机制以让系 ...
- "Incorrect string value: '\\xE7\\x89\\x8C\\xE5\\xB1\\x80...' for column 'name' at row 1")
出现这个错误的原因是,数据库的编码格式为latin1 而我要将utf8的中文插入到数据库中. mysql> alter database xxx default character set ut ...
- null与undefined
null是一个表示"无"的对象,转为数值时为0:undefined是一个表示"无"的原始值,转为数值时为NaN. undefined和null在if语句中,都会 ...
- [python]自问自答:python -m参数? (转) ( python2.7 版本 )
原文地址: http://www.cnblogs.com/xueweihan/p/5118222.html python -m xxx.py 作用是:把xxx.py文件当做模块启动 但是我一直不明白当 ...
- Maven项目中的配置
1 在配置好Maven项目后,新建一个Maven Project.如图 点击next,会进入如下界面: 选择webapp,不选择默认的quickstart,之后会进入以下界面 填好Group ID 和 ...