1、U8开发之会计凭证组件 U8会计凭证组件摘要凭证组件是提供U8会计凭证录入、查询、修改、联查的界面交互组件。适合于为各种原始单据或其他数据来源如excel并且需要用户交互,转换为会计凭证提供服务。完全后台生成会计凭证不适用此组件。组件文件Us_pz.dll,部署于安装目录u8softUFCOMSQL。概念说明会计凭证:以原始单据如发票、收据等为依据,按照经济业务的事项的内容加以分类(以会计科目体现),并据以确定会计分录(要素:会计科目、借贷金额)后所填制的会计凭证,是登入账簿的直接依据。会计科目:按照经济业务的内容和经济管理的要求,对会计要素的具体内容进行分类核算的科目。辅助核算:会计科目可设
2、置辅助核算属性如客户、供应商、部门、项目等,用以补充会计分录其他辅助信息,如某笔收款的客户信息。凭证类别:如收款凭证、付款凭证、转账凭证目标本文主要介绍凭证组件的基础知识,应用过程及相关注意事项,方便各类U8产品开发人员更好的使用凭证组件,更高效的开发产品。如何使用凭证组件 1.初始化凭证组件Dim WithEvents m_objPz As zzpz. clsPZ 声明为类变量,使用WithEvents关键字从而可以处理事件set m_objPz = New zzpz.clsPZSet m_objPz.zzLogin = m_loginSet m_objPz.zzSys = m_ZwPub
3、总账公用函数ZzPub.clsPub 2.准备临时表数据,凭证组件对外数据接口主要是此临时表 准备临时表数据准备数据 , 临时表结构参见总账凭证表gl_accvouch数据字典临时表名称为m_ZwPub.WbTableName相同的coutno_id表示一张凭证分录1:科目1001借方200strSql=”insert into “ & m_ZwPub.WbTableName & “(ioutperiod,coutsign ,coutno_id,coutsysname,cbill,inid,ccode,dt_date,doutbilldate,bvouchedit,bvalueedit,bco
4、deedit,md) values(12,N项目, N123456,NPM,N & m_login.cUserName & ,1,N1001,2012-12-01,2012-12-01,1,1,1,200)”UfDb.Execute strSql分录2:科目1002贷方200strSql=”insert into “ & m_ZwPub.WbTableName & “(ioutperiod,coutsign ,coutno_id,coutsysname,cbill,inid,ccode,dt_date,doutbilldate,bvouchedit,bvalueedit,bcodeedit,m
5、c) values(12,N项目, N123456,NPM,N & m_login.cUserName & ,1,N1002,2012-12-01,2012-12-01,1,1,1,200)”UfDb.Execute strSqlgl_accvouch数据字典Column NameDescriptionDatatypeLength Allow Nullsi_id 自动编号int4Falseiperiod 会计期间tinyint1Falsecsign 凭证类别字nvarchar8Trueisignseq 凭证类别排序号int4Trueino_id 凭证编号smallint2Trueinid 行号
6、smallint2Falsedbill_date 制单日期datetime8Falseidoc 附单据数smallint2Falsecbill 制单人nvarchar20Trueccheck 审核人nvarchar20Truecbook 记账人nvarchar20Trueibook 记账标志tinyint1Falseccashier 出纳签字人nvarchar20Trueiflag 凭证标志tinyint1Truectext1 凭证头自定义项1nvarchar10Truectext2 凭证头自定义项2nvarchar10Truecdigest 摘要nvarchar120Trueccode 科目
7、编码nvarchar15Falsecexch_name 币种名称nvarchar8Truemd 借方金额money8Falsemc 贷方金额money8Falsemd_f 外币借方金额money8Falsemc_f 外币贷方金额money8Falsenfrat 汇率float8Falsend_s 数量借方float8Falsenc_s 数量贷方float8Falsecsettle 结算方式编码nvarchar3Truecn_id 票据号nvarchar30Truedt_date 票号发生日期datetime8Truecdept_id 部门编码nvarchar12Truecperson_id 职
8、员编码nvarchar20Trueccus_id 客户编码nvarchar20Truecsup_id 供应商编码nvarchar20Truecitem_id 项目编码nvarchar20Truecitem_class 项目大类编码nvarchar2Truecname 业务员nvarchar40Trueccode_equal 对方科目编码nvarchar50Trueiflagbank 银行账两清标志tinyint1TrueiflagPerson 往来账两清标志tinyint1Truebdelete 是否核销bit1Truecoutaccset 外部凭证账套号nvarchar3Trueioutye
9、ar 外部凭证会计年度smallint2Truecoutsysname 外部凭证系统名称nvarchar10Truecoutsysver 外部凭证系统版本号nvarchar10Truedoutbilldate 外部凭证制单日期datetime8Trueioutperiod 外部凭证会计期间tinyint1Truecoutsign 外部凭证业务类型nvarchar100Truecoutno_id 外部凭证业务号nvarchar50Truedoutdate 外部凭证单据日期datetime8Truecoutbillsign 外部凭证单据类型nvarchar100Truecoutid 外部凭证单据号
10、nvarchar50Truebvouchedit 凭证是否可修改bit1TruebvouchAddordele 凭证分录是否可增删bit1Truebvouchmoneyhold 凭证合计金额是否保值bit1Truebvalueedit 分录数值是否可修改bit1Truebcodeedit 分录科目是否可修改bit1Trueccodecontrol 分录受控科目可用状态nvarchar50TruebPCSedit 分录往来项是否可修改bit1TruebDeptedit 分录部门是否可修改bit1TruebItemedit 分录项目是否可修改bit1TruebCusSupInput 分录往来项是否
11、必输bit1TruecDefine1 自定义项1nvarchar20TruecDefine2 自定义项2nvarchar20TruecDefine3 自定义项3nvarchar20TruecDefine4 自定义项4datetime8TruecDefine5 自定义项5int4TruecDefine6 自定义项6datetime8TruecDefine7 自定义项7float8TruecDefine8 自定义项8nvarchar4TruecDefine9 自定义项9nvarchar8TruecDefine10 自定义项10nvarchar60TruecDefine11 自定义项11nvarch
12、ar120TruecDefine12 自定义项12nvarchar120TruecDefine13 自定义项13nvarchar120TruecDefine14 自定义项14nvarchar120TruecDefine15 自定义项15int4TruecDefine16 自定义项16float8True常见问题: 提示凭证不可修改怎么办?字段bvouchedit=1 提示不能增删凭证分录怎么办?字段bvouchAddordele =1 提示借贷金额不可修改怎么办?字段bvouchmoneyhold =1 提示科目不可修改怎么办?字段bcodeedit =1 3.调用凭证组件 调用凭证组件Sub
13、 StartUpPz(SysName As String, AuthId As String, StyleVal As pzStyle, Version, k1, k2, k3, k4, iyear As Integer, sbilldate As Date)参数:SysName为外部系统ID(可参考ufsystem.ua_subsys)AuthId 权限IDStyleVal 制单状态枚举Pz_ZD=0增加;Pz_CX=2修改;Pz_LC=3联查Version 可选参数忽略k1 是否记账K2 期间K3 凭证类别K4 凭证号iYear 年度sbilldate 凭证日期4. 通过事件回写业务单据凭
14、证信息 回写凭证信息通过事件回写凭证信息Private Sub m_objPz_Save(rstCurrentVouch As ADODB.Recordset, IsSuccess As Boolean) Dim objCon As ADODB.Connection Set objCon = rstCurrentVouch.ActiveConnection - 代码略,注意使用objCon连接以保证统一的事务管理 - IsSuccess = True End Sub 应用案例详细说明实现过程1. 应用场景描述某ERP系统费用单据推到U8生成凭证2. 实现步骤过程及效果 (1)开发可与U8门户集
15、成的dll,参考U8开发之CS门户集成相关文档 (2)引用USDbKit.DLL,USZZPUB.DLL,US_Pz.dll(U8SOFTufcomsql) (3)实现费用单据列表,可供选择生成凭证 (4)初始化总账公用函数ZzPub.clsPub 初始化总账公用函数参数说明第一个参数为外部系统ID(可参考ufsystem.ua_subsys)m_login为Login对象UfDb为UfDbKit.UfDatabase (引用usdbkit.dll)Dim m_ZwPub As new ZzPub.clsPub 定义公用函数(引用uszzpub.dll)Dim UfDb As New UfDb
16、Kit.UfDatabaseUfDb.OpenDatabase m_login.UfDbNamem_ZwPub.InitPubs2 PM, m_login.UfSystemDb, UfDb, m_login.cAcc_Id, m_login.cIYear, m_login.cUserId, m_login.CurDate, m_login.SysPassword10.1及以后版本通过赋g_business可以嵌入门户,否则凭证为模态窗口Set m_ZwPub.g_business = g_business(5).初始化凭证组件 初始化凭证组件Dim WithEvents m_objPz As
17、zzpz. clsPZ 声明为类变量set m_objPz = New zzpz.clsPZSet m_objPz.zzLogin = m_loginSet m_objPz.zzSys = m_ZwPub (6).准备临时表数据 准备临时表数据准备数据 , 临时表结构参见总账凭证表gl_accvouch数据字典临时表名称为m_ZwPub.WbTableName相同的coutno_id表示一张凭证分录1:科目1001借方200strSql=”insert into “ & m_ZwPub.WbTableName & “(ioutperiod,coutsign ,coutno_id,coutsys
18、name,cbill,inid,ccode,dt_date,doutbilldate,bvouchedit,bvalueedit,bcodeedit,md) values(12,N项目, N123456,NPM,N & m_login.cUserName & ,1,N1001,2012-12-01,2012-12-01,1,1,1,200)”UfDb.Execute strSql分录2:科目1002贷方200strSql=”insert into “ & m_ZwPub.WbTableName & “(ioutperiod,coutsign ,coutno_id,coutsysname,cbi
19、ll,inid,ccode,dt_date,doutbilldate,bvouchedit,bvalueedit,bcodeedit,mc) values(12,N项目, N123456,NPM,N & m_login.cUserName & ,1,N1002,2012-12-01,2012-12-01,1,1,1,200)”UfDb.Execute strSql(7).调用凭证组件 调用凭证组件 枚举Pz_ZD=0增加;Pz_CX=2修改;Pz_LC=3联查m_objPz.StartUpPz PM, PM034, Pz_ZD 8.回写凭证信息 回写凭证信息通过事件回写凭证信息Private Sub m_objPz_Save(rstCurrentVouch As ADODB.Recordset, IsSuccess As Boolean) Dim objCon As ADODB.Connection Set objCon = rstCurrentVouch.ActiveConnection -代码略,注意使用objCon连接以保证统一的事务管理回写费用单据凭证信息(一般回写coutno_id字段并通过它进行关联查询),从而实现不可重复生成凭证和联查凭证功能 - IsSuccess = True End Sub
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1