谁叫用友的财务软件卖得火呢,其他软件公司为了要给客户上线,其系统之间必须做接口,而用友有一个凭证导入工具说实在话实在不太好用,于是自己写了一个凭证导入工具,适合于U8.31,,个人感觉U8财务部分的表结构当初涉及时没有考虑扩展性,辅助核算项目都在一个凭证表中
TableID | FieldID | EFieldName | CFieldName | DataType | Length | isnullable |
---|---|---|---|---|---|---|
202 | 1 | i_id | 自动编号 | int | 4 | 0 |
202 | 2 | iperiod | 会计期间 | tinyint | 1 | 0 |
202 | 3 | csign | 凭证类别字 | varchar | 2 | 1 |
202 | 4 | isignseq | 凭证类别排序号 | tinyint | 1 | 1 |
202 | 5 | ino_id | 凭证编号 | smallint | 2 | 1 |
202 | 6 | inid | 行号 | smallint | 2 | 0 |
202 | 7 | dbill_date | 制单日期 | datetime | 8 | 0 |
202 | 8 | idoc | 附单据数 | smallint | 2 | 0 |
202 | 9 | cbill | 制单人 | varchar | 20 | 1 |
202 | 10 | ccheck | 审核人 | varchar | 20 | 1 |
202 | 11 | cbook | 记帐人 | varchar | 20 | 1 |
202 | 13 | ccashier | 出纳人 | varchar | 20 | 1 |
202 | 14 | iflag | 凭证标志 | tinyint | 1 | 1 |
202 | 15 | ctext1 | 凭证头自定义项1 | varchar | 10 | 1 |
202 | 16 | ctext2 | 凭证头自定义项2 | varchar | 10 | 1 |
202 | 17 | cdigest | 摘要 | varchar | 60 | 0 |
202 | 18 | ccode | 科目编码 | varchar | 15 | 0 |
202 | 19 | cexch_name | 币种 | varchar | 8 | 1 |
202 | 20 | md | 借方金额 | money | 8 | 0 |
202 | 21 | mc | 贷方金额 | money | 8 | 0 |
202 | 22 | md_f | 外币借方金额 | money | 8 | 0 |
202 | 23 | mc_f | 外币贷方金额 | money | 8 | 0 |
202 | 24 | nfrat | 汇率 | float | 8 | 0 |
202 | 25 | nd_s | 数量借方 | float | 8 | 0 |
202 | 26 | nc_s | 数量贷方 | float | 8 | 0 |
202 | 27 | csettle | 结算方式 | varchar | 3 | 1 |
202 | 28 | cn_id | 票号 | varchar | 10 | 1 |
202 | 29 | dt_date | 票号发生日期 | datetime | 8 | 1 |
202 | 30 | cdept_id | 部门编码 | varchar | 12 | 1 |
202 | 31 | cperson_id | 职员编码 | varchar | 8 | 1 |
202 | 32 | ccus_id | 客户编码 | varchar | 20 | 1 |
202 | 33 | csup_id | 供应商编码 | varchar | 12 | 1 |
202 | 34 | citem_id | 项目编码 | varchar | 20 | 1 |
202 | 35 | citem_class | 项目大类编码 | varchar | 2 | 1 |
202 | 36 | cname | 业务员 | varchar | 20 | 1 |
202 | 37 | ccode_equal | 对方科目 | varchar | 50 | 1 |
202 | 38 | iflagbank | 银行帐两清标志 | tinyint | 1 | 1 |
202 | 39 | iflagPerson | 往来帐两清标志 | tinyint | 1 | 1 |
202 | 40 | bdelete | 是否核销 | bit | 1 | 1 |
202 | 41 | coutaccset | 外部凭证帐套号 | varchar | 3 | 1 |
202 | 42 | ioutyear | 外部凭证会计年度 | smallint | 2 | 1 |
202 | 43 | coutsysname | 外部凭证系统名称 | varchar | 10 | 1 |
202 | 44 | coutsysver | 外部凭证系统版本号 | varchar | 10 | 1 |
202 | 45 | doutbilldate | 外部凭证制单日期 | datetime | 8 | 1 |
202 | 46 | ioutperiod | 外部凭证会计期间 | tinyint | 1 | 1 |
202 | 47 | coutsign | 外部凭证业务类型 | varchar | 20 | 1 |
202 | 48 | coutno_id | 外部凭证业务号 | varchar | 30 | 1 |
202 | 49 | doutdate | 外部凭证单据日期 | datetime | 8 | 1 |
202 | 50 | coutbillsign | 外部凭证单据类型 | varchar | 20 | 1 |
202 | 51 | coutid | 外部凭证单据号 | varchar | 50 | 1 |
202 | 52 | bvouchedit | 凭证是否可修改 | bit | 1 | 1 |
202 | 53 | bvouchAddordele | 凭证分录是否可增删 | bit | 1 | 1 |
202 | 54 | bvouchmoneyhold | 凭证合计金额是否保值 | bit | 1 | 1 |
202 | 55 | bvalueedit | 分录数值是否可修改 | bit | 1 | 1 |
202 | 56 | bcodeedit | 分录科目是否可修改 | bit | 1 | 1 |
202 | 57 | ccodecontrol | 分录受控科目可用状态 | varchar | 50 | 1 |
202 | 58 | bPCSedit | 分录往来项是否可修改 | bit | 1 | 1 |
202 | 59 | bDeptedit | 分录部门是否可修改 | bit | 1 | 1 |
202 | 60 | bItemedit | 分录项目是否可修改 | bit | 1 | 1 |
202 | 61 | bCusSupInput | 分录往来项是否必输 | bit | 1 | 1 |
202 | 62 | cDefine1 | 自定义字段1 | varchar | 20 | 1 |
202 | 63 | cDefine2 | 自定义字段2 | varchar | 20 | 1 |
202 | 64 | cDefine3 | 自定义字段3 | varchar | 20 | 1 |
202 | 65 | cDefine4 | 自定义字段4 | datetime | 8 | 1 |
202 | 66 | cDefine5 | 自定义字段5 | int | 4 | 1 |
202 | 67 | cDefine6 | 自定义字段6 | datetime | 8 | 1 |
202 | 68 | cDefine7 | 自定义字段7 | float | 8 | 1 |
202 | 69 | cDefine8 | 自定义字段8 | varchar | 4 | 1 |
202 | 70 | cDefine9 | 自定义字段9 | varchar | 8 | 1 |
202 | 71 | cDefine10 | 自定义字段10 | varchar | 60 | 1 |
202 | 12 | ibook | 记账标志 | tinyint | 1 | 0 |
科目表
TableID | FieldID | EFieldName | CFieldName | DataType | Length | isnullable |
---|---|---|---|---|---|---|
99 | 1 | i_id | 自动编号 | int | 4 | 0 |
99 | 2 | cclass | 科目类型 | varchar | 14 | 0 |
99 | 3 | cclass_engl | 科目类型英文名称 | varchar | 50 | 0 |
99 | 4 | cclassany | 财务分析类型 | varchar | 14 | 1 |
99 | 5 | cclassany_engl | 财务分析类型英文名称 | varchar | 50 | 1 |
99 | 6 | ccode | 科目编码 | varchar | 15 | 0 |
99 | 7 | ccode_name | 科目名称 | varchar | 40 | 1 |
99 | 8 | ccode_engl | 科目英文名称 | varchar | 100 | 1 |
99 | 9 | igrade | 科目级次 | tinyint | 1 | 0 |
99 | 10 | bproperty | 科目性质 | bit | 1 | 0 |
99 | 11 | cbook_type | 帐页格式 | varchar | 10 | 0 |
99 | 12 | cbook_type_engl | 帐页格式英文名称 | varchar | 50 | 0 |
99 | 13 | chelp | 科目助记码 | varchar | 6 | 1 |
99 | 14 | cexch_name | 币种 | varchar | 8 | 1 |
99 | 15 | cmeasure | 计量单位 | varchar | 6 | 1 |
99 | 16 | bperson | 是否个人往来核算 | bit | 1 | 0 |
99 | 17 | bcus | 是否客户往来核算 | bit | 1 | 0 |
99 | 18 | bsup | 是否供应商往来核算 | bit | 1 | 0 |
99 | 19 | bdept | 是否部门核算 | bit | 1 | 0 |
99 | 20 | bitem | 是否项目核算 | bit | 1 | 0 |
99 | 21 | cass_item | 项目大类 | varchar | 2 | 1 |
99 | 22 | br | 是否日记帐 | bit | 1 | 0 |
99 | 23 | be | 是否银行帐 | bit | 1 | 0 |
99 | 24 | cgather | 是否汇总打印 | varchar | 15 | 1 |
99 | 25 | bend | 是否末级 | bit | 1 | 0 |
99 | 26 | bexchange | 是否参与汇兑损益计算 | bit | 1 | 0 |
99 | 27 | bcash | 是否现金科目 | bit | 1 | 0 |
99 | 28 | bbank | 是否银行科目 | bit | 1 | 0 |
99 | 29 | bused | 银行帐科目是否启用 | bit | 1 | 0 |
99 | 30 | bd_c | 银行帐科目对帐方向 | bit | 1 | 0 |
99 | 31 | dbegin | 银行帐科目启用时间 | datetime | 8 | 1 |
99 | 32 | dend | 银行帐科目对帐截止日期 | datetime | 8 | 1 |
99 | 33 | itrans | 特殊科目标志 | tinyint | 1 | 1 |
99 | 34 | bclose | 科目是否封存 | bit | 1 | 0 |
99 | 35 | cother | 受控科目 | varchar | 10 | 1 |
99 | 36 | iotherused | 其它系统是否使用 | int | 4 | 1 |
99 | 37 | bcDefine1 | 自定义字段1 | bit | 1 | 1 |
99 | 38 | bcDefine2 | 自定义字段2 | bit | 1 | 1 |
99 | 39 | bcDefine3 | 自定义字段3 | bit | 1 | 1 |
99 | 40 | bcDefine4 | 自定义字段4 | bit | 1 | 1 |
99 | 41 | bcDefine5 | 自定义字段5 | bit | 1 | 1 |
99 | 42 | bcDefine6 | 自定义字段6 | bit | 1 | 1 |
99 | 43 | bcDefine7 | 自定义字段7 | bit | 1 | 1 |
99 | 44 | bcDefine8 | 自定义字段8 | bit | 1 | 1 |
99 | 45 | bcDefine9 | 自定义字段9 | bit | 1 | 1 |
99 | 46 | bcDefine10 | 自定义字段10 | bit | 1 | 1 |
99 | 49 | bCashItem | 是否常用现金流量科目 | bit | 1 | 0 |
99 | 48 | bGCJS | 是否工程结算科目 | bit | 1 | 0 |
99 | 47 | iViewItem | 在建工程项目科目类型 | int | 4 | 0 |
客户表
TableID | FieldID | EFieldName | CFieldName | DataType | Length | isnullable |
---|---|---|---|---|---|---|
105 | 1 | cCusCode | 客户编码 | varchar | 20 | 0 |
105 | 2 | cCusName | 客户名称 | varchar | 98 | 1 |
105 | 3 | cCusAbbName | 客户简称 | varchar | 60 | 0 |
105 | 4 | cCCCode | 分类编码 | varchar | 12 | 1 |
105 | 5 | cDCCode | 地区编码 | varchar | 12 | 1 |
105 | 6 | cTrade | 所属行业 | varchar | 10 | 1 |
105 | 7 | cCusAddress | 地址 | varchar | 98 | 1 |
105 | 8 | cCusPostCode | 邮政编码 | varchar | 6 | 1 |
105 | 9 | cCusRegCode | 纳税人登记号 | varchar | 18 | 1 |
105 | 10 | cCusBank | 开户银行 | varchar | 30 | 1 |
105 | 11 | cCusAccount | 银行帐号 | varchar | 50 | 1 |
105 | 12 | dCusDevDate | 发展日期 | datetime | 8 | 1 |
105 | 13 | cCusLPerson | 法人 | varchar | 10 | 1 |
105 | 14 | cCusEmail | Email地址 | varchar | 30 | 1 |
105 | 15 | cCusPerson | 联系人 | varchar | 10 | 1 |
105 | 16 | cCusPhone | 电话 | varchar | 20 | 1 |
105 | 17 | cCusFax | 传真 | varchar | 20 | 1 |
105 | 18 | cCusBP | 呼机 | varchar | 20 | 1 |
105 | 19 | cCusHand | 手机 | varchar | 20 | 1 |
105 | 20 | cCusPPerson | 专管业务员 | varchar | 10 | 1 |
105 | 21 | iCusDisRate | 扣率 | float | 8 | 1 |
105 | 22 | cCusCreGrade | 信用等级 | varchar | 6 | 1 |
105 | 23 | iCusCreLine | 信用额度 | float | 8 | 1 |
105 | 24 | iCusCreDate | 信用期限 | tinyint | 1 | 1 |
105 | 25 | cCusPayCond | 付款条件 | varchar | 20 | 1 |
105 | 26 | cCusOAddress | 发货地址 | varchar | 40 | 1 |
105 | 27 | cCusOType | 发货方式 | varchar | 10 | 1 |
105 | 28 | cCusHeadCode | 客户总公司编码 | varchar | 20 | 1 |
105 | 29 | cCusWhCode | 发货仓库 | varchar | 10 | 1 |
105 | 30 | cCusDepart | 分管部门 | varchar | 12 | 1 |
105 | 31 | iARMoney | 应收余额 | float | 8 | 1 |
105 | 32 | dLastDate | 最后交易日期 | datetime | 8 | 1 |
105 | 33 | iLastMoney | 最后交易金额 | float | 8 | 1 |
105 | 34 | dLRDate | 最后收款日期 | datetime | 8 | 1 |
105 | 35 | iLRMoney | 最后收款金额 | float | 8 | 1 |
105 | 36 | dEndDate | 停用日期 | datetime | 8 | 1 |
105 | 37 | iFrequency | 使用频度 | int | 4 | 1 |
105 | 38 | cCusDefine1 | 自定义项1 | varchar | 20 | 1 |
105 | 39 | cCusDefine2 | 自定义项2 | varchar | 20 | 1 |
105 | 40 | cCusDefine3 | 自定义项3 | varchar | 20 | 1 |
105 | 41 | iCostGrade | 价格级别 | smallint | 2 | 1 |
部门表
TableID | FieldID | EFieldName | CFieldName | DataType | Length | isnullable |
---|---|---|---|---|---|---|
118 | 1 | cDepCode | 部门编码 | varchar | 12 | 0 |
118 | 2 | bDepEnd | 是否末级 | bit | 1 | 0 |
118 | 3 | cDepName | 部门名称 | varchar | 20 | 0 |
118 | 4 | iDepGrade | 编码级次 | tinyint | 1 | 0 |
118 | 5 | cDepPerson | 负责人 | varchar | 10 | 1 |
118 | 6 | cDepProp | 部门属性 | varchar | 10 | 1 |
118 | 7 | cDepPhone | 电话 | varchar | 20 | 1 |
118 | 8 | cDepAddress | 地址 | varchar | 30 | 1 |
118 | 9 | cDepMemo | 备注 | varchar | 20 | 1 |
供应商
TableID | FieldID | EFieldName | CFieldName | DataType | Length | isnullable |
---|---|---|---|---|---|---|
354 | 1 | cVenCode | 供应商编码 | varchar | 12 | 0 |
354 | 2 | cVenName | 供应商名称 | varchar | 60 | 1 |
354 | 3 | cVenAbbName | 供应商简称 | varchar | 30 | 0 |
354 | 4 | cVCCode | 分类编码 | varchar | 12 | 1 |
354 | 5 | cDCCode | 地区编码 | varchar | 12 | 1 |
354 | 6 | cTrade | 所属行业 | varchar | 10 | 1 |
354 | 7 | cVenAddress | 地址 | varchar | 40 | 1 |
354 | 8 | cVenPostCode | 邮政编码 | varchar | 6 | 1 |
354 | 9 | cVenRegCode | 纳税人登记号 | varchar | 18 | 1 |
354 | 10 | cVenBank | 开户银行 | varchar | 30 | 1 |
354 | 11 | cVenAccount | 银行帐号 | varchar | 20 | 1 |
354 | 12 | dVenDevDate | 发展日期 | datetime | 8 | 1 |
354 | 13 | cVenLPerson | 法人 | varchar | 10 | 1 |
354 | 14 | cVenPhone | 电话 | varchar | 20 | 1 |
354 | 15 | cVenFax | 传真 | varchar | 20 | 1 |
354 | 16 | cVenEmail | Email地址 | varchar | 30 | 1 |
354 | 17 | cVenPerson | 联系人 | varchar | 10 | 1 |
354 | 18 | cVenBP | 呼机 | varchar | 20 | 1 |
354 | 19 | cVenHand | 手机 | varchar | 20 | 1 |
354 | 20 | cVenPPerson | 专管业务员 | varchar | 10 | 1 |
354 | 21 | iVenDisRate | 扣率 | float | 8 | 1 |
354 | 22 | iVenCreGrade | 信用等级 | varchar | 6 | 1 |
354 | 23 | iVenCreLine | 信用额度 | float | 8 | 1 |
354 | 24 | iVenCreDate | 信用期限 | tinyint | 1 | 1 |
354 | 25 | cVenPayCond | 付款条件 | varchar | 20 | 1 |
354 | 26 | cVenIAddress | 到货地址 | varchar | 40 | 1 |
354 | 27 | cVenIType | 到货方式 | varchar | 10 | 1 |
354 | 28 | cVenHeadCode | 客户总公司编码 | varchar | 12 | 1 |
354 | 29 | cVenWhCode | 到货仓库 | varchar | 10 | 1 |
354 | 30 | cVenDepart | 分管部门 | varchar | 12 | 1 |
354 | 31 | iAPMoney | 应付余额 | float | 8 | 1 |
354 | 32 | dLastDate | 最后交易日期 | datetime | 8 | 1 |
354 | 33 | iLastMoney | 最后交易金额 | float | 8 | 1 |
354 | 34 | dLRDate | 最后付款日期 | datetime | 8 | 1 |
354 | 35 | iLRMoney | 最后付款金额 | float | 8 | 1 |
354 | 36 | dEndDate | 停用日期 | datetime | 8 | 1 |
354 | 37 | iFrequency | 使用频度 | int | 4 | 1 |
354 | 38 | bVenTax | 单价是否含税 | bit | 1 | 0 |
354 | 39 | cVenDefine1 | 自定义项1 | varchar | 20 | 1 |
354 | 40 | cVenDefine2 | 自定义项2 | varchar | 20 | 1 |
354 | 41 | cVenDefine3 | 自定义项3 | varchar | 20 | 1 |
计算逻辑伪代码,以薪资凭证导入U8为例
//打开 HR DB.StartTransaction
//打开U8 DB.StartTransaction
//按照薪资项目循环
begin
//找出薪资汇总表中所有该薪资项目的记录
SQL =select * from 薪资汇总表 where HRI_PRDCODE=汇总表.计薪区间and HRI_CODE=汇总表.薪资项目代码 Order by 成本中心代码
//插入借方科目
//按照取得的汇总表记录循环
begin
//u8 acc_vouch
i_id //自动编号
iperiod //凭证所在月份
csign //填入系统设置的凭证字,如“转”
isignseq //填入凭证字代码 select i_id from Dsign where csign=’转’
ino_id //取该月份最大凭证编号+1 SELECT ISNULL(MAX(ino_id),0) AS maxVal FROM gl_accvouch WHERE iperiod=%d AND isignseq=%d
inid //序号从1开始
dbill_date =制单日期 //抛转时手工输入
idoc = -1
cbill = 制单人
ccheck = ‘’//审核人
cbook = ‘’ //记帐人
ibook=0
ccashier= NULL
iflag= NULL
ctext1 //系统设置的备注信息
ctext2 = NULL
cdigest=输入的凭证摘要
ccode //根据成本中心代码得到的费用科目代码select 科目代码 from HRMS_DeptAcc where 部门代码=汇总表.成本中心代码
cexch_name=NULL
md=汇总表.金额
mc=0
md_f=0
mc_f=0
nfrat=0
nd_s=0
nc_s=0
csettle= NULL
cn_id= NULL
dt_date= NULL
cdept_id=汇总表.成本中心代码
cperson_id=NULL
ccus_id=NULL
csup_id=NULL
citem_id=NULL
citem_class= NULL
cname= NULL
ccode_equal=薪资项目表.科目代码
iflagbank=NULL
iflagPerson=NULL
bdelete=0
coutaccset= NULL
ioutyear= NULL
coutsysname= NULL
coutsysver= NULL
doutbilldate= NULL
ioutperiod= NULL
coutsign= NULL
coutno_id= NULL
doutdate= NULL
coutbillsign= NULL
coutid= NULL
bvouchedit=1
bvouchAddordele=0
bvouchmoneyhold=0
bvalueedit=1
bcodeedit=1
ccodecontrol= NULL
bPCSedit=1
bDeptedit=1
bItemedit=1
bCusSupInput=0
cDefine1~ cDefine16 =NULL
dReceive= NULL
cWLDZFlag= NULL
dWLDZTime= NULL
bFlagOut=0
end
//插入贷方科目 只说明与借方科目不同的地方
inid //取借方科目inid最大+1
ccode =薪资项目设置的应付科目代码
md=0
mc=SUM(借方金额)
cdept_id=NULL
csup_id=如果是工资和所得税这里为空/如果是公积金,这里填 薪资项目表. 供应商代码
ccode_equal=550201,410501 //借方科目代码,之间用逗号格开
end
//HR DB.commit;
//U8 DB.commit;
//打开U8 DB.StartTransaction
//按照薪资项目循环
begin
//找出薪资汇总表中所有该薪资项目的记录
SQL =select * from 薪资汇总表 where HRI_PRDCODE=汇总表.计薪区间and HRI_CODE=汇总表.薪资项目代码 Order by 成本中心代码
//插入借方科目
//按照取得的汇总表记录循环
begin
//u8 acc_vouch
i_id //自动编号
iperiod //凭证所在月份
csign //填入系统设置的凭证字,如“转”
isignseq //填入凭证字代码 select i_id from Dsign where csign=’转’
ino_id //取该月份最大凭证编号+1 SELECT ISNULL(MAX(ino_id),0) AS maxVal FROM gl_accvouch WHERE iperiod=%d AND isignseq=%d
inid //序号从1开始
dbill_date =制单日期 //抛转时手工输入
idoc = -1
cbill = 制单人
ccheck = ‘’//审核人
cbook = ‘’ //记帐人
ibook=0
ccashier= NULL
iflag= NULL
ctext1 //系统设置的备注信息
ctext2 = NULL
cdigest=输入的凭证摘要
ccode //根据成本中心代码得到的费用科目代码select 科目代码 from HRMS_DeptAcc where 部门代码=汇总表.成本中心代码
cexch_name=NULL
md=汇总表.金额
mc=0
md_f=0
mc_f=0
nfrat=0
nd_s=0
nc_s=0
csettle= NULL
cn_id= NULL
dt_date= NULL
cdept_id=汇总表.成本中心代码
cperson_id=NULL
ccus_id=NULL
csup_id=NULL
citem_id=NULL
citem_class= NULL
cname= NULL
ccode_equal=薪资项目表.科目代码
iflagbank=NULL
iflagPerson=NULL
bdelete=0
coutaccset= NULL
ioutyear= NULL
coutsysname= NULL
coutsysver= NULL
doutbilldate= NULL
ioutperiod= NULL
coutsign= NULL
coutno_id= NULL
doutdate= NULL
coutbillsign= NULL
coutid= NULL
bvouchedit=1
bvouchAddordele=0
bvouchmoneyhold=0
bvalueedit=1
bcodeedit=1
ccodecontrol= NULL
bPCSedit=1
bDeptedit=1
bItemedit=1
bCusSupInput=0
cDefine1~ cDefine16 =NULL
dReceive= NULL
cWLDZFlag= NULL
dWLDZTime= NULL
bFlagOut=0
end
//插入贷方科目 只说明与借方科目不同的地方
inid //取借方科目inid最大+1
ccode =薪资项目设置的应付科目代码
md=0
mc=SUM(借方金额)
cdept_id=NULL
csup_id=如果是工资和所得税这里为空/如果是公积金,这里填 薪资项目表. 供应商代码
ccode_equal=550201,410501 //借方科目代码,之间用逗号格开
end
//HR DB.commit;
//U8 DB.commit;