我作的一个程序, 必须在每一个单据或者凭证表中加一个审核状态字段
下面给出几个表的结构, 主键和外键没有贴出来,相信你可以自己分析:
流程可并行可串行, 最长5个流程,任意流程的可能要改一个表结构才行。
CREATE TABLE [dbo].[审核表] (
[单据名称] [varchar] (10) NOT NULL ,
[单据编号] [varchar] (16) NOT NULL ,
[本部门名称] [varchar] (10) NOT NULL ,
[审核人员1] [varchar] (8) NULL ,
[审核日期1] [datetime] NULL ,
[审核取消否1] [bit] NULL ,
[审核人员2] [varchar] (8) NULL ,
[审核日期2] [datetime] NULL ,
[审核取消否2] [bit] NULL ,
[审核人员3] [varchar] (8) NULL ,
[审核日期3] [datetime] NULL ,
[审核取消否3] [bit] NULL ,
[审核人员4] [varchar] (8) NULL ,
[审核日期4] [datetime] NULL ,
[审核取消否4] [bit] NULL ,
[审核人员5] [varchar] (8) NULL ,
[审核日期5] [datetime] NULL ,
[审核取消否5] [bit] NULL ,
[审核总长度] [int] NOT NULL ,
[当前审核序] [int] NOT NULL ,
[前一审核人] [varchar] (8) NULL ,
[当前审核人] [varchar] (8) NULL ,
[后一审核人] [varchar] (8) NULL ,
[myTime] [timestamp] NULL
) ON [PRIMARY]
GO
/****** Object: Table [dbo].[审核流程定义表] Script Date: 2001-07-18 8:13:04 ******/
CREATE TABLE [dbo].[审核流程定义表] (
[单据名称] [varchar] (16) NOT NULL ,
[审核人员1] [varchar] (8) NULL ,
[审核人员2] [varchar] (8) NULL ,
[审核人员3] [varchar] (8) NULL ,
[审核人员4] [varchar] (8) NULL ,
[审核人员5] [varchar] (8) NULL
) ON [PRIMARY]
GO
CREATE VIEW dbo.VIEW我的审核任务
AS
SELECT 单据名称, 单据编号, 本部门名称, 审核人员1, 审核日期1, 审核取消否1,
审核人员2, 审核日期2, 审核取消否2, 审核人员3, 审核日期3, 审核取消否3,
审核人员4, 审核日期4, 审核取消否4, 审核人员5, 审核日期5, 审核取消否5,
审核总长度, 当前审核序, 前一审核人, 当前审核人, 后一审核人, myTime
FROM dbo.审核表
WHERE (当前审核人 = SYSTEM_USER) OR
(当前审核人 = 'b' + SYSTEM_USER) OR
(SUBSTRING(当前审核人, 1, 1) = 'b') AND (后一审核人 = 'b' + SYSTEM_USER) OR
(当前审核序 = 1) AND (审核人员3 = 'b' + SYSTEM_USER) AND
(SUBSTRING(当前审核人, 1, 1) = 'b') AND (SUBSTRING(后一审核人, 1, 1) = 'b') OR
(当前审核序 = 2) AND (审核人员4 = 'b' + SYSTEM_USER) AND
(SUBSTRING(当前审核人, 1, 1) = 'b') AND (SUBSTRING(后一审核人, 1, 1) = 'b') OR
(当前审核序 = 3) AND (审核人员5 = 'b' + SYSTEM_USER) AND
(SUBSTRING(当前审核人, 1, 1) = 'b') AND (SUBSTRING(后一审核人, 1, 1) = 'b')
CREATE VIEW dbo.view所有单据审核状态查询
AS
SELECT 单据名称, 单据编号, 本部门名称, 审核人员1, 审核日期1, 审核取消否1,
审核人员2, 审核日期2, 审核取消否2, 审核人员3, 审核日期3, 审核取消否3,
审核人员4, 审核日期4, 审核取消否4, 审核人员5, 审核日期5, 审核取消否5,
审核总长度, 当前审核序, 前一审核人, 当前审核人, 后一审核人, myTime
FROM dbo.审核表