
KIS数据处理入门培训案例分析实用教案.ppt
38页修订(xiūdìng)信息日期版本修改人修改原因修改内容07.03.28V1.0林金报新增ALL第1页/共37页第一页,共38页目目 录录•系统初始化•案例1(无法结束初始化)•案例2(核算项目显示出错)•案例3(无法结束初始化)•凭证过账•案例4(凭证无法过账)•凭证查询(cháxún)•案例5(查询(cháxún)第五期凭证提示“使用Null无效”)•案例6(进行凭证汇总时,系统无反应)•结转损益•案例7(自动结转损益不能结转数量)第2页/共37页第二页,共38页目目 录录•账薄与报表•案例8(损益表主营业务成本科目无法取数)•案例9(试算平衡表合计数和核算项目(xiàngmù)明细不对)•案例10(多栏帐本期合计数没有数据)第3页/共37页第三页,共38页案例案例(àn lì)1(àn lì)1•问题描述•人民币试算平衡,但是综合本位币试算不平衡,所以不能结束(jiéshù)初始化(在没有使用外币的情况下)•问题重现返回(fǎnhuí)目录第4页/共37页第四页,共38页案例案例(àn lì)1(àn lì)1•处理思路•在初始余额录入界面利用事件探查器跟踪试算平衡的过程•利用事件探查器跟踪结束初始化的过程•对以上两段跟踪过程进行对比分析,发现这两段跟踪过程中对初始数据进行汇总的SQL语句仅有条件币别一个为人民币一个为综合本位币的差别,但两段SQL查询出来的结果不一致•按币别及核算项目分别查找(cházhǎo)有没有丢失记录,便可得出查找(cházhǎo)到出错的相应的faccountid及相应的fdetailid•解决方法•查看原币与本位币不等的情况•返回(fǎnhuí)目录第5页/共37页第五页,共38页。
案例案例(àn lì)1(àn lì)1 select a.*,b.FBeginBalanceFor,b.FBeginBalance from (select FYear,FPeriod,FAccountID,FDetailID,FBeginBalanceFor, FBeginalance from t_balance where FCurrencyID = 0) a join (select FYear,FPeriod,FAccountID,FDetailID,FBeginBalanceFor, FBeginBalance from t_balance where FCurrencyID = 1)bon a.fyear*100+a.fperiod=b.fyear*100+b.fperiod and a.faccountid=b.faccountid and a.fdetailid=b.fdetailid where a.FBeginBalanceFor<>b.FBeginBalanceFor--查看金额根据上面的查询结果,查看科目内码对应(duìyìng)的科目select * from t_account where faccountid=1187 根据上述查询的结果反查具体的核算项目使用 select * from t_itemdetailv where fdetailid= select * from t_item where fitemid in (select fitemid from t_itemdetailv where fdetailid= ) 返回(fǎnhuí)目录第6页/共37页第六页,共38页。
案例案例(àn lì)1(àn lì)1•在初始化录入界面,进行数据更正:•在科目代码为2181.014中补充录入一组客户代码为02.145,工程分部代码为004,余额(yúé)为3105.6的记录•在 科 目 代 码 为 2121中 补 充 录 入 一 组 客 户 代 码 为02.145, 工 程 分 部 代 码 为 008,余 额 (yú é)为34993.79的记录•分别保存后,再分别将上述两条记录删除•返回(fǎnhuí)目录第7页/共37页第七页,共38页案例案例(àn lì)2(àn lì)2•问题描述•该账套为新建账套,其中(qízhōng)基础资料数据是从其他账套引入由于科目体系变更后,个别科目需设置核算项目,但其中(qízhōng)几个科目在设置核算项目时,前面自动出现一个“部门”•问题重现返回(fǎnhuí)目录第8页/共37页第八页,共38页案例案例(àn lì)2(àn lì)2§主要涉及以下科目:§处理思路(sīlù)§此账套涉及了多个会计科目的核算项目问题,先行选择“其他应收款”进行分析§查询该会计科目的fdetailid值§查看核算项目横表所对应的fdetailid值是否有误§查看核算项目纵表所对应的fdetailid值是否有误返回(fǎnhuí)目录科目 正确的核算项目 现K3中的核算项目 其他应收款 其他应收款 部门/其他应收款 低值易耗品—在库 低值易耗品 部门/低值易耗品 低值易耗品—在用 部门/低值易耗品 部门/部门/低值易耗品 其他应付款 其他应付款 部门/其他应付款 低值易耗品—摊销 部门/低值易耗品 部门/部门/低值易耗品 第9页/共37页第九页,共38页。
案例案例(àn lì)2(àn lì)2•查看核算项目纵表所对应的fdetailid值是否有误•综合以上查询结果(jiē guǒ)进行分析看是否存在异常数据,在此我们可以发现t_itemdetail表中fdetailid=5所对应的fdetailcount为1,并且该条记录只有f3001=-1, 则根据原理t_itemdetailv表中fdetailid=5也就应该只有一条记录,但t_itemdetailv表中存在两条记录•查看其他会计科目是否存在同样问题•解决方法 •exec sp_cleanitemdetailv—重写t_itemdetailv表 返回(fǎnhuí)目录第10页/共37页第十页,共38页案例案例(àn lì)3(àn lì)3•问题描述•在初始化数据录入界面试算结果(jiēguǒ)不平衡,同时也无法结束初始化但客户确认数据已完全录入正确,无法解决•问题重现•返回(fǎnhuí)目录第11页/共37页第十一页,共38页案例案例(àn lì)3(àn lì)3•处理分析•综合(zōnghé)之前类似问题的处理方法,怀疑此问题是人民币和综合(zōnghé)本位币在余额表中存放的数据不同导致的•在初始余额录入界面利用事件探查器跟踪试算平衡的过程•利用事件探查器跟踪结束初始化的过程•对以上两段跟踪过程进行对比分析,人民币和综合(zōnghé)本位币的错贷方的金额是一致的,因而排除这方面的原因•另外,我们可以发现k跟踪的SQL汇兑数据的都是一级科目并且不带核算项目的数据,会不会存在非明细科目数据不等于明细科目的汇总数或科目数据不等于所挂核算项目的汇总数呢?•查询科目数据不等于所挂核算项目的汇总数的情况•查询是否存在非明细科目数据不等于明细科目的汇总数的情况•返回(fǎnhuí)目录第12页/共37页第十二页,共38页。
案例案例(àn lì)3(àn lì)3•经查询发现,此账套中存在非明细(mínɡxì)科目数据不等于明细(mínɡxì)科目的汇总数或科目数据不等于所挂核算项目的汇总数的情况•解决方法•更新会计科目数据不等于所挂核算项目的汇总数•updatebsetb.fbeginbalance=a.fbeginbalance,b.fbeginbalancefor=a.fbeginbalance,b.fendbalance=a.fbeginbalance+b.fdebit-b.fcredit,b.fendbalancefor=a.fbeginbalance+b.fdebitfor-b.fcreditforfromt_balanceb,(selectfcurrencyid,faccountid,sum(fbeginbalance)fbeginbalancefrom t_balance where fdetailid<>0 group byfaccountid,fcurrencyid)awhereb.faccountid=a.faccountidandb.fdetailid=0anda.fcurrencyid=b.fcurrencyid•返回(fǎnhuí)目录第13页/共37页第十三页,共38页。
案例案例(àn lì)3(àn lì)3•从 最 明 细 的 会 计 科 目 一 级 一 级 往 上 汇 总 来 进 行 判 断 看 是 否 存 在(cúnzài)非明细科目数据不等于明细科目的汇总数情况,若存在(cúnzài)则应从最明细的会计科目开始逐级进行汇总,本账套从科目级别等于3时就发现有问题,执行以下SQL语句进行更新科目级别等于3,其他科目级别自行修改flevel字段同理处理•update c set c.fbeginbalance=d.fbeginbalance,c.fbeginbalancefor=d.fbeginbalance,c.fendbalance=d.fbeginbalance+c.fdebitc.fcredit,•c.fendbalancefor=d.fbeginbalance+c.fdebitfor-c.fcreditforfromt_balancecjoin(selectb.fcurrencyid,b.fperiod,a.fparentid,sum(b.fbeginbalance) fbeginbalance from t_account a join t_balance b ona.faccountid=b.faccountidwherea.flevel=3andb.fdetailid=0groupbya.fparentid,b.fperiod,b.fcurrencyid)donc.faccountid=d.fparentidandc.fperiod=d.fperiodandd.fcurrencyid=c.fcurrencyid•wherec.fbeginbalance<>d.fbeginbalanceandc.fdetailid=0•返回(fǎnhuí)目录第14页/共37页第十四页,共38页。
案例案例(àn lì)4(àn lì)4•问题描述•2007年元月份的凭证,预收账款科目挂“2007武昌客户”自定义核算项目的几张凭证无法过账,过账提示“分录科目\\?缺少(quēshǎo)核算项目16754(4172H)”错误在核算类别中新增一个项目做凭证出现一样的问题•问题重现•返回(fǎnhuí)目录第15页/共37页第十五页,共38页案例案例(àn lì)4(àn lì)4•处理分析•从问题描述首先(shǒuxiān)判断可能核算项目有问题于是从会计科目表中查询所涉及的会计科目的fdetailid•查询该fdetailid所属核算项目类别•查询具体的核算项目,即t_itemdetailV表中fitemid字段不等于0或-1的记录•在核算项目表中并没有fitemclassid同时等于3011及3012的核算项目记录(fitemid字段不等于0或-1除外),但凭证中有204.004.04武昌客户的会计分录,因此可以判断凭证表中的fdetailid在核算项目表中丢失或凭证表中的fdetailid在核算项目表中所属核算项目类别不正确•查询凭证表中该会计科目所挂核算项目在核算项目表中的记录情况•返回(fǎnhuí)目录第16页/共37页第十六页,共38页。
案例案例(àn lì)4(àn lì)4•从 以 上 查 询 结 果 可 以 看 到 , 凭 证 表 中 涉 及 到204.004.04武昌客户的所挂核算项目id只属一个核算项目类别(fdetailcount=1),而科目表中此科目 的 核 算 项 目 id却 属 两 个 核 算 项 目 类 别(fdetailcount=2).经与客户进行沟通后,找到问题的原因(yuányīn)是科目“204.004.04”下挂的核算项目出错.这个科目开始挂了两个核算项目,但其中一个核算项目后来被删除.t_itemdetail表对应的该fdetailid仍然保留着以前的核算项目方案记录•解决方法•请进行帐套备份,然后执行以下SQL语句•updatet_itemdetailsetf3012=0,fdetailcount=1wherefdetailid=1170•sp_cleanitemdetailv—重建核算项目纵表返回(fǎnhuí)目录第17页/共37页第十七页,共38页案例案例(àn lì)5(àn lì)5•问题描述 •查询第五期凭证时提示“使用Null无效”,错误代码:94(5EH)。
查询其它期间正常,查询全部凭证时也出现同样的错误提示•问题重现 •处理(chǔlǐ)思路 •方法1•根据问题描述初步判断第5期的凭证出现错误,于是从第5期的凭证入手•查询凭证表表体第5期数据返回(fǎnhuí)目录第18页/共37页第十八页,共38页案例案例(àn lì)5(àn lì)5•查询表体是否存在表头没有的fvoucherid•查询表头是否存在表体没有的fvoucherid•经分析发现此账套存在表头存在表体没有的fvoucherid的问题,在软件界面查询不包含这三张凭证便可正常查询 •方法2•在查询的过程中利用事件探查器对报错过程进行跟踪 •取出跟踪过程中有价值的SQL语句粘贴在查询分析器中,并对其进行分析 •对跟踪过程的SQL语句进行分析处理,逐步缩小范围,得出能查询到错误数据的语句•进一步确定问题出错的地方,并得出相应的解决方法•解决方法 •备份帐套,并将凭证反过账(ɡuò zhànɡ)•执行以下SQL语句: •delete from t_voucher where FvoucherID NOT IN (select FvoucherID from t_VoucherEntry)返回(fǎnhuí)目录第19页/共37页第十九页,共38页。
案例案例(àn lì)6(àn lì)6•问题描述•在进行凭证(píngzhèng)汇总时,科目级别选择1级至1级,凭证(píngzhèng)范围选择全部凭证(píngzhèng),并选择包含所有凭证(píngzhèng)字,出现凭证(píngzhèng)汇总表一直处于等待状态并没有显示数据•当科目级别选择2级至2级,其他过滤条件相同可以正常显示凭证(píngzhèng)汇总表的数据,然而当科目级别选择1级至2级时会出现同样的问题•问题重现返回(fǎnhuí)目录第20页/共37页第二十页,共38页案例案例(àn lì)6(àn lì)6•处理思路•方法1•从问题描述中,我们可以判断可能是一级会计科目出现问题•查询会计科目表中一级科目的记录,并分析是否存在异常记录•从查询结果进行分析,发现faccountid=1237的会计科目的fparentid为1237我们知道一级科目的fparentid应等于0,因此t_account表中faccountid=1237的记录异常•方法2•在进行凭证汇总时利用事件探查(tànchá)器对报错过程进行跟踪•对跟踪过程进行分析返回(fǎnhuí)目录第21页/共37页第二十一页,共38页。
案例案例(àn lì)6(àn lì)6•在利用事件探查器进行跟踪,可以发现程序反复循环地执行以下SQL语句:• exec sp_executesql N'select FNumber, FName, FLevel, FParentID from t_Account where FAccountID = @P1', N'@P1 int', 1237 •将以上语句复制到查询分析器上进行数据分析便可以找出问题原因•解决方法• update t_account set fparentid=0 where faccountid=1237•总结•此账套问题如果使用事件探查器便很快得到解决,较好地利用工具并结合经验知识往往使工作达到事半功倍(shì bàn gōng bèi)的效果 返回(fǎnhuí)目录第22页/共37页第二十二页,共38页案例案例(àn lì)7(àn lì)7•问题描述•客户科目产品销售收入501分明细再挂核算项目“产品”并进行数量金额核算在月底(yuèdǐ)做自动结转损益时,这张凭证上产品销售收入科目的数量和单价不能结转过去,数量和单价都为0,只能结转金额,导致查数量金额总帐和明细帐的期末余额为0,但有数量。
•问题重现返回(fǎnhuí)目录数量金额总帐的期末余额为0,但有数量第23页/共37页第二十三页,共38页案例案例(àn lì)7(àn lì)7•处理思路•在软件中查看余额表,数量金额总账的损益科目501,501.01,501.02科目都有余额现象•选择一会计科目如‘501.01’进行(jìnxíng)分析•在会计科目表中查看该会计科目有无异常•查看科目余额表以及数量金额余额表中该科目的数据是否有异常•进行(jìnxíng)以上4个步骤的处理仍没有发现问题原因,在进行(jìnxíng)结转损益时利用事件探查器对报错过程进行(jìnxíng)跟踪•对跟踪过程中进行(jìnxíng)分析,发现在执行过程中进行(jìnxíng)判断计量单位表和计量单位组表之间的联系•查看计量单位表以及计量单位表是否存在异常数据•发现错误:当计量单位表的funitgroupid与计量单位组的funitgroupid相等且fstandard=1时,计量单位的内码没有被反写到计量单位组表返回(fǎnhuí)目录第24页/共37页第二十四页,共38页案例案例(àn lì)7(àn lì)7•解决方法•计量单位组中的fdefaultunitid不等于默认的计量单位的内码。
需更新计量单位组表t_unitgroup,请进行账套备份后,然后执行以下SQL语句:•updateaseta.fdefaultunitid=b.fnu•fromt_unitgroupajoin(selectfmeasureunitidfnu,*•fromt_measureunitwherefstandard=1)b•ona.funitgroupid=b.funitgroupid•总结•其实,如果很熟悉操作界面的话,数量金额表中的计量单位为*,从此处就可以判断是计量单位和计量单位组表的问题,并且这个问题其实在前台就可以处理,重新设置(shèzhì)一下默认的计量单位便可解决此问题返回(fǎnhuí)目录第25页/共37页第二十五页,共38页案例案例(àn lì)8(àn lì)8•问题描述•在损益表里,主营业务成本科目的取数公式是ACCT(“502”,“sy”,“”,0,0,0)和ACCT("502","sL","",0,0,0),在1-4月份(yuèfèn)都能正确取数,但是在5月份(yuèfèn)就突然取不上数了,然后把公式改成ACCT("502","jf","",0,0,0)和ACCT("502","jl","",0,0,0),又能取上数了。
但是损益类的取数公式函数应该为sy和sl•问题重现•返回(fǎnhuí)目录第26页/共37页第二十六页,共38页案例案例(àn lì)8(àn lì)8•处理思路•在损益表里,用“sy”及”sl“取得上数,而用“jf”及“jl”取得上数这两种公式一种是从t_balance表中取数,而后一种是从t_profitandloss表中取数,而正确的应该是从t_profitandloss表中取数•查询t_balance表与t_profitandloss表中相关数据,发现T_profitandloss表的对应科目的famount值为0,但其它损益类科目并不存在这种问题•查询凭证表中会计科目为主营业务成本的记录(jìlù)是否出现错误•从查询结果可以发现这三张凭证都是机制凭证,再从软件界面查看这三张凭证发现这三张凭证都是结转损益的,并可以查到自动转帐并没有模板.•因而猜测可能第5期间凭证号为14,15的这两张凭证有问题,将账套备份后进行以下测试:•返回(fǎnhuí)目录第27页/共37页第二十七页,共38页案例案例(àn lì)8(àn lì)8•将凭证反过帐,并将结转损益的那张凭证删除•执行以下SQL语句:•updatet_voucherentrysetfinternalind='NULL'wherefvoucheridin(79,80)•updatet_vouchersetfinternalind='NULL',ftrantype=0wherefvoucheridin(79,80)•重新结转损益,并将凭证过帐•经测试(cèshì)发现,损益表主营业务成本科目可正常取数。
•返回(fǎnhuí)目录第28页/共37页第二十八页,共38页案例案例(àn lì)9(àn lì)9•问题描述•在总帐中,打开‘财务报表’-‘试算平衡表’时,其中应收票据科目的二级科目的核算项目显示(xiǎnshì)不全,导至合计数和核算项目明细对不上•问题重现返回(fǎnhuí)目录第29页/共37页第二十九页,共38页案例案例(àn lì)9(àn lì)9•处理思路•查询核算项目横纵表中所有应该为科目属性使用的Fdetailid•从以上查询结果可以知道:相同核算项目组合存在重复的fdetailid记录•解决方法•对第4期进行反结帐(jiézhànɡ)•更新科目表•updatet_accountsetfdetailid=(selectmin(fdetailid)fromt_itemdetail•wherefdetailidin(selectfdetailidfromt_itemdetailvwherefitemid=-1)andfdetailcount=1andf2=-1)•wherefdetailidin(selectfdetailidfromt_itemdetailwherefdetailidin(selectfdetailidfromt_itemdetailvwherefitemid=-1)andfdetailcount=1andf2=-1)返回(fǎnhuí)目录第30页/共37页第三十页,共38页。
案例案例(àn lì)9(àn lì)9•删除(shānchú)多余的fdetailid•deletefromt_itemdetail•wherefdetailidin(selectfdetailidfromt_itemdetail•wherefdetailidin(selectfdetailidfromt_itemdetailvwherefitemid=-1)andfdetailcount=1andf2=-1)•andfdetailid!=(selectmin(fdetailid)fromt_itemdetail•wherefdetailidin(selectfdetailidfromt_itemdetailvwherefitemid=-1)•andfdetailcount=1andf2=-1)•同 理 重 复 以 上 两 步 骤 , 更 正 其 他 核 算 项 目 类 别 组 合 的FdetaiLID值•重建itemdetailv表•execsp_cleanitemdetailv•进行第4期的过帐与结帐返回(fǎnhuí)目录第31页/共37页第三十一页,共38页。
案例案例(àn lì)10(àn lì)10•问题描述•农业生产成本科目的多栏帐本期合计数没有数据,而且(érqiě)本年累计数总是一个数,并没有发生变化此科目在自动转帐中做过凭证,试过选上不参与多栏帐汇总也不行•问题重现返回(fǎnhuí)目录第32页/共37页第三十二页,共38页案例案例(àn lì)10(àn lì)10•处理分析•检查“结转农业成本”自动转账方案是否有选上“不参与多栏帐汇总”的选项•自动转账凭证在多栏账所显示的数据是错误的,因而查询(cháxún)其他期间是否都存在这样的问题,经查询(cháxún)发现第8期的数据显示是正常的•比较第4期(显示的是错误数据)和第8期(显示的是正确的数据)这两张凭证,看是否有存在关键性的差别•第8期自动转账凭证的finternalind为“McLdgNoCal”,而第4期的finternalind为“NULL”从软件界面进行查询(cháxún),我们可以知道第4期至第7期的数据都是错误的,进而从数据库进行查询(cháxún)发现其他期间凭证的finternalind都为“NULL”•将所有自动转账凭证的finternalind更新为“McLdgNoCal”以测试此问题是否为该字段导致返回(fǎnhuí)目录第33页/共37页第三十三页,共38页。
案例案例(àn lì)10(àn lì)10•对比第6期和第7期的查询结果发现,执行守以上的更新语句虽然解决了本期合计数没有数据(shùjù)的问题,但本年累计数总是一个数,并没有发生变化•如果进行自动转账方案编辑可以发现“不参与多栏帐汇总”选项是可以随时勾上与去掉的,也就是说客户有可能之前是没有勾上这个勾的,到了第8期才选上这个选项的因此进行反结账到第4期并重新生成自动转账的测试,以验证问题是否可以解决经测试,反结账到第4期并重新生成自动转账是同时解决这两个问题的,但随之又带来另一个问题是重新生成自动转账凭证后,结账时要求结转损益如果采用这种方案会直接影响到客户的报表,因此不能采用•进行如下测试:执行完更新语句后直接反结账到第4期并将第4期的凭证反过账,然后进行过账与结账执行完以上操作后发现已解决了多栏账本期合计数及本年累计数不正确的问题返回(fǎnhuí)目录第34页/共37页第三十四页,共38页案例案例(àn lì)10(àn lì)10•解决方法•重新编辑(biānjí)自动转账方案,将“不参与多栏账汇总”勾上•执行以下SQL语句•updatet_voucherentrysetfinternalind='McLdgNoCal'wherefvoucheridin(selectfvoucheridfromt_voucherwherefexplanation='结转农业成本')•反结账到第4期,并将第4期凭证反过账•重新过账并结账返回(fǎnhuí)目录第35页/共37页第三十五页,共38页。
案例案例(àn lì)(àn lì)分析分析 讨论(tǎolùn)与交流!第36页/共37页第三十六页,共38页谢谢您的观看(guānkàn)!第37页/共37页第三十七页,共38页内容(nèiróng)总结修订信息分别保存后,再分别将上述两条记录删除该账套为新建账套,其中基础(jīchǔ)资料数据是从其他账套引入在初始化数据录入界面试算结果不平衡,同时也无法结束初始化查询会计科目表中一级科目的记录,并分析是否存在异常记录查看科目余额表以及数量金额余额表中该科目的数据是否有异常谢谢您的观看第三十八页,共38页。
