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
[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中,`p_BM_GetBillNo`存储过程用于生成单据编号。首先,我们需要找到单据对应的`FBillID`,这可以在`ICBillNo`表中查询得到。例如,若我们要获取采购申请单的`FBillID`: ```sql select FBillID from ...
K3单据编号是该系统中对各种业务单据进行唯一标识的重要元素,确保了数据的准确性和完整性。本文将深入探讨“K3单据编号生成代码”的相关知识点。 首先,我们来看`DATE_FORMAT.txt`可能涉及的内容。在K3系统中,...
这个过程中提到的"Oracle生成单据编号存储过程"就是一个典型的解决方案,它允许根据特定规则(如按年、按月或按日重置编号)动态生成单据编号。下面我们将详细探讨这一存储过程的工作原理和实现方式。 首先,创建...
在实际项目中,你可能需要考虑更多的因素,比如并发环境下多个线程同时生成单据号的情况,或者在数据库中存储和检索单据号的需求等。此外,`test.java`文件可能是这个功能的实现代码,你可以查阅这个文件来获得更...
该方法通过执行存储过程`PWMS_GetMaxNo`来获取最大订单号,其中使用了`SQLHelp.ExecuteScalar`方法来执行SQL语句,并返回结果。此方法的优点在于可以确保订单号不会冲突,但是每次调用都会增加序列号,类似于自动...
在小型系统中,为了高效地管理单据,经常会使用存储过程来自动化生成唯一的单据编号。本文将深入探讨如何创建一个名为"uspOrdernumberGenerate"的存储过程,用于自动生成带有日期和顺序号的单据编号。 首先,我们...
单据模式是Ccflow的一个重要特性,它允许用户在无需经过完整的工作流程情况下,进行数据的存储、查询和修改,适用于多种业务场景。 ### 表单引擎与单据模式 表单引擎是Ccflow的核心组件之一,它负责处理表单的创建...
- 单据号设置:实现单据编号的自动生成。 ##### 3. 流程配置介绍 - **业务流程配置**: - 定义单据的审批流程。 - 设置不同环节的负责人。 - 自动触发后续动作或生成相关单据。 #### 三、实战开发要点 - **...
/// 获取下一个单据编号 /// 示例:"DJ000001" -> "DJ000002" /// /// 当前的单据编号 /// 下一个单据编号 public string NextNumber(string BaseNumber) { string NewNumber = ""; // 新的单据编号 int ...
该存储过程用于获取单据编号。 - **参数**: - `@IsSave`: smallint,如果为1,则保存新生成的单号;如果为0,则不保存。 - `@FBillType`: int,单据类型ID。 - `@BillID`: varchar(50),输出参数,用于返回生成...
以工作票为例,首先需要找到一个特定的工作票,并获取它的状态和编号。接着,在WCAAP表中根据工作票编号查找相应的对象号,然后将该对象号拷贝到JEST表中。在JEST表中,通过修改数据可以将工作票的状态从"许可开工...
上述示例展示了如何通过存储过程动态地生成这种类型的序列号。下面将详细解释这个过程: 首先,我们创建了一个名为`my_test_database`的数据库,并在其中创建了一个表`my_table`,只有一个字段`my_id`,数据类型为...
1. **利用API接口:** 使用BOS提供的API接口获取单据编号组件的信息,这通常用于插件开发中。 ##### 是否可以直接在数据库表中直接修改Bos单据中的字段类型 **问题描述:** 用户询问是否可以直接在数据库表中修改...
当涉及到存储大量文本数据时,备注型(Memo)字段是理想的选择,因为它可以容纳超过255个字符。然而,有时我们需要对这些字段进行限制,比如控制用户输入的总行数或总字数,以保持数据的一致性和有效性。以下将详细...
10. **单据编号更新**:在更新BillInfo表的Code字段时,需要按照新的编码规则进行转换。题目的UPDATE语句实现了这一转换,将原编码的年份、月份保留,添加'BZ'前缀,并在月份后添加'00',最后保留4位流水号。 11. *...
这里创建了一个新的`PaymentBillInfo`对象,并设置了单据编号。此外,还需要设置其他属性,如创建者信息、审核日期等。 #### 2.2 设置创建者信息 设置创建者信息也是单据新增的一个重要步骤。代码示例中使用了`...
2.BOS后台中如何调用存储过程返回结果集? 3. 客户化开发如何在标准单据上增加F7字段 4.如何通过二次开发设置BIM不支持数据类型的初始置 5. 通用过滤中如何实现F7的组织隔离? 6. 如何在BIM开发复制新增时不复制...