-
wut 数据老手Lv5
发表于2020-5-9 19:27
楼主
一、页面一览
【财务概览】
【偿债能力】
【盈利能力】
【运营能力】
二、页面分析
1、整体框架
财务管理.zip
(1.93 MB, 下载次数: )
【财务概览】
【偿债能力】
【盈利能力】
【运营能力】
二、页面分析
1、整体框架
主题表: 使用rand()函数产生随机数
页面结构:宽百分比,高固定,自定义布局
2、模块详解
2.1 财务概览
1)财务信息
此模块由左右2部分组成,左侧展示了营业收入、净利润、净利率、人均净利率、净资产收益率这五个指标以及预算完成率,通过分析区表格实现;右侧是企业财务运营情况的概览,通过文本来实现;(表格中涉及一个有趣的脚本,详情参见脚本说明)
2)KPI指标分析
展示了营业收入、成本、净利润、毛利、期间费用、应收账款这六个指标,以简表的形式,清晰的展示预算额,实际数以及完成率。另外以线状图来展示5年来的趋势。
3)财务管理解析
以架构图的方式,把财务的指标进行层层解析,进行指标溯源,帮助用户定位问题。
2.2 偿债能力
1)概览
展示了权益乘数、资产负债率、利息倍数、销售现金比率这4个指标的本期和同期值;通过文本+分析区表格来实现。
2)现金流量分析
分别展现现金流量和净流量两个指标的当期值、同期值、增减率随着时间变化的趋势情况。
通过按钮组方式,来切换两个指标。通过设置按钮【自定义样式】【选中自定义样式】来实现好看的效果
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3)经营活动现金流量简表
按照项目维度看现金流量指标;通过分析区表格+迷你进度图来实现;
2.3 盈利能力
1)资产周转率分析
左侧部分展示了计划、截止当前、计划完成率、截止上年同期、同比增长率这五个重要指标;
右侧部分通过多系列柱状图来展示指标的当期、同期、预算三个值随着时间变化趋势,方便用户直观对比,来实时监控异常情况。
2)资产周转率分析
左侧部分按照存货、时间两个维度对指标进行对比分析;右侧部分通过环比图来展示不同指标存货的占比情况。
3)利润简表
按照项目维度看利润指标;通过分析区表格+迷你进度图来实现;
2.4 运营能力
1)资产周转率分析
左侧部分通过流程图的方式灵活展现指标间的关系;然后通过点击图上的指标,联动右侧面积图,对指标进行趋势分析。
2)库龄分析
左侧部分通过柱状堆积图的方式展现存货的库龄分布情况;右侧部分通过环比图的方式,直观展现存货的库存情况。
3)账龄分析
通过柱状堆积图的方式展现存货的账龄分布情况;
4)呆滞预警分析
展现材料、产品、在产、半产品、应收五类产品的呆滞情况,通过仪表盘的方式直观呈现,让用户一眼即能发现问题所在。
三、脚本说明
1、财务概览
脚本1:更改滚动条样式复制代码脚本2:自定义单元格后缀样式
复制代码
复制代码
四、资源文件
脚本中引用了js脚本文件,文件的存储在资源管理器中(路径为:vfs/root/products/ebi/sys/slimscrollbody.js)
- //更改滚动条样式
- EUI.addStyleSheet("#BODYAREA{overflow:hidden !important}");
- EUI.addStyleSheet(".scrollBarContainerClass{width:10px !important;}");
- EUI.addStyleSheet(".scrollBarClass{border-radius:10px !important;background-color:#082F2E !important;}");
- EUI.include("vfs/root/products/ebi/sys/slimscrollbody.js");
- //定义方法;参数含义:表元ID、文本、字体大小、字体颜色、字体样式
- function setSub(cellId,unit,subFontSize,fontColor,fontWeight){
- var content=document.getElementById(cellId).textContent;
- document.getElementById(cellId).innerHTML=content+'<font style="font-size:'+subFontSize+'px;color:'+fontColor+';font-weight:'+fontWeight+'">'+unit+'</font>';
- }
- //方法调用
- setSub('GRID2.A1',' 万元',12,'#4fffc7','normal');
- setSub('GRID2.B3',' %',12,'#4fffc7','normal');
- setSub('GRID3.A1',' 万元',12,'#2af0e1','normal');
2、偿债能力
脚本1:参数样式控制
- EUI.addStyleSheet('.eui-form-select .eui-form-select-icon{border: 1px solid #055A48;color:#128157}');
- EUI.addStyleSheet('.eui-form-select > input:first-child {border: 1px solid #055A48;}');
- EUI.addStyleSheet('.eui-form-select > input:first-child {font-size: 14px;color:#1CEAA8;padding-left: 20px;}')
1、报表资源
说明:.rptttpl后缀文件新建空报表后如下图所示上传
2、图片资源
直接上传到资源管理器,默认的路径:vfs/root/products/ebi/sys/picture/行业demo/财务
注意:直接上传【切图.zip】文件后上传。路径不要轻易修改,报表中在引用时使用了文件路径
3、脚本资源
直接上传到资源管理器,默认的路径:/vfs/root/products/ebi/sys
注意:路径不要轻易修改,报表中在引用时使用了文件路径
4、资源文件
>>DEMO解析列表:
6个回答
wut 发表于 2020-7-15 10:00
把详情拉出来看看
2020-07-15 11:32:50 开始计算报表:ylnl(内存情况:FREE=2.5G TOTAL=3.9G MAX=7.1G)
2020-07-15 11:32:50 查询的数据级次范围:没有做限制。
2020-07-15 11:32:50 001开始多表格各分析区并行计算
2020-07-15 11:32:50 [GRID4(0.0.3.4)]正在生成SQL...
java.lang.RuntimeException: 缺少主源表;
at com.esen.ebibase.rptbase.calc.db.olap.OlapSqlSingleMakerImpl.(OlapSqlSingleMakerImpl.java:97)
at com.esen.ebibase.rptbase.calc.db.top.impl.OlapSqlMakerImpl.getsimpleOlapTable(OlapSqlMakerImpl.java:195)
at com.esen.ebibase.rptbase.calc.db.top.impl.OlapSqlMakerImpl.getNestOlapSql(OlapSqlMakerImpl.java:76)
at com.esen.ebibase.rptbase.calc.db.top.impl.OlapSqlMakerImpl.getMultiOlapSql(OlapSqlMakerImpl.java:92)
at com.esen.ebibase.rptbase.calc.db.top.OlapResultMultImpl.doit(OlapResultMultImpl.java:227)
at com.esen.ebibase.rptbase.calc.db.top.OlapResultMultImpl.(OlapResultMultImpl.java:104)
at com.esen.ebibase.rptbase.calc.db.top.CalcOlapResult.calcGroupOlap(CalcOlapResult.java:78)
at com.esen.ebibase.rptbase.calc.impl.GroupOlapEngine.calc(GroupOlapEngine.java:35)
at com.esen.ebibase.rptbase.calc.impl.cache.floatfxq2.OLTPResultManager.calcOlap(OLTPResultManager.java:533)
at com.esen.ebibase.rptbase.calc.impl.cache.floatfxq2.OLTPResultManager.getOltpResult(OLTPResultManager.java:522)
at com.esen.ebibase.rptbase.calc.impl.cache.floatfxq2.OLTPResultManager.getOltpData4AutoOlap(OLTPResultManager.java:155)
at com.esen.ebibase.rptbase.calc.impl.cache.floatfxq2.OLTPResultManager.getOltpData(OLTPResultManager.java:88)
at com.esen.ebibase.rptbase.calc.impl.cache.FxBaseAnalyseReportCalc.getOltpData(FxBaseAnalyseReportCalc.java:494)
at com.esen.ebibase.rptbase.calc.impl.cache.floatfxq2.FloatFxqCalc.getOltpData(FloatFxqCalc.java:253)
at com.esen.ebibase.rptbase.calc.impl.cache.floatfxq2.FloatFxqInnerCalc.getOltpData(FloatFxqInnerCalc.java:79)
at com.esen.ebibase.rptbase.calc.impl.cache.floatfxq2.QueryRectsResult_Impl.getOltpData(FloatFxqInnerCalc.java:1173)
at com.esen.ebibase.rptbase.calc.impl.cache.floatfxq2.QueryRectsResult_Impl.collectResult_zbsInFxq(FloatFxqInnerCalc.java:480)
at com.esen.ebibase.rptbase.calc.impl.cache.floatfxq2.QueryRectsResult_Impl.collectResult(FloatFxqInnerCalc.java:154)
at com.esen.ebibase.rptbase.calc.impl.cache.floatfxq2.FloatFxqInnerCalc.calc(FloatFxqInnerCalc.java:58)
at com.esen.ebibase.rptbase.calc.impl.cache.floatfxq2.FloatFxqCalc.calc(FloatFxqCalc.java:249)
at com.esen.ebibase.rptbase.calc.impl.cache.floatfxq2.FixRectInFxqResultImpl.processResult(FixRectInFxqResultImpl.java:44)
at com.esen.ebibase.rptbase.calc.impl.cache.floatfxq2.RectsInFxqResultImpl.processResult(RectsInFxqResultImpl.java:101)
at com.esen.ebibase.rptbase.calc.impl.cache.floatfxq2.FloatFxqResultImpl.processResult(FloatFxqResultImpl.java:93)
at com.esen.ebibase.rptbase.calc.impl.cache.floatfxq2.FloatFxqCalc.calc(FloatFxqCalc.java:86)
at com.esen.ebibase.rptbase.calc.impl.FxCalc.calc(FxCalc.java:34)
at com.esen.ebibase.rptbase.calc.impl.cache.RequestTask_FxqCalc.doRun(RequestTask_FxqCalc.java:105)
at com.esen.ebibase.req.AbstractRequestTask.call(AbstractRequestTask.java:87)
at com.esen.ethreadpool.req.RequestTaskFutureImpl.call(RequestTaskFutureImpl.java:100)
at com.esen.scheduling.LocaleTask.call(LocaleTask.java:56)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:744)
页面地址为:【/abi/ebibase/js/reqmgr.do?action=calc;rptid=EANA$2$2$1$47829870272949a7939935523ce6bee7$024f2835f2444433b6a9850d16343ae4.rpttpl】
JavaScript StackTrace:
Error: 缺少主源表;
--detailmessage--
2020-07-15 11:32:50 开始计算报表:ylnl(内存情况:FREE=2.5G TOTAL=3.9G MAX=7.1G)
2020-07-15 11:32:50 查询的数据级次范围:没有做限制。
2020-07-15 11:32:50 001开始多表格各分析区并行计算
2020-07-15 11:32:50 [GRID4(0.0.3.4)]正在生成SQL...
java.lang.RuntimeException: 缺少主源表;
at com.esen.ebibase.rptbase.calc.db.olap.OlapSqlSingleMakerImpl.(OlapSqlSingleMakerImpl.java:97)
at com.esen.ebibase.rptbase.calc.db.top.impl.OlapSqlMakerImpl.getsimpleOlapTable(OlapSqlMakerImpl.java:195)
at com.esen.ebibase.rptbase.calc.db.top.impl.OlapSqlMakerImpl.getNestOlapSql(OlapSqlMakerImpl.java:76)
at com.esen.ebibase.rptbase.calc.db.top.impl.OlapSqlMakerImpl.getMultiOlapSql(OlapSqlMakerImpl.java:92)
at com.esen.ebibase.rptbase.calc.db.top.OlapResultMultImpl.doit(OlapResultMultImpl.java:227)
at com.esen.ebibase.rptbase.calc.db.top.OlapResultMultImpl.(OlapResultMultImpl.java:104)
at com.esen.ebibase.rptbase.calc.db.top.CalcOlapResult.calcGroupOlap(CalcOlapResult.java:78)
at com.esen.ebibase.rptbase.calc.impl.GroupOlapEngine.calc(GroupOlapEngine.java:35)
at com.esen.ebibase.rptbase.calc.impl.cache.floatfxq2.OLTPResultManager.calcOlap(OLTPResultManager.java:533)
at com.esen.ebibase.rptbase.calc.impl.cache.floatfxq2.OLTPResultManager.getOltpResult(OLTPResultManager.java:522)
at com.esen.ebibase.rptbase.calc.impl.cache.floatfxq2.OLTPResultManager.getOltpData4AutoOlap(OLTPResultManager.java:155)
at com.esen.ebibase.rptbase.calc.impl.cache.floatfxq2.OLTPResultManager.getOltpData(OLTPResultManager.java:88)
at com.esen.ebibase.rptbase.calc.impl.cache.FxBaseAnalyseReportCalc.getOltpData(FxBaseAnalyseReportCalc.java:494)
at com.esen.ebibase.rptbase.calc.impl.cache.floatfxq2.FloatFxqCalc.getOltpData(FloatFxqCalc.java:253)
at com.esen.ebibase.rptbase.calc.impl.cache.floatfxq2.FloatFxqInnerCalc.getOltpData(FloatFxqInnerCalc.java:79)
at com.esen.ebibase.rptbase.calc.impl.cache.floatfxq2.QueryRectsResult_Impl.getOltpData(FloatFxqInnerCalc.java:1173)
at com.esen.ebibase.rptbase.calc.impl.cache.floatfxq2.QueryRectsResult_Impl.collectResult_zbsInFxq(FloatFxqInnerCalc.java:480)
at com.esen.ebibase.rptbase.calc.impl.cache.floatfxq2.QueryRectsResult_Impl.collectResult(FloatFxqInnerCalc.java:154)
at com.esen.ebibase.rptbase.calc.impl.cache.floatfxq2.FloatFxqInnerCalc.calc(FloatFxqInnerCalc.java:58)
at com.esen.ebibase.rptbase.calc.impl.cache.floatfxq2.FloatFxqCalc.calc(FloatFxqCalc.java:249)
at com.esen.ebibase.rptbase.calc.impl.cache.floatfxq2.FixRectInFxqResultImpl.processResult(FixRectInFxqResultImpl.java:44)
at com.esen.ebibase.rptbase.calc.impl.cache.floatfxq2.RectsInFxqResultImpl.processResult(RectsInFxqResultImpl.java:101)
at com.esen.ebibase.rptbase.calc.impl.cache.floatfxq2.FloatFxqResultImpl.processResult(FloatFxqResultImpl.java:93)
at com.esen.ebibase.rptbase.calc.impl.cache.floatfxq2.FloatFxqCalc.calc(FloatFxqCalc.java:86)
at com.esen.ebibase.rptbase.calc.impl.FxCalc.calc(FxCalc.java:34)
at com.esen.ebibase.rptbase.calc.impl.cache.RequestTask_FxqCalc.doRun(RequestTask_FxqCalc.java:105)
at com.esen.ebibase.req.AbstractRequestTask.call(AbstractRequestTask.java:87)
at com.esen.ethreadpool.req.RequestTaskFutureImpl.call(RequestTaskFutureImpl.java:100)
at com.esen.scheduling.LocaleTask.call(LocaleTask.java:56)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:744)
页面地址为:【/abi/ebibase/js/reqmgr.do?action=calc;rptid=EANA$2$2$1$47829870272949a7939935523ce6bee7$024f2835f2444433b6a9850d16343ae4.rpttpl】
at Object.throwError (http://192.168.8.55:8080/abi/eui/eui.js:2583:19)
at CalcReqTask.AbstractReqObj.onqueryobjfinish (http://192.168.8.55:8080/abi/eui/core/objs.js:1:37313)
at QueryObj._AbstractReqObj_onQueryFinish (http://192.168.8.55:8080/abi/eui/core/objs.js:1:38285)
at QueryObj._onreadystatechange (http://192.168.8.55:8080/abi/eui/core/ajax.js:1:2873)
at XMLHttpRequest.hp.onreadystatechange (http://192.168.8.55:8080/abi/eui/core/ajax.js:1:3383)