`
禹爸爸
  • 浏览: 87724 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

获取单据编号的存储过程

阅读更多
CREATETABLE[dbo].[BillNo](
[Id][int]IDENTITY(1,1)NOTNULL,
[BillName][varchar](20)COLLATEChinese_PRC_CI_ASNOTNULL,
[MaxNo][int]NULL,
[MaxDate][varchar](20)COLLATEChinese_PRC_CI_ASNULL,
[Prefix][varchar](20)COLLATEChinese_PRC_CI_ASNULL,
[NumBit][int]NULLCONSTRAINT[DF_BillNo_NumBit]DEFAULT((0)),
[Style][varchar](50)COLLATEChinese_PRC_CI_ASNULL,
[Memo][text]COLLATEChinese_PRC_CI_ASNULL,
[CreateDate][datetime]NULLCONSTRAINT[DF_BillNo_CreateDate]DEFAULT(getdate()),
[EditDate][datetime]NULL,
[State][int]NULLCONSTRAINT[DF_BillNo_State]DEFAULT((0)),
CONSTRAINT[PK_BillNo]PRIMARYKEYCLUSTERED
(
[Id]ASC
)
WITH(IGNORE_DUP_KEY=OFF)ON[PRIMARY]
)
ON[PRIMARY]TEXTIMAGE_ON[PRIMARY]

GO

CREATEPROCEDURE[dbo].[p_GetBillNo]--产生按年月日排列的档案号
@BillNamevarchar(20),
@Novarchar(20)output,--为产生的档案号
@NumBitint=4--编号位数

AS
DECLARE@MaxNoint,
@MaxDatevarchar(20),
@Prefixvarchar(20),
@xNumBitint,
@CurrDatevarchar(12),
@FILL_ZEROint,
@iMaxNoint

SET@FILL_ZERO=100000000
SET@CurrDate=CONVERT(VARCHAR(8),GETDATE(),112)

SELECT@MaxNo=MaxNo,@MaxDate=MaxDate,@Prefix=Prefix,@xNumBit=NumBitFROMBillNoWITH(XLOCK)WHEREBillName=@BillName
IF@@ROWCOUNT<>1RETURN-1

IF@xNumBit<>0SET@NumBit=@xNumBit

IF@MaxDate<>@CurrDateOR@MaxDateISNULLOR@MaxNoISNULL
SET@iMaxNo=1
ELSE
SET@iMaxNo=@MaxNo+1

UPDATEBillNo
SETMaxNo=@iMaxNo,MaxDate=@CurrDate,EditDate=GetDate()WHEREBillName=@BillName
IF@@ROWCOUNT<>1RETURN-1

SET@No=COALESCE(@Prefix,'')+@CurrDate+RIGHT(CAST(@FILL_ZERO+@iMaxNoASVARCHAR),@NumBit)

RETURN1
分享到:
评论

相关推荐

    一个写的很不错的获取单据编号存储过程

    ### 获取单据编号的存储过程详解 #### 表结构定义 首先,我们看到创建了一个名为`BillNo`的表,用于存储单据编号的相关信息。表结构包括: - `Id`: 自增的主键,用于唯一标识每条记录。 - `BillName`: 单据名称,...

    金蝶K3 Wise 用SQL生成单号(单据编号)及单据内码(单据ID)

    在金蝶K3 Wise中,`p_BM_GetBillNo`存储过程用于生成单据编号。首先,我们需要找到单据对应的`FBillID`,这可以在`ICBillNo`表中查询得到。例如,若我们要获取采购申请单的`FBillID`: ```sql select FBillID from ...

    K3单据编号生成代码

    K3单据编号是该系统中对各种业务单据进行唯一标识的重要元素,确保了数据的准确性和完整性。本文将深入探讨“K3单据编号生成代码”的相关知识点。 首先,我们来看`DATE_FORMAT.txt`可能涉及的内容。在K3系统中,...

    Oracle生成单据编号存储过程的实例代码

    这个过程中提到的"Oracle生成单据编号存储过程"就是一个典型的解决方案,它允许根据特定规则(如按年、按月或按日重置编号)动态生成单据编号。下面我们将详细探讨这一存储过程的工作原理和实现方式。 首先,创建...

    根据当天日期自动生成单据号

    在实际项目中,你可能需要考虑更多的因素,比如并发环境下多个线程同时生成单据号的情况,或者在数据库中存储和检索单据号的需求等。此外,`test.java`文件可能是这个功能的实现代码,你可以查阅这个文件来获得更...

    c#后台生成不重复的订单号及后台存储过程

    该方法通过执行存储过程`PWMS_GetMaxNo`来获取最大订单号,其中使用了`SQLHelp.ExecuteScalar`方法来执行SQL语句,并返回结果。此方法的优点在于可以确保订单号不会冲突,但是每次调用都会增加序列号,类似于自动...

    小系统单据自动生成存储过程

    在小型系统中,为了高效地管理单据,经常会使用存储过程来自动化生成唯一的单据编号。本文将深入探讨如何创建一个名为"uspOrdernumberGenerate"的存储过程,用于自动生成带有日期和顺序号的单据编号。 首先,我们...

    ccflow表单单据模式.docx

    单据模式是Ccflow的一个重要特性,它允许用户在无需经过完整的工作流程情况下,进行数据的存储、查询和修改,适用于多种业务场景。 ### 表单引擎与单据模式 表单引擎是Ccflow的核心组件之一,它负责处理表单的创建...

    如何通过C#实现单据号码的自动增加

    /// 获取下一个单据编号 /// 示例:"DJ000001" -&gt; "DJ000002" /// /// 当前的单据编号 /// 下一个单据编号 public string NextNumber(string BaseNumber) { string NewNumber = ""; // 新的单据编号 int ...

    用友uap开发nc65单据开发详细文档

    - 单据号设置:实现单据编号的自动生成。 ##### 3. 流程配置介绍 - **业务流程配置**: - 定义单据的审批流程。 - 设置不同环节的负责人。 - 自动触发后续动作或生成相关单据。 #### 三、实战开发要点 - **...

    sql自动编号脚本

    该存储过程用于获取单据编号。 - **参数**: - `@IsSave`: smallint,如果为1,则保存新生成的单号;如果为0,则不保存。 - `@FBillType`: int,单据类型ID。 - `@BillID`: varchar(50),输出参数,用于返回生成...

    业务单据(包含订单、项目、两票及其他)用户状态相关知识总结.pdf

    以工作票为例,首先需要找到一个特定的工作票,并获取它的状态和编号。接着,在WCAAP表中根据工作票编号查找相应的对象号,然后将该对象号拷贝到JEST表中。在JEST表中,通过修改数据可以将工作票的状态从"许可开工...

    SQL Server自动生成日期加数字的序列号

    上述示例展示了如何通过存储过程动态地生成这种类型的序列号。下面将详细解释这个过程: 首先,我们创建了一个名为`my_test_database`的数据库,并在其中创建了一个表`my_table`,只有一个字段`my_id`,数据类型为...

    K3 BOS开发百问百答(2007版)

    通常情况下,K3 BOS提供了调用存储过程的API,开发者只需按照文档指引即可完成。 **18. 如何在单据显示前给字段预赋值** 在单据打开之前,预设某些字段的值可以提升用户体验。这可以通过在插件的初始化阶段设置...

    金蝶bos开发问题集

    1. **利用API接口:** 使用BOS提供的API接口获取单据编号组件的信息,这通常用于插件开发中。 ##### 是否可以直接在数据库表中直接修改Bos单据中的字段类型 **问题描述:** 用户询问是否可以直接在数据库表中修改...

    限制一个绑定到备注型字段的文本框的总行数和总字数access2000

    当涉及到存储大量文本数据时,备注型(Memo)字段是理想的选择,因为它可以容纳超过255个字符。然而,有时我们需要对这些字段进行限制,比如控制用户输入的总行数或总字数,以保持数据的一致性和有效性。以下将详细...

    2008年中创校园招聘笔试题

    10. **单据编号更新**:在更新BillInfo表的Code字段时,需要按照新的编码规则进行转换。题目的UPDATE语句实现了这一转换,将原编码的年份、月份保留,添加'BZ'前缀,并在月份后添加'00',最后保留4位流水号。 11. *...

    BOS开发典型示例代码.pdf

    这里创建了一个新的`PaymentBillInfo`对象,并设置了单据编号。此外,还需要设置其他属性,如创建者信息、审核日期等。 #### 2.2 设置创建者信息 设置创建者信息也是单据新增的一个重要步骤。代码示例中使用了`...

    BOS代码二次开发FAQ

    2.BOS后台中如何调用存储过程返回结果集? 3. 客户化开发如何在标准单据上增加F7字段 4.如何通过二次开发设置BIM不支持数据类型的初始置 5. 通用过滤中如何实现F7的组织隔离? 6. 如何在BIM开发复制新增时不复制...

Global site tag (gtag.js) - Google Analytics