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 ...
随机推荐
- OC Block(代码块)
#import "ViewController.h" @interface ViewController () @end @implementation ViewControlle ...
- OC Xcode中常见的错误
在开发的过程中难免会遇到很多的错误,可是当看到系统给出的英文时,又不知道是什么意思.所以这篇文章总结了Xcode中常见的一些英文单词及词组,可以帮助初学的人快速了解给出的提示.多练习,就肯定能基本掌握 ...
- learning uboot part command
=> part --helppart - disk partition related commands Usage:part uuid <interface> <dev> ...
- 'PostBuildEvent' failed with error code '1' 'Unspecified error'( PostBuildEvent”失败,错误代码为“1”。“未指定的错误” )
这种错误很坑,2年前遇到一次,现在有遇到了(主要记不得上次怎么解决了的) 主要在于js文件文件修改保存的时候得以ansi格式保存,不能以utf-8 http://files.cnblogs.com/f ...
- Apache自带性能测试工具ab的使用
Apache服务器套件自带ab,只要安装Apache即可,无需另行安装ab.ab位于%ApacheHome%/bin目录下(“%ApacheHome%”为Aapche安装路径),你也可以把ab.exe ...
- 基于Dlib、OpenCV开发人脸识别程序的开发建议
前言 在去年十月的时候参加了一个小比赛,做了一个人脸识别程序并很意外地获得省里面的一等奖,视频演示链接在这里,有同学想要做这方面的毕业设计or课程设计,发一篇博客来分享一下当时的开发过程. 视频演示链 ...
- CLIENT_0004:Unable to find valid Kerberos ticket cache (kinit)
背景 今天在使用JavaAPI来连接sqoop1.99.7的时候,遇到了个错误. 错误信息如下: 0 [main] WARN org.apache.hadoop.util.NativeCodeLoad ...
- L241
Parents, try to get enough sleep to role model good habits to children. Bessesen notes that some med ...
- Invalid /admin/*.jsp in filter mapping
完成错误信息 严重: A child container failed during start java.util.concurrent.ExecutionException: org.apache ...
- Oracle Tuning (Oracle 性能调整)的一些总结
Oracle Tuning (Oracle 性能调整)的一些总结 Oracle Tuning (Oracle 性能调整)的一些总结关于Oracle的性能调整,一般包括两个方面,一是指Oracle数据库 ...