U8开发之会计凭证组件.docx
《U8开发之会计凭证组件.docx》由会员分享,可在线阅读,更多相关《U8开发之会计凭证组件.docx(13页珍藏版)》请在冰豆网上搜索。
U8开发之会计凭证组件
U8会计凭证组件
摘要
凭证组件是提供U8会计凭证录入、查询、修改、联查的界面交互组件。
适合于为各种原始单据或其他数据来源如excel并且需要用户交互,转换为会计凭证提供服务。
完全后台生成会计凭证不适用此组件。
组件文件Us_pz.dll,部署于安装目录u8soft\UFCOMSQL。
概念说明
会计凭证:
以原始单据如发票、收据等为依据,按照经济业务的事项的内容加以分类(以会计科目体现),并据以确定会计分录(要素:
会计科目、借贷金额)后所填制的会计凭证,是登入账簿的直接依据。
会计科目:
按照经济业务的内容和经济管理的要求,对会计要素的具体内容进行分类核算的科目。
辅助核算:
会计科目可设置辅助核算属性如客户、供应商、部门、项目等,用以补充会计分录其他辅助信息,如某笔收款的客户信息。
凭证类别:
如收款凭证、付款凭证、转账凭证
目标
本文主要介绍凭证组件的基础知识,应用过程及相关注意事项,方便各类U8产品开发人员更好的使用凭证组件,更高效的开发产品。
如何使用凭证组件
1.初始化凭证组件
DimWithEventsm_objPzAszzpz.clsPZ‘声明为类变量,使用WithEvents关键字从而可以处理事件
setm_objPz=Newzzpz.clsPZ
Setm_objPz.zzLogin=m_login
Setm_objPz.zzSys=m_ZwPub‘总账公用函数ZzPub.clsPub
2.准备临时表数据,凭证组件对外数据接口主要是此临时表
准备临时表数据
‘准备数据,临时表结构参见总账凭证表gl_accvouch数据字典
‘临时表名称为m_ZwPub.WbTableName
‘相同的coutno_id表示一张凭证
‘分录1:
科目1001借方200
strSql=”insertinto“&m_ZwPub.WbTableName&“(ioutperiod,coutsign,coutno_id,coutsysname,cbill,inid,ccode,dt_date,doutbilldate,bvouchedit,bvalueedit,bcodeedit,md)values(12,N'项目',N'123456',N'PM',N'"&m_login.cUserName&"',1,N'1001','2012-12-01','2012-12-01',1,1,1,200)”
UfDb.ExecutestrSql
‘分录2:
科目1002贷方200
strSql=”insertinto“&m_ZwPub.WbTableName&“(ioutperiod,coutsign,coutno_id,coutsysname,cbill,inid,ccode,dt_date,doutbilldate,bvouchedit,bvalueedit,bcodeedit,mc)values(12,N'项目',N'123456',N'PM',N'"&m_login.cUserName&"',1,N'1002','2012-12-01','2012-12-01',1,1,1,200)”
UfDb.ExecutestrSql
gl_accvouch数据字典
ColumnName
Description
Datatype
Length
AllowNulls
i_id
自动编号
int
4
False
iperiod
会计期间
tinyint
1
False
csign
凭证类别字
nvarchar
8
True
isignseq
凭证类别排序号
int
4
True
ino_id
凭证编号
smallint
2
True
inid
行号
smallint
2
False
dbill_date
制单日期
datetime
8
False
idoc
附单据数
smallint
2
False
cbill
制单人
nvarchar
20
True
ccheck
审核人
nvarchar
20
True
cbook
记账人
nvarchar
20
True
ibook
记账标志
tinyint
1
False
ccashier
出纳签字人
nvarchar
20
True
iflag
凭证标志
tinyint
1
True
ctext1
凭证头自定义项1
nvarchar
10
True
ctext2
凭证头自定义项2
nvarchar
10
True
cdigest
摘要
nvarchar
120
True
ccode
科目编码
nvarchar
15
False
cexch_name
币种名称
nvarchar
8
True
md
借方金额
money
8
False
mc
贷方金额
money
8
False
md_f
外币借方金额
money
8
False
mc_f
外币贷方金额
money
8
False
nfrat
汇率
float
8
False
nd_s
数量借方
float
8
False
nc_s
数量贷方
float
8
False
csettle
结算方式编码
nvarchar
3
True
cn_id
票据号
nvarchar
30
True
dt_date
票号发生日期
datetime
8
True
cdept_id
部门编码
nvarchar
12
True
cperson_id
职员编码
nvarchar
20
True
ccus_id
客户编码
nvarchar
20
True
csup_id
供应商编码
nvarchar
20
True
citem_id
项目编码
nvarchar
20
True
citem_class
项目大类编码
nvarchar
2
True
cname
业务员
nvarchar
40
True
ccode_equal
对方科目编码
nvarchar
50
True
iflagbank
银行账两清标志
tinyint
1
True
iflagPerson
往来账两清标志
tinyint
1
True
bdelete
是否核销
bit
1
True
coutaccset
外部凭证账套号
nvarchar
3
True
ioutyear
外部凭证会计年度
smallint
2
True
coutsysname
外部凭证系统名称
nvarchar
10
True
coutsysver
外部凭证系统版本号
nvarchar
10
True
doutbilldate
外部凭证制单日期
datetime
8
True
ioutperiod
外部凭证会计期间
tinyint
1
True
coutsign
外部凭证业务类型
nvarchar
100
True
coutno_id
外部凭证业务号
nvarchar
50
True
doutdate
外部凭证单据日期
datetime
8
True
coutbillsign
外部凭证单据类型
nvarchar
100
True
coutid
外部凭证单据号
nvarchar
50
True
bvouchedit
凭证是否可修改
bit
1
True
bvouchAddordele
凭证分录是否可增删
bit
1
True
bvouchmoneyhold
凭证合计金额是否保值
bit
1
True
bvalueedit
分录数值是否可修改
bit
1
True
bcodeedit
分录科目是否可修改
bit
1
True
ccodecontrol
分录受控科目可用状态
nvarchar
50
True
bPCSedit
分录往来项是否可修改
bit
1
True
bDeptedit
分录部门是否可修改
bit
1
True
bItemedit
分录项目是否可修改
bit
1
True
bCusSupInput
分录往来项是否必输
bit
1
True
cDefine1
自定义项1
nvarchar
20
True
cDefine2
自定义项2
nvarchar
20
True
cDefine3
自定义项3
nvarchar
20
True
cDefine4
自定义项4
datetime
8
True
cDefine5
自定义项5
int
4
True
cDefine6
自定义项6
datetime
8
True
cDefine7
自定义项7
float
8
True
cDefine8
自定义项8
nvarchar
4
True
cDefine9
自定义项9
nvarchar
8
True
cDefine10
自定义项10
nvarchar
60
True
cDefine11
自定义项11
nvarchar
120
True
cDefine12
自定义项12
nvarchar
120
True
cDefine13
自定义项13
nvarchar
120
True
cDefine14
自定义项14
nvarchar
120
True
cDefine15
自定义项15
int
4
True
cDefine16
自定义项16
float
8
True
常见问题:
提示凭证不可修改怎么办?
字段bvouchedit=1
提示不能增删凭证分录怎么办?
字段bvouchAddordele=1
提示借贷金额不可修改怎么办?
字段bvouchmoneyhold=1
提示科目不可修改怎么办?
字段bcodeedit=1
3.调用凭证组件
调用凭证组件
SubStartUpPz(SysNameAsString,AuthIdAsString,StyleValAspzStyle,[Version],[k1],[k2],[k3],[k4],[iyearAsInteger],[sbilldateAsDate])
参数:
SysName为外部系统ID(可参考ufsystem..ua_subsys)
AuthId权限ID
StyleVal制单状态枚举Pz_ZD=0增加;Pz_CX=2修改;Pz_LC=3联查
Version可选参数忽略
k1是否记账
K2期间
K3凭证类别
K4凭证号
iYear年度
sbilldate凭证日期
4.通过事件回写业务单据凭证信息
回写凭证信息
‘通过事件回写凭证信息
PrivateSubm_objPz_Save(rstCurrentVouchAsADODB.Recordset,IsSuccessAsBoolean)
DimobjConAsADODB.Connection
SetobjCon=rstCurrentVouch.ActiveConnection
'--------------------
'代码略,注意使用objCon连接以保证统一的事务管理
'--------------------
IsSuccess=True
EndSub
应用案例
详细说明实现过程
1.应用场景描述
某ERP系统费用单据推到U8生成凭证
2.实现步骤过程及效果
(1)开发可与U8门户集成的dll,参考U8开发之CS门户集成相关文档
(2)引用USDbKit.DLL,USZZPUB.DLL,US_Pz.dll(U8SOFT\ufcomsql)
(3)实现费用单据列表,可供选择生成凭证
(4)初始化总账公用函数ZzPub.clsPub
初始化总账公用函数
‘参数说明
‘第一个参数为外部系统ID(可参考ufsystem..ua_subsys)
‘m_login为Login对象
‘UfDb为UfDbKit.UfDatabase(引用usdbkit.dll)
Dimm_ZwPubAsnewZzPub.clsPub'定义公用函数(引用uszzpub.dll)
DimUfDbAsNewUfDbKit.UfDatabase
UfDb.OpenDatabasem_login.UfDbName
m_ZwPub.InitPubs2"PM",m_login.UfSystemDb,UfDb,m_login.cAcc_Id,m_login.cIYear,m_login.cUserId,m_login.CurDate,m_login.SysPassword
’10.1及以后版本通过赋g_business可以嵌入门户,否则凭证为模态窗口
Setm_ZwPub.g_business=g_business
(5).初始化凭证组件
初始化凭证组件
DimWithEventsm_objPzAszzpz.clsPZ‘声明为类变量
setm_objPz=Newzzpz.clsPZ
Setm_objPz.zzLogin=m_login
Setm_objPz.zzSys=m_ZwPub
(6).准备临时表数据
准备临时表数据
‘准备数据,临时表结构参见总账凭证表gl_accvouch数据字典
‘临时表名称为m_ZwPub.WbTableName
‘相同的coutno_id表示一张凭证
‘分录1:
科目1001借方200
strSql=”insertinto“&m_ZwPub.WbTableName&“(ioutperiod,coutsign,coutno_id,coutsysname,cbill,inid,ccode,dt_date,doutbilldate,bvouchedit,bvalueedit,bcodeedit,md)values(12,N'项目',N'123456',N'PM',N'"&m_login.cUserName&"',1,N'1001','2012-12-01','2012-12-01',1,1,1,200)”
UfDb.ExecutestrSql
‘分录2:
科目1002贷方200
strSql=”insertinto“&m_ZwPub.WbTableName&“(ioutperiod,coutsign,coutno_id,coutsysname,cbill,inid,ccode,dt_date,doutbilldate,bvouchedit,bvalueedit,bcodeedit,mc)values(12,N'项目',N'123456',N'PM',N'"&m_login.cUserName&"',1,N'1002','2012-12-01','2012-12-01',1,1,1,200)”
UfDb.ExecutestrSql
(7).调用凭证组件
调用凭证组件
‘枚举Pz_ZD=0增加;Pz_CX=2修改;Pz_LC=3联查
m_objPz.StartUpPz"PM","PM034",Pz_ZD
8.回写凭证信息
回写凭证信息
‘通过事件回写凭证信息
PrivateSubm_objPz_Save(rstCurrentVouchAsADODB.Recordset,IsSuccessAsBoolean)
DimobjConAsADODB.Connection
SetobjCon=rstCurrentVouch.ActiveConnection
'--------------------
'代码略,注意使用objCon连接以保证统一的事务管理
‘回写费用单据凭证信息(一般回写coutno_id字段并通过它进行关联查询),从而实现不可重复生成凭证和联查凭证功能
'--------------------
IsSuccess=True
EndSub