已阅读5页,还剩26页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
K 3总帐数据流程分析 技术支持部 K 3相关数据库应用简介1 基础资料2 初始化及余额表3 凭证处理4 结帐Q A K 3主要模块数据库结构及问题分析 1 基础资料相关数据表涉及的表为t measureunit 计量单位表 t unitgroup 计量单位组表 常用的字段为Fmeasureunitid 计量单位内码 unitgroupid 计量单位组内码 Fstandard 是否基本计量单位 基本计量单位在一个计量单位组内 只能有一个基本计量单位 即Funitgroupid字段值相同的记录 只能有一条记录的Fstandard字段值为1 如果一个组内有两个Fstandard 1的计量单位 则会造成一些报表数据翻倍 计量单位丢失K3中有很多表引用 计量单组ID 和 计量单位ID 比如科目 凭证 物料 物流单据 余额表 BOM等等 一旦t UnitGroup或t MeasureUnit丢失记录 包括零记录 对引用表来说就产生了 孤立数据 或者也可以说XX表与 计量单位表数据不匹配 K 3主要模块数据库结构及问题分析 币别t currency 常用到的字段为FcurrencyID 币别内码 FFixRate 换算率 Fscale 小数位数 等等 FcurrencyID 币别内码 系统默认记帐本位的FcurrencyID值为1Fscale 小数位数 在中间层帐套管理中 有个地方设置本位币小数点位数 就是FcurrencyID值为1的记录对应的Fscale值 可以在此改动币别对应的小数位数 凭证字涉及的表为t vouchgroup 凭证字表 常用的字段为FgroupID 凭证字内码 一般被t voucher 凭证表 引用 K 3主要模块数据库结构及问题分析 科目涉及的表为t account 科目表 主要字段为fAccountID 科目内码 FfullName 科目全名 FQuantity 是否数量金额辅助核算 FMeasureUnitID 计量单位内码 FDetailid 核算项目内码 等 1 FAccountID 科目内码 科目内码一旦被引用 为保证数据的完整性 此科目就不允许删除 K 3主要模块数据库结构及问题分析 2 FFullname 科目全名 这个字段主要是在录入凭证 查看帐薄时用到 如果在录入凭证 查看帐薄时 系统只显示科目的最明细一级的名称 那就是因为科目全名字段中的值不正确 这个问题有个相关的补丁可以解决 补丁名叫Repare FullName sql 3 Fquantity 是否数量金额辅助核算 此字段主要是标识此科目是否需要数量金额辅助核算 一般此字段与FmeasureUnitID 计量单位内码 一起使用 当fquantity字段的值为1时 FmeasureUnitID字段中一定也要有相应的值 且FmeasureUnitID与t measureunit表中的FmeasureUnitID字段值相对应 4 FDetailid 核算项目使用状况内码 这个字段的值与t itemdetail 核算项目横表 中的Fdetailid字段值相关联 且这个值在t itemdetail表中对应的以F开头的字段的值为 1 K 3主要模块数据库结构及问题分析 核算项目客户 部门 职员 物料等 这些都是核算项目的类别 比如客户是一个核算项目类别 部门也是一个核算项目类别 系统用t ItemClass保存核算项目类别 我们把核算项目类别看成一个对象 则不同的对象都有各自的属性 比如对于客户这个对象来说 它的属性是 代码 名称 银行账号 法人代表 偿债等级等等 对于部门这个对象来说 它的属性是 代码 名称 部门主管 部门电话 传真等等 系统用t ItemPropDesc保存核算项目类别的属性 t ItemClass与t ItemPropDesc用FitemClassID字段关联 一个核算项目类别可以拥有多种属性 因此是 一对多 的关系 用户新增的核算项目类别的属性也保存在t ItemPropDesc中 举例 新增一核算项目类别 并定义核算项目类别属性 注意其数据的存放 K 3主要模块数据库结构及问题分析 不同的核算项目类别都拥有自己的数据表 在t itemclass表中 有一个FsqlTableName字段 它表示每个核算项目对应的数据表 比如 客户 t Organization 部门 t Department 职员 t Emp 物料 t ICItem 不同的核算项目类别有相同的属性 比如 ID 父级ID 代码 名称 长代码 全称等 系统将这些相同的属性值保存在t Item表中 因此 所有的核算项目都实际同时保存在两个数据表中 比如 新增一个职员 则同时保存在t Emp中和t Item中 新增一个部门 则同时保存在t Department中和t Item中 因为所有的核算项目都保存在t Item中 系统用t Item FitemClassID字段区分核算项目类别 K 3主要模块数据库结构及问题分析 2 初始化及余额表 运初始化数据的存放初始化时 涉及到的表主要是t balance 金额余额表 t quantitybalance 数量余额表 和t profitandloss 损益类科目实际发生额情况表 如果在年初进行初始化时 余额表和数量余额表中都只有第一期的数据 且没有本年累计数据和损益数据 即在两张余额表中 累计数字段的值为零和在损益类实际发生额表中没有记录 K 3主要模块数据库结构及问题分析 如果在年中进行初始化时 假如在第6期进行初始化 则t profitandloss有记录 另外两张余额表中会存在第1期和第6期两期的数据 例如t Balance 1期的数据中 FYtdDebit FYtdCredit FendBalance取用户录入的本年累计借方 本年累计贷方 期初余额 是指6月初的余额 FDebit FCredit FBeginBalance这三列是系统倒算出来的 过程是 FDebit FytdDebit FCredit FytdCredit FBeginBalance FEndBalance FCredit FDebit 6期的数据中 6期的FBeginBalance等于1期的FendBalance 6期的FcreDit和FDebit无数据 6期的FYtdCreDit和FytdDebit等于1期的FYtdCreDit和FytdDebit 6期的FendBalance等于6期的FbeginBalance K 3主要模块数据库结构及问题分析 币别ID在上面所讲的三张表中 都有币别 Fcurrencyid 这个字段 假如科目带有外币核算 且外币有余额或发生额 则在这三张表中都由币别ID来识别 一个科目的余额之和是由这个科目的几个币种余额之和而得 在余额表中币别字段 Fcurrencyid 的值为零 就表示是此科目的综合本位币记录 一个科目下所有币别余额之和等于此科目币别字段为零值的记录的余额 所有币别发生额字段之和等于币别字段为零值的记录的发生额 核算项目使用状况ID在上面所讲的三张表中 也都有核算项目 Fdetailid 这个字段 如果某个科目下挂核算项目 且核算项目有余额或发生额 那么在这三张表中都由Fdetailid字段的值来反映 Fdetailid字段的值为0 则是此科目所有核算项目之和的记录 K 3主要模块数据库结构及问题分析 借贷方存放规则t balance表中 借方余额保存为正数 贷方余额保存为负数 t Profitandloss表对不同的余额方向的处理方式也不同 例如 科目 营业外收入 的余额方向是贷方 在初始余额录入中录入 实际损益发生额 为200 则在t ProFitandloss中FytdAmount保存为 200 科目 现金 的余额方向是借方 在初始余额录入中录入 期初余额 为100 则在t Balance中1期的FEndBalance保存为100 K 3主要模块数据库结构及问题分析 试算平衡平衡的标准是 当前期间的综合本位币科目借方余额合计等于贷方余额合计 借方累计发生合计等于贷方累计发生额合计 即汇总t Balance表中FcurrencyID 0的启用期间数据 下面这段SQL语句是检查余额表中的余额是否平衡 selectb fdc sum a fbeginbalance fromt balanceajoint accountbona faccountid b faccountidwherea fyear xxxxanda fperiod yyanda fdetailid 0anda fcurrencyid 0andb fdetail 1groupbyb fdc结束初始化由于月末处理需要 结束初始化后 系统将自动更新表t Subsys 新增或更新一条记录 同时更新t SystemProfile表中Fcategory GL Fkey InitClosed对应的Fvalue 1 初始化完成 3 凭证处理 1 多项目核算在讲凭证处理之前 先来讲一下多项目核算 即一个科目带一个核算项目或带多个核算项目时 数据是怎样形成的 多核算项目在科目中的应用在基础资料维护中需要下设核算项目的科目中设置核算项目类别 科目下设了核算项目类别将会在表t Account中FDetailID有相应的代码 同时在t ItemDetailt和t ItemDetailV中有按FdetailID对应的记录 例如 113 应收帐寺 科目 带部门及客户两个核算项目 假设FDetailID的值为1 那么在t ItemDeail中有一条记录FDetail 1 FdetaiCount 2 表示下设两个核算项目类别 F1 1 F2 1 F3 0 F4 0 F8 0等 以 F 开头 数字 的字段是根据t ItemClass中核算项目类别代码FitemClassID的值得来的 1和2在t ItemClass中分别代表客户和部门 由于此科目下设核算项目类别为 客户 和 部门 所以只有F1 F2字段的值是 1 其他则为0表示在此类别不参与核算 可以参考图1和图2 在t ItemDetailV中有对应FdetailID 1的两条记录 FitemClassID对应t ItemClass表中FitemClassID的值 分别为1和2 FitemID 1 表示此类别参与核算 多核算项目在凭证中的应用在录入凭证时科目下设核算项目则提示输入核算项目 输入核算项目后 在表t VoucherEntry中FDetailID有相应的代码 在表t ItemDetailt和t ItemDetailV中有按FdetailID对应的记录 更新的规则是在t ItemDetail中 F 开头 数字 的字段值和t ItemDetailV中FitemID字段值是录入的核算项目对应表t Item中FitemID的值 例如 做一张收款凭证 借 银行存款 贷 应收帐款 下挂客户和部门核算 客户为A客户 部门为B部门 在t Item个表中 A客户对应的FitemID的值假设为20 B部门对应的FitemID值为30 那么 在保存完这张凭证后 t VoucherEntry表中FdetailID的值假设为4 在t ItemDetail表中相对应有一条FdetailID 4 FdetaiCount 2的记录 其F1 20 F2 30 其他以F开头的字段的值如F3 0 F4 0 F8 0等等 这里面的F1和F2的值就是A客户和B部门在t Item表中对应的FitemID的值 在t ItemDetailV有两条相应的记录 表现如下 FDetailID 4 FitemClassID 1 FitemID 20 FDetailID 4 FitemClassID 2 FitemID 30 在录入模式凭证时 与录入凭证时一样 表t VoucherEntrytemplate中FDetailID有相应的代码 在t ItemDetailt和t ItemDetailV表中都有相应的记录生成 核算项目横表和纵表 核算项目横表为t ItemDetailt 核算项目纵表为t ItemDetailtV 核算项目纵表是由核算项目横表来生成的 可以用SP CleanItemDetailV这个存储过程来生成 系统一般是在查询一些帐表时用到核算项目纵表 比如查明细帐 如果查出来的核算项目窜户 则可以运行EXECSP CleanItemDetailV来重新生成过核算项目纵表 这样查明细帐时数据就正常了 而有时也会出现核算项目横表丢失记录 而在核算项目纵表中却保存完好 这时就可以写SQL语句从核算项目纵表中把丢失的记录插回核算项目横表中了 K 3主要模块数据库结构及问题分析 2 凭证过帐凭证表t Voucher t Voucherentry凭证过帐在过帐前 系统会检查总帐是否已完成初始化 检查当前期间是否有未过帐凭证 若未完成初始化或没有未过帐凭证 则退出过帐过程否则进入下一步 凭证过帐时 在选定的凭证范围内按照期间 凭证字 凭证号 分录号的顺序逐条处理凭证分录 检查凭证是否在本会计年度 期间 根据帐套选项的 凭证过帐前必须审核 检查凭证是否已经审核 检查科目 核算项目的合法性 检查凭证号是否连续 将分录中的借或贷方发生额登记至t Balance 分三步完成 A 登记科目的原币 原币折合本位币发生额 B 登记核算项目的原币 原币折合本位币发生额 C 若是非明细科目 则汇总其所有上级科目的发生数 以上三步操作中数据库中数据会发生变化的有表t Balance中的FdebitFor FcreditFor FytdDebitFor FytdCreditFor FEndBalanceFor FDebit FCredit FytdDebit FYtdCredit FendBalance十个字段 K 3主要模块数据库结构及问题分析 检查是否机制损益类凭证 如是结转机制凭证 FinternalInd TransferPL 损益 RateAdjust 调汇 则不更新余额表数据 若科目属于损益类科目 t Account中FGroupID值大于500 且凭证分录中的FinternalInd字段值为 TransferPL 自动结转 则将分录中的借或贷方发生额登记至表t ProfitAndLoss中 分三步完成 A 登记损益类科目的原币 原币折合本位币发生额 B 登记核算项目的原币 原币折合本位币发生额 C 若是非明细科目 则汇总其所有上级科目的发生数 以上三步操作中数据库中数据会发生变化的有表t ProfitAndLoss中的FamountFor FytdAmountFor Famount FytdAmount四个字段 若科目或核算项目设有数量辅助核算 则更新表t QuantityBalance 发生变化的字段有FDebitQty FCreditQty FYtdDebitQty FytdCreditQty FEndQty五个字段 表t Voucher的对应字段Fposted 1 FpostID 过帐人 加上过帐标记 K 3主要模块数据库结构及问题分析 3 反过帐 检查本期有没有已过帐的凭证 若没有 则退出反过帐过程 更新t Balance本期发生 本年累计及期末余额字段 使其数值去除当前反过帐凭证的发生额 如反过帐凭证分录为借方 注以下 Vch FamountFor Vch Famount Vch FQuantity为凭证分录金额及数量FDebitFor FdebitFor Vch FAmountForFYtdDebitFor FytdDebitFor Vch FAmountForFEndBalanceFor FBeginBalanceFor DebitFor CreditForFDebit Fdebit Vch FAmountFYtdDebit FytdDebit Vch FAmountFEndBalance FBeginBalance Debit Credit K 3主要模块数据库结构及问题分析 损益类科目更新t ProfitAndLoss本期发生及本年累计字段 FamountFor FamountFor Vch FAmountForFytdAmountFor FytdAmountFor Vch FAmountForFamount Famount Vch FAmountFytdAmount FytdAmount Vch Famount 更新t QuantityBalance本期发生 本年累计及期末余额字段 使其恢复至期初状态 如反过帐凭证分录为借方 FdebitQty FdebitQty Vch FquantityFytdDebitQty FytdDebitQty Vch FquantityFendQty FbeginQty DebitQty CreditQty 表t Voucher的对应字段Fposted 0 FpostID 1修改为未过帐标记 K 3主要模块数据库结构及问题分析 4 期末结帐A 检查是否完成初始化 B 检查本期是否还有未过帐的凭证 C 如果需要 检查本期损益类科目余额是否结平 如果不平不能结帐 D 检查T SubSys表看是否其他要求与总帐同步 Fperiodsynch 1 的子系统是否已经结帐E 将t Balance t ProfitAndLoss t QuantityBalance表中所有本期期末数据复制为下一期期初数据 本年累计数据累计到下一期 发生额为0 F 删除表t ItemDetail t ItemDetailV中一些在t Balance t ProfitAndLoss t QuantityBalance t VoucherEntry t Account中都不存在的核算项目多余数据 G 更新表t SystemProfile当前期间加到下一期间如果Fperiod PeriodPerYear则更新Fkey CurrentYear Fvalue Fvalue 1 Fkey CurrentPeriod Fvalue 1否则更新Fkey CurrentPeriod Fvalue Fvalue 1H 期末处理管理表t SubSYS将本期数据设为已结帐Fcheckout 1 增加一条下一期Fcheckout 0的记录 K 3主要模块数据库结构及问题分析 反结账A 删除表t Balance中所有本期记录 B 删除表t ProfitAndLoss中所有本期记录 C 删除表t QuantityBalance中所有本期记录 D 期末处理管理表t SubSYS删除当前期的记录 上期数据设为未结帐Fcheckout 0 总帐取数原理涉及的表有下面这些 t Group t User t SystemProfile t Balance t Account t Voucher t VoucherEntry t Itemdetail t Item 当过滤条件中不选 包含本期未过帐凭证 和 显示核算项目明细 时 系统就是直接取t Balance表中的数据 当过滤条件中选上 包含本期未过帐凭证 时 系统还会从t Voucher t VoucherEntry两表中取出借贷方未过帐的数据进行汇总 再与t Balance表中的借贷方本期全合计数相加 而得出 包含本期未过帐凭证 的本期发生合计数 再计算出余额 当过滤条件中选上 显示核算项目明细 时 系统还会联接t Itemdetail t Item两表 而得出科目所带核算项目的数据 明细帐取数原理 不包括核算项目时 涉及的表有 t Group t user t systemprofile t account t currency t Voucher t VoucherGroup t VoucherTplType t VoucherEntry t Settle t Balance 系统先从t Balance表中取出期初数 然后再从t Voucher t VoucherEntry表中取出每笔明细发生数据 最后再算出本期合计数 本年累计数和期末余额 包括核算项目时 涉及的表有 t Group t user t systemprofile t account t currency t Voucher t VoucherGroup t VoucherTplType t VoucherEntry t Settle t Balance t Item t ItemDetailV 系统先从t account t Balance t Voucher t VoucherEntry t Item t ItemDetailV这几个表中取出过滤条件中所选科目的核算项 再从t Balance表中取出核算项目对应的期初余额 再从t Voucher t VoucherEntry表中取出核算项目每笔明细发生数据 最后再算出本期合计数 本年累计数和期末余额 科目余额表取数原理 不包括核算项目时 涉及的表有 t Group t user t systemprofile t account t Balance t Voucher t VoucherEntry 当过滤条件不选择包含未过帐赁证时 系统主要是从t Balance表中取数 不取核算项目记录 即FdetailID值为0 把t Balance表中正数做为借方余额 负数做为贷方余额 并生成一张临时表 这种取数使得最底下的借贷方合计数有可能与手工相加借贷方余额不等 当过滤条件选择包含未过帐赁证时 系统也是先从t Balance表中取出数据生成一张临时表 再从t Voucher t VoucherEntry表中取出本期未过帐的数据 并依据这些数据更新临时表中的数据 使临时表中的数据相当于过帐后的余额数据 再从临时表中把数据取到科目余额表界面上 包括核算项目时 涉及的表有 t Group t user t systemprofile t account t Ba
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 吊篮严禁超载安全技术交底
- 2025年二级建造师市政公用工程押题卷及答案
- 某河道整治工程施工组织设计方案详细
- 福建项目劳务外包合同
- 装修公司基装外包合同
- 美业运营团队外包合同
- 格式变形缝防水施工方案
- 伸缩缝混凝土浇筑及养护施工工艺
- 中国文科生就业前景
- 2025年城市文化遗产数字化保护与利用
- DB32∕T 3839-2020 水闸泵站标志标牌规范
- 动漫表情练习课件
- 青海“8·22”川青铁路尖扎黄河特大桥施工绳索断裂事故学习警示教育
- 北宋画坛巨擘郭熙:画学思想的传承、开拓与时代回响
- 高血压患者的护理要点及健康宣教
- 斜视教学课件
- 北京市海淀清华附中2025届高二下化学期末考试模拟试题含解析
- 部编人教版小学语文1一年级下册全册试卷集(附答案)
- 浙美版 七年级下册 美术期末试卷(后附答案)
- 母婴呼吸道合胞病毒感染预防指南解读
- 2024-2025学年四年级语文下册第六单元检测卷(统编版)
评论
0/150
提交评论