slide1 n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
小数据量复杂分类求和设计 PowerPoint Presentation
Download Presentation
小数据量复杂分类求和设计

Loading in 2 Seconds...

play fullscreen
1 / 13

小数据量复杂分类求和设计 - PowerPoint PPT Presentation


  • 75 Views
  • Uploaded on

小数据量复杂分类求和设计. 陈霞光 / 2012-02-18 版本 v0.2. 适用场景 (1). 小数据量 统计目标数据五万条内可以良好支持 个人分析,单一表百万条数据,问题不大,未经实际论证。 自定义以哪些表中的哪些字段作为分类字段 ( 即跨表, 复合字段等等 ) ,当然也支持单表单字段。 自定义哪个字段用于值字段 分类规则可以配置 ( 需要 Spring 框架 ) 分类后别名自定义 且可以重复 自定义报表展示模板,横向,纵向单元格合并. 适用场景 (2). 支持自定义格式,自定义单元格合并 ( 包含条件格式,需要代码实现,暂未做成可以配置 )

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about '小数据量复杂分类求和设计' - agostino-kearns


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
slide1

小数据量复杂分类求和设计

陈霞光/ 2012-02-18

版本 v0.2

slide2
适用场景(1)
  • 小数据量
    • 统计目标数据五万条内可以良好支持
    • 个人分析,单一表百万条数据,问题不大,未经实际论证。
  • 自定义以哪些表中的哪些字段作为分类字段(即跨表, 复合字段等等),当然也支持单表单字段。
  • 自定义哪个字段用于值字段
  • 分类规则可以配置(需要Spring框架)
  • 分类后别名自定义 且可以重复
  • 自定义报表展示模板,横向,纵向单元格合并
slide3
适用场景(2)
  • 支持自定义格式,自定义单元格合并(包含条件格式,需要代码实现,暂未做成可以配置)
  • 支持使用定义的jsp tag用于html页面输出
  • 支持excel导出
  • Excel导出与html页面输出公用url,excel导出仅仅需要加上参数format=excel
slide4
具体思路(宏观)

Jsp页面输出(css, jsp tag)

分类好数据并求和

定义模板文件(合并单元格,样式等等)

生成中间层的表格数据模型(生成xml)转java对象

Excel导出

定制代码(可选)

slide5
具体思路(微观)一

多表多字段依赖OrginalComplexKeyRule和ClassifyStatisticsKey

分类好数据并求和

在spring中配置DefaultClassifyStatisticsKeyFactory

用于处理spring配置文件中配置的复杂规则

从数据库中取得要统计的目标数据集(可以多表)

默认求和统计器DefaultSumStatistics

针对你的报表逻辑定义SumStatisticsProperty实现

统计ok

slide6
具体思路(微观)二

定义模板文件(合并单元格,样式等等)

模板采用velocity填充

模板内容受sencloudReportTemplate.xsd约束

模板语法与velocity同步

slide7
具体思路(微观)三

定制代码(可选)

支持值 与样式定制

实现ISCReportCustom接口即可以,在vm模板中做相应配置

slide8
具体思路(微观)四

生成中间层的表格数据模型(生成xml)转java对象

Vm模板被数据填充后生成xml

Xml转成Template对象,再转成Table对象或列表

slide9
具体思路(微观)五

Jsp页面输出

基于Table数据对象

自定义tag,用得不顺手可以自定迭代table对象

SCTableTag

用法可以参照任意用这种方式的报表jsp页面

slide10
具体思路(微观)六

Excel导出

同样基于Table数据对象

在BaseReportAction中已经支持通用能力,只需要在各自action中触发即可

与生成报表页面通用url,仅需要增加参数&format=excel

slide11
后续可以支持
  • 分类编辑器,模板编辑器(现有velocity编辑器可以支持语法高亮自动补全等,但不支持图形化)
  • 性能改善,即支持大数据量。并行分类,并行求和。
  • 更好的编码规范。改为provider和adapter模式。
  • 更多的可以配置,与插件扩展式
  • 更漂亮的页面控件
slide12
关于分类器配置的使用(一)
  • 分类器针对单表单字段分类的场景
  • 比较简单。主要需要配置DefaultClassifyStatisticsKeyFactory类中的categoryProperty2Warper属性
  • categoryProperty2Warper具体配法也很简单,改属性是一个map
  • Key为类别名称,value为ClassifyStatisticsKey的实例
  • ClassifyStatisticsKey类是个关键点,是支持整个分类机制,以及快速分类的核心!
  • 这个类有三个属性,别名,key,注释
  • 别名用于页面显示分类名称,比如“耗材”
  • Key是真正用于分类的key,不对界面呈现(当你上面名称相同的时候,key可以加一些不可见字符用于区分,比如\b)
  • 注释就是解释下这个分类,同时用于展现的时候的alt或title的属性值,以实现鼠标悬浮提示
  • 注意这些实例在spring中尽量配置成scope=“prototype”,因为是有状态的,所以不能单例,相应用这些分类器的服务类也要非单例
slide13
关于分类器配置的使用(二)
  • 分类器针对单表多字段分类的场景
  • 稍复杂。直接看app-report-config.xml注释