voucher -- 会计凭证的主表
(创建时间:2010年06月08日 02:13:00)
陈行远 :
- CREATE TABLE [voucher] (
- [vid] integer identity(1,1) not null CONSTRAINT [PK_vid] PRIMARY KEY, --主键,自增
- [vtype] INTEGER null, -- 凭证类型,和vouchertype表关联
- [period] varchar(6) not null, --会计区间(月份),和accperiod关联
- [vno] int not NULL, --凭证编号
- [vdate] datetime not null, --凭证日期
- [attachnum] int not NULL, --附件张数
- [maker] varchar(30) null, --制单人
- [assessor] varchar(30) null, --审核人
- [tallier] varchar(30) null, --登帐人
- [lastupdatetime] datetime null, --最后更新(插入)时间
- [lastupdateby] varchar(30) null, --更新人
- [vMemo] varchar(250) null, --备注
- [relaapp] varchar(20) null, --关联模块
- [relaid] varchar(20) null, --关联ID
- [s1] varchar(20) null, --以下预留
- [s2] varchar(100) null,
- [s3] varchar(200) null,
- [d1] datetime NULL,
- [d2] datetime NULL,
- [i1] INTEGER null,
- [i2] INTEGER null,
- [i3] INTEGER null,
- [c1] money NULL,
- [c2] money NULL,
- [c3] money NULL
- );
1. vtype + period + Vno 这三个字段组成一个要求唯一的约束,即同一个月份内,相同类型的凭证,编号不能重复
2. 在voucher 表 里面有两个字段:relaapp 和 relaid 用于存储 凭证和您开发的功能模块之间的关联关系。
relaapp 表示 关联的模块名称,如:inventory , 如果是您是从您做的模块中生成的凭证,这个字段是必填的。
relaid 表示 关联的标识号。
3.vdate 要保证落在period制定的日期范围内,period的日期范围参考accperiod表
4.attachnum 附件张数,填写数据来源的记录数量,例如:固定资产新增卡片的张数
5.maker 填写当前的用户姓名,即JS里面就是Const.username, 如果SC 的话就是U_
6. assessor 和 tallier 需要先参考 MySetting 表里面的Vname字段等于accouting.auto 的ShortSetting字段的值
如果MySetting里面找不到accouting.auto这个值的VName , 则 ShortSetting 默认值为1,1
这是一个逗号分隔的两个0或者1的值,前面一个代表assessor , 后面一个代表 tallier
如果值为0,代表 assessor (tallier) 应该填入空字符串,如果为1,则应该填入 当前的用户姓名(即JS里面就是Const.username, 如果SC 的话就是U_ )
如何获得 accouting.auto 对应的值,可以使用SC 内置函数:GetSettingS_("accouting.auto ")
7. relaapp 由其他二次开发的人员写入,这个值要求填入一个和其他模块ID不重复的值,例如独立固定资产模块的开发人员,就应该填入他自己这个模块的名称$fa
8. relaid 这个值也是二次开发人员在写入relaapp的时候填入。这个值用于二次开发人员在voucher这个表里面定位和查找自己写进去的数据,并且这个值最好能和你原有的生成凭证的数据关联。
例如,独立固定资产模块的开发人员,现在生成2010年6月固定资产新增的凭证,那么这个值可以设置为 201006-2
201006 代表数据时间区间
2代表固定资产新增的凭证(如果是变动凭证可以取1或者0,或者其他) 折旧凭证可以用z等等,自己标识不重复的值就可以了
relaapp 和relaid 还用于 帮助二次开发人员控制 “重复生成凭证”和“修改或者删除原有记录”这方面的问题。
当凭证显示给用看的时候,如果relaapp填入了非空的值,用户点击凭证上的 附件 按钮就会调用relaapp指定的页面,你必须实现这个接口来显示 附件的数据:
如果你的模块名是 yourmodule 则在你模块里面必须有一个 yourmodule_voucher.asp 的功能页,凭证的附件按钮会用以下格式提交数据到 这个功能页:
Const=
vid: voucher表的ID
VInfo: 凭证信息格式为 会计期间period + "|" + 凭证分类 + "|" + 凭证编号 + "|" + 凭证日期
relaid: voucher表的relaid的值
建议您在显示凭证附件数据时,显示VInfo的内容,即让用户知道你当前显示的数据是 对应 什么时候 哪一张凭证的
文档中心