学习笔记:U8资产负债表

楼主
我是社区第64393位番薯,欢迎点我头像关注我哦~
1.分析U8数据库
U8内置的UFO报表模块可以直接通过QC("1001",全年,,,年,,) 这样的方式取数,比如使用关键字2019年1月,跟踪了一下,后台的SQL是
  1. SELECT sum((CASE WHEN gl_accsum.cbegind_c<>N'贷' THEN gl_accsum.mb ELSE -gl_accsum.mb End)) as SumVal  
  2. FROM code INNER JOIN gl_accsum ON  code.iYear = gl_accsum.iYear and code.ccode = gl_accsum.ccode and code.iYear=2019
  3. WHERE gl_accsum.iYear=2019 and gl_accsum.iperiod=1 and gl_accsum.ccode = N'1001'
复制代码
2.建立FR用的数据集
精简了一下数据集语句
select ccode,mb,md,mc,me,iyear,iperiod from GL_accsum where iyear =${iyear} and iperiod=${iperiod}  and len(ccode)=4 order by ccode
ccode,mb,md,mc,me,iyear,iperiod分别是科目编码,期初,本期借方,本期贷方,期末,年份,期间
资产负债表只需要用到一级科目,故对科目进行了过滤,只要4位的一级科目就行
数据集命名为gl_accsum
第1列为科目编码,第2列为期初金额,第5列为期末金额

3.建立资产负债表模板
复制demo中的资产负债表模板(demo-analytics-financial-资产负债表.cpt)
使用map函数取期初数公式
map(1001,"gl_accsum",1,2)+map(1002,"gl_accsum",1,2)
使用map函数取期末数公式
map(1001,"gl_accsum",1,5)+map(1002,"gl_accsum",1,5)
4.测试结果
FR取数结果如下

UFO计算结果如下


5.可提升部分
UFO报表在取数时候默认是要求凭证已经记账的,记账之后才会将数据写入gl_accsum表中,如果需要在未记账情况下输出资产负债表,那么需要调整数据集的取数SQL
可以通过参数控制取数年份及期间,目前还不会用FR,再学学之后可以补充
UFO报表对于辅助核算的科目取数不是很友好,只能逐个单元格编辑,不能批量填充,FR应该可以更快速的编制表样模板
分享扩散:

沙发
发表于 2019-2-13 14:01:39
想了解一下这种资产负债表后台表结构如何设计的,怎么存数据的
板凳
发表于 2019-2-13 14:32:19
圣体叶小凡 发表于 2019-2-13 14:01
想了解一下这种资产负债表后台表结构如何设计的,怎么存数据的

U8本身的数据库设计的超级复杂,gl_accsum表只是其中之一,是科目总账表,日常凭证信息都在gl_accvouch表中存储,记账时候再将相关信息写入科目总账表(gl_accsum)。具体详细的关联逻辑关系就不知道了
地板
发表于 2019-2-14 08:46:49
学习了
5楼
发表于 2019-2-14 16:45:19
挺不错的分享。同时在用帆软与用友的人应该不少
6楼
发表于 2019-3-5 17:49:08
怎么追代码能说一下吗?
7楼
发表于 2019-3-6 08:11:28
Kerydia 发表于 2019-3-5 17:49
怎么追代码能说一下吗?

就是用sql server profiler 跟踪
8楼
发表于 2020-5-4 12:07:26
gl_accsum表需要跟code表做一个关联,给gl_accsum表中增加科目默认余额方向字段,用于判定资产负债表上的取数是取正数还是负数,余额数据方向跟默认余额方向一致,取正,不一致取负。由于MPA函数在追踪不存在的科目编码时候,返回的是追踪的科目编码(真正需要返回的是0),我就把gl_accsum表中的科目编码变成KM+科目编码的形式,然后map函数改成了map("KM2221","zcbqc",1,3)/1。这样设置完成的资产负债表取数是没有问题的,跟UFO出的资产表结果是一样的,但是缺点是必须记账以后才能出报表,下次改一下取数,期末余额从gl_accvouch取数试试。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

7回帖数 3关注人数 11116浏览人数
最后回复于:2020-5-4 12:07

返回顶部 返回列表