核算项目纵横表数据库表结构
学习目标
了解核算项目纵横表数据库表结构
1.t_ItemDetail核算项目横表的功能是用于存储核算项目方案组合情况;
t_ItemDetail必须存在一条FDETAILid=0的特殊记录。
常用字段
FDetailID: 核算项目使用状况内码
FDetailCount:一个FDetailID对应的核算项目类别个数
Fn列: 由F+数字表示,分别对应核算项目类别表的FItemClassID
t_ItemClass每增加一个核算项目类别,则自动在t_ItemDetail表中增加对应的F列,该表的列随着核算项目类别的增加而动态增长;但是当删除核算项目类别时,在t_ItemDetail表中的F列不会被删除,如果要删除,只有手工通过SQL语句来删除。
2.案例:在核算项目横表中找到客户“李斌”的记录,根据t_ItemClass找到客户FItemClassID为1,对应t_ItemDetail核算项目横表f1字段;在t_Item表找到FItemClassID=1,且FName=‘李斌’的记录,其FItemID为274,对应t_ItemDetail核算项目横表f1= 274的记录,其FDetailID为6,当您在科目余额表或凭证分录中找到FDetailID=6的记录代表核算项目客户“李斌”。
3. 为科目下挂核算项目:给科目代码1131.01挂核算项目“客户”,科目代码1131.02挂核算项目“供应商”;
查询科目表t_Account,这两个科目FDetailID分别为2与3,在核算项目横表t_ItemDetail找到这两行记录,您会发现f1代表客户,f8代表供应商,它们分别有-1的记录,这里的-1仅表示该科目下挂了哪些核算项目类别,不存储核算项目明细数据。值得注意的是每行FDetailCount统计核算项目类别个数,若个数对不上属于数据异常。
4.为凭证科目下挂核算项目:给1131.01科目添加核算项目明细数据“李斌”;
查询t_VoucherEntry凭证分录获取到1131.01科目核算项目内码FDetailID,您可以在核算项目横表t _ItemDetail找到这行记录。
总结:
1. Fx列的默认值=0;
2. 以下所说的Fx代表核算项目类别的使用组合情况:
Fx组合=-1所对应的Fdetailid值,只能被科目表t_account.Fdetailid所使用,不能出现在其他数据表中。
Fx组合>0所对应的Fdetailid值,(被凭证表和科目余额表引用)不能被科目表t_account.Fdetailid所使用。如果存在,应该将t_account.Fdetailid修改为该列为-1对应的Fdetailid值。
FdetailCount:它的值必须是实际的Fx组合个数之和。
在使用核算项目时,系统会检查用户所用的Fdetailid对应的Fx组合是否存在,如果不存在,则自动增加一组新的Fdetailid值。
5. t_ItemDetailV核算项目纵表是根据t _ItemDetail横表中的记录生成的。生成该表的存储过程是:sp_cleanitemdetailv。通常横表出现数据异常,纵表数据也要同步修改,修复顺序:先修复横表数据,执行存储过程sp_cleanitemdetailv可将修复后的横表数据同步至纵表。
常用字段
FDetailID: 核算项目使用状况内码
FItemClassID: 核算项目类别ID
FItemID: 核算项目ID
总结:
1. t_ItemDetailV表必须存在一条FDetailID =0的特殊记录,这个表中只记录FDetailID, FItemClassID, FItemID三个字段,它是t_ItemDetail表的简单化反映。只反映t_ItemDetail表中的有效值,去掉了F列为0的信息.。
2. 系统一般是在查询一些账表时用到核算项目纵表,比如查明细帐,如果查出来的核算项目窜户,则可以运行exec sp_cleanitemdetailv来重新生成过核算项目纵表,这样查明细帐时数据就正常了。而有时也会出现核算项目横表丢失记录,而在核算项目纵表中却保存完好,这时就可以写SQL语句从核算项目纵表中把丢失的记录插回核算项目横表中。
核算项目纵横表数据库表结构
本文2024-09-16 19:17:00发表“kis知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-kis-27591.html