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 ARC之循环引用问题(代码分析)
// // main.m // 03-arc-循环引用 // // Created by apple on 13-8-11. // Copyright (c) 2013年 itcast. All ri ...
- OC 继承
一.基本概念 程序的世界和人类的“对象”世界在思想上是没有设么区别的,富二代继承了父母,自然就拥有了父母拥有的所有资源,子类继承了父类同样就拥有了父类所有的方法和属性(成员变量). 在这里动物是猫类和 ...
- Intel daal4py demo运行过程
daal安装(记得先安装anaconda): git clone https://github.com/IntelPython/daal4py.git cd daal4py conda create ...
- entest1
1◆ ai I 2◆ ai I ir ɜː ie i: 3◆ u: ʌ ɜː ə ui u: ure ʊə
- 如何用SPY++工具查看窗体的句柄
我安装的是vs2012,先找到SPY++工具打开 打开方式: 方式1:通过路径(C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Microso ...
- codeforces 851C Five Dimensional Points(鸽巢原理)
http://codeforces.com/contest/851/problem/C 题意 - 给出 n 个五维空间的点 - 一个点a为 bad 的定义为 存在两点 b, c, 使的<ab, ...
- 玩转X-CTR100 l 平台-4WD智能小车
我造轮子,你造车,创客一起造起来!更多塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ] 本文介绍使用X-CTR100控制器搭建4WD智能 ...
- django会话跟踪技术
目录 django中的会话跟踪技术 什么是会话跟踪技术 HTTP无状态协议 Cookie概述 什么是cookie cookie源码 cookie超长时间 cookie超长时间 cookie生效路径 删 ...
- 【转载】Java枚举类型的使用
枚举类型概念 package com.lxq.enumm; public class EnumDemoOne { private enum InnerEnum { RED, GREEN, YELLOW ...
- How to return NULL string
Q: std::string get_file_contents(const char *filename) { std::ifstream in(filename, std::ios::in | s ...