第一次帆软报表开发驻场

       学习帆软报表开发有一段时间了,但是一直在做部署,集群和分布式等工作,没有真正的做过报表的开发。此次项目,我也加入了报表开发小组。这个项目真的是任务重时间紧,不说工作量了,就说我们工作时间,每天上午9点上班零点下班,一周工作7天。

        甲方的需求主要是财务报表。在入场之前,是需求对接阶段,甲方的财务总监比较给力,一个人就把所有需求都的比较明确的讲解了。需求总结在了一个excel表中,但是需求一直在变更,从最初的v1版本,变成了v16版本。表中包含了几十个sheet页,有汇总表、明细表和一些图表。有下钻有联动。数据有抓取值,有填报值,也有管理员修改值。

对接好需求之后开始准备建数仓,先把数据字典表结构建好了。表结构如下图

第一次帆软报表开发驻场_第1张图片

数据表如下图

第一次帆软报表开发驻场_第2张图片

这个项目数据判断的优先级是:修改值的优先级大于填报值,填报值大于抓取值。

在数据集的sql中会取出一个生效值用来做数据展示。

Sql如下:

SELECT

 dbo.XSWY_SHUJU.SJ_NIANYUE,

 dbo.XSWY_SHUJU.SJ_XIANGMU,

 dbo.XSWY_SHUJU.SJ_WEIDU,

 dbo.XSWY_SHUJU.SJ_WEIDU_XIAJI,

CASE

  

  WHEN SJ_GAI_SHULIANG != '0'  and SJ_GAI_SHULIANG is not null  THEN

  SJ_GAI_SHULIANG

  WHEN SJ_TIAN_SHULIANG != '0' and SJ_TIAN_SHULIANG is not null  THEN

  SJ_TIAN_SHULIANG ELSE SJ_ZHUA_SHULIANG

 END AS 生效值,

CASE

  

  WHEN SJ_GAI_SHULIANG != '0' and SJ_GAI_SHULIANG is not null THEN

  '管理员'

  WHEN SJ_TIAN_SHULIANG != '0' and SJ_TIAN_SHULIANG is not null  THEN

  '录入员' ELSE ' 抓取'

 END AS 数据来源

FROM

 dbo.XSWY_SHUJU

WHERE

1=1

 ${if(jidu = 1," and SJ_NIANYUE='"+CONCATENATE(nianfen,"-01-01")+"' ",if(jidu = 2," and SJ_NIANYUE='"+CONCATENATE(nianfen,"-04-01")+"' ",if(jidu = 3," and SJ_NIANYUE='"+CONCATENATE(nianfen,"-07-01")+"' ",if(jidu = 4," and SJ_NIANYUE='"+CONCATENATE(nianfen,"-10-01")+"' ",""))))}

 

AND SJ_WEIDU = '${weidu}'

AND SJ_XIANGMU = '${xiangmu}'

AND SJ_FLAG = '0'

我们表的横向统一叫成了维度,纵向叫成项目。数据通过年月、项目、维度、所属机构等来过滤。

这个项目学到了很多小的细节支持和技巧,也总结了一个套路,来完成一个类型的需求。

如果有喜欢帆软部署和报表开发的朋友,或者需要找帆软部署实施的,欢迎与我交流QQ:706760123

 

你可能感兴趣的:(帆软)