财务报表报表项目数据存取原创
金蝶云社区-王凯亮
王凯亮
16人赞赏了该文章 4301次浏览 未经作者许可,禁止转载编辑于2021年04月28日 17:05:44

    我们的财务报表是在一个类Excel的软件中编制的,一般情况下编制完之后是存在一个XML文档,然后再存在数据库。

很多用户问:有没有办法把编制好的报表提取出来集成到第三方系统。

    如果是简单的集成,我们设计了一个项目公式功能,可以跟句报表项目、年度、期间、项目数据类型存在一个二维表中,可以通过简单的SQL提取到所需要的数据。基本能够满足大部分需求。

    如果想要更复杂的集成,比如在Excel设置的样式等,就需要自己解析XML了,这个难度比较大,暂时先不考了。


    很多人对报表属性及报表项目相关的表结构,我在这里总结一下,希望能帮助大家。

报表单据头相关字段:


报表表页相关字段:

表页字段.png

报表项目数据表相关字段:

项目数据表字段.png

项目数据查询对应 T_KDS_RPTITEMDATA


报表项目主表相关字段:

报表项目表字段.png


报表类型枚举值:

报表类型枚举.png


有需要查看其它单据或基础资料后台表定义的,可以通过BOSIDE查看,路径为:文件-》数据模型

 

数据模型.png

最后写一个项目数据查询的例子:

Select oas.FNUMBER as FAcctSysNumber,oasl.FNAME as FAcctSysName,oo.FOrgId,oo.FNumber as FOrgNumber,ool.FName as FOrgName,bri.FNumber as FRptItemNumber,bril.FItemName as FRptItemName,krid.FYear as FYear,krid.FPeriod as FPeriod, bc.FNumber as FCyNumber,bc.FCode as FCyCode,bcl.FName as FCyName,bc.FAmountDigits as FMoneyAmountDigits, bau.FNumber as FCurrUnitNumber,baul.FName as FCurrUnitName, bridt.FNumber as FItemDataTypeNumber,bridtl.FName as FItemDataTypeName, krid.FAmount,krid.FSheetId,krid.FSheetName,krid.FModifyDate

From T_KDS_RptItemData krid

Inner Join T_KDS_RPT rpt on rpt.FRPTID=krid.FRPTID And rpt.FDOCUMENTSTATUS='C'

Inner Join T_ORG_ACCOUNTSYSTEM oas on oas.FACCTSYSTEMID=krid.FACCTSYSTEMID

Left Join T_ORG_ACCOUNTSYSTEM_L oasl on oas.FACCTSYSTEMID=oasl.FACCTSYSTEMID And oasl.FLocaleId = 2052

Inner Join T_Org_Organizations oo On oo.FOrgId = krid.FOrgId

Left Join T_Org_Organizations_l ool On oo.FOrgId = ool.FOrgId And ool.FLocaleId = 2052

Inner Join T_BD_RptItem bri On krid.FRptItemId = bri.FItemId

Left Join T_BD_RptItem_l bril On bri.FItemId = bril.FItemId And bril.FLocaleId = 2052

Inner Join T_BD_Currency bc On krid.FCurrencyId = bc.FCurrencyId

Left Join T_BD_Currency_l bcl On bcl.FCurrencyId = bc.FCurrencyId And bcl.FLocaleId = 2052

Inner Join T_BD_AmountUnit bau On krid.FCurrUnitId = bau.FId

Left Join T_BD_AmountUnit_l baul On baul.FId = bau.FId And baul.FLocaleId = 2052

Inner Join T_BD_RptItemDataType bridt On krid.FItemDataTypeId = bridt.FDataTypeId

Left Join T_BD_RptItemDataType_l bridtl On bridt.FDataTypeId = bridtl.FDataTypeId And bridtl.FLocaleId = 2052 Where krid.FRptType=1 And krid.FCycleId=4


大家可以根据实际需求进行改造。

其他不大清楚的地方,大家要学会使用BOS IDE查找。

赞 16