本章写关于框架中的“自定义报表”,类似上章“字典管理”也是三部分功能组成,包括配置报表、对报表按角色授权、查看报表;其核心思想就是实现新增一个报表而不用修改程序代码、不用升级,只需要编写一个存储过程,再设计一个报表格式就能够给客户使用;当然此功能也不是万能的,也不能解决项目中的所有报表需求,比如穿透报表、填报报表等就没办法了,只能自己代码搞定了;

本章内容不是讲制作报表,也不是讲报表工具,框架中没有报表组件,用的第三方的,Web版用的“ReportAll”、Winform版用的“Grid++ Report”,都是国产轻量级的报表,但个人觉得还是蛮好用的,比水晶报表等国外的强大工具好用多了,很适合中小型项目;

顺便再讲一下在项目中我对报表的一些理解吧,我原本写这系列文章的想法就是,一分享一下多年在框架上的成果,二就是个人在工作中对一些具体功能的想法;虽然不是什么高端大气的东西,但自认为还是比较接地气的;

报表在一个完整系统中肯定是缺不了的,可能项目前期客户没有什么需求,等后期你将要验收的时候一堆表格就来了;报表最重要的就是数据的准确性,这方面确实要下不少功夫,一般不是进入系统的数据有问题,最多就是统计出口的问题,你可以觉得这有什么,保证出口路径一致就行,但你要知道谁保证得了;几十张、甚至几百张报表,这几张是小李做的,这些是几年前做的,这个又是哪个客户提的?我们解决这种现象的办法就是从这些报表中一整套完整报表,必须涵盖所有业务,且数据前后因果关系,报表的统计的先后顺序,针对客户岗位级别等方面都要考虑到,分析出整套模型与维持模型是花了大量时间与精力的;所以觉得系统中所谓的管理思想,这占了很大一部分吧;一个实施人员能把整套报表给客户讲清楚,他的实施能力也应该到家了;报表另一方面就是统计速度的问题,因为随着系统使用越久,数据量越来越大,这时候索引也解决不了所有问题的了,我们办法就是建汇总表,把历史数据后台定时转移到汇总表,所有报表从汇总表出;而建汇总表又是一个消耗脑细胞的活,建得太粗了搞不好就一些报表就出不来了,建得太细那这个汇总表也没啥意义;严重考验你对业务的掌握与分析能力;

本文要点:

1)功能清单介绍

2)功能界面展示

3)核心业务流程图与数据库表关系图

4)关键点的技术实现代码

说多了,本章的重点介绍一下框架中的自定义报表功能。

1)自定义报表功能清单

模块名称

功能名称

功能说明

系统报表

报表参数配置

报表分类目录,新增、修改、删除
报表管理,
1)选择数据库存储过程添加报表
2)根据数据库存储过程参数,生成报表查询控件元素
3)生成报表文件,设计报表格式
4)输入查询条件预览报表内容

报表权限设置

配置系统角色可以操作的报表

系统报表管理

根据用户登录的角色显示可以操作的报表
报表查询

2)自定义报表界面展示

3)自定义报表核心业务流程图与核心表

4)自定义报表关键技术实现

1.测试报表的存储过程

ALTER procedure [dbo].[sp_rpt_test]
(
@v_mouduleid int = null,
@v_mouduleid1 int = null,
@v_mouduleid2 int = null,
@v_mouduleid3 int = null,
@v_mouduleid4 int OUTPUT
)
as
SELECT * from basemenu where moduleid=@v_mouduleid

八、EnterpriseFrameWork框架基础功能之自定义报表的更多相关文章

  1. 六、EnterpriseFrameWork框架基础功能之权限管理

    回<[开源]EnterpriseFrameWork框架系列文章索引> 从本章开始进入框架的第二块内容“EnterpriseFrameWork框架的基础功能”,包括:权限管理.字典数据管理. ...

  2. 七、EnterpriseFrameWork框架基础功能之字典数据配置管理

    框架中的“通用字典数据配置管理”主要解决的问题是,所有的行业软件给客户实施第一步一般都是基础数据的维护,一个系统的字典是少不了的,涉及业务范围越广字典就越多,如果每一个字典数据都做一个界面来进行维护数 ...

  3. 九、EnterpriseFrameWork框架基础功能之消息管理

    记得阿朱在<走出软件作坊>一书中有一章讲客户提的需求太邪门了,鼠标键盘不太会用要程序员开发一个语音输入功能,还要系统中带类似QQ的功能:确实刚开始的客户的想法有点天真,但是随着信息化的越来 ...

  4. Flask框架基础功能

    引言 本文简单汇总Flask框架几大基础功能,包括: 路由系统 模板 数据库 几种常用Flask库 一个简单的Flask事例 Flask是一个基于Python,依赖Jinja2模板和WSGI服务的框架 ...

  5. 一起写框架-MVC框架-基础功能-Date类型数据绑定(七)

    实现功能 表单请求传递的数据,格式为以下格式的日期时间数据. (1):yyyy-MM-dd hh:mm:ss (2):yyyy-MM-dd 执行方法可以使用Date类型接收. 实现思路 1.获得表单字 ...

  6. 爬虫入门之Scrapy 框架基础功能(九)

    Scrapy是用纯Python实现一个为了爬取网站数据.提取结构性数据而编写的应用框架,用途非常广泛. 框架的力量,用户只需要定制开发几个模块就可以轻松的实现一个爬虫,用来抓取网页内容以及各种图片,非 ...

  7. 十八、【开源】EnterpriseFrameWork框架核心类库之Winform控制器

    回<[开源]EnterpriseFrameWork框架系列文章索引> EFW框架源代码下载:http://pan.baidu.com/s/1qWJjo3U EFW框架中的WinContro ...

  8. 使用Typescript重构axios(八)——实现基础功能:处理响应data

    0. 系列文章 1.使用Typescript重构axios(一)--写在最前面 2.使用Typescript重构axios(二)--项目起手,跑通流程 3.使用Typescript重构axios(三) ...

  9. Struts2框架基础

    Struts2框架基础 1.Java的框架 1.1.框架简介 在大型项目开发过程中,经常会使用到一些框架,这样做好的好处是能够提高工作效率,在java中最常用的的框架就是SSH,这其实是三个框架的简称 ...

随机推荐

  1. 【Vue.js】高仿饿了么外卖App(一)

    1.架构从传统的MVC向REST API+前端MV*迁移 参考链接: http://blog.csdn.net/broadview2006/article/details/8615055 http:/ ...

  2. sqoop2启动client异常

    java环境:  java version "10.0.1" ,启动sqoop-shell端或者是sqoop-client端异常,异常如下: [root@hadoop1 home] ...

  3. 升级到 OS EI 后 cocoa pods

    安装: sudo gem install -n /usr/local/bin cocoapods 如果出现:pod :command not found 解决办法 S1:cd /Library/Rub ...

  4. 关于iPad上模态显示视图中的UITextField,UITextView在输入完成后无法回收键盘的问题解决。

    在iPad开发过程中遇到一个问题,UITextField 存在由UIModalPresentationFormSheet 弹出的带导航条的视图控制器中时,调用 resignFirstResponder ...

  5. Linux文本处理

    作为一名 Linux 研发人员,几乎每天都要面对文本处理场景. 因此 掌握文本处理套路 并 熟练运用文本处理命令 ,对于 提升工作效率 意义重大. 本文以一个实战例子抛砖引玉,介绍如何运用 grep ...

  6. Annotation原理

    为什么使用注解: 1.通过注解,可保存源数据在Java源代码中:并且注解不同于注释,注解享有编译期的类型检查保护. 2.可在描述符性质的类或接口中抽取重复性的工作,通过注解来简化与自动化这些工作. 注 ...

  7. BUAA_OO第二单元总结性博客作业——多线程电梯架构

    一.设计策略 在第一次作业时,我刚第一次接触多线程这个东西……于是乎对于第一次VIP直上直下一次只接一个人的电梯,我借鉴了指导书中为我们提供的架构,设计了一个输入线程和一个电梯线程,并设置了一个中间类 ...

  8. Python基础 条件判断和循环

    pyhton if 语句 if 语句后接表达式,然后用: 表示代码块. age = 20 if age >= 18: print 'your age is', age print 'adult' ...

  9. Tomcat 或JBOSS java.lang.ArrayIndexOutOfBoundsException: 8192原因及其解决方法

    2018-04-02 09:24:55 org.apache.catalina.connector.CoyoteAdapter service 严重: An exception or error oc ...

  10. MongoDB DBA 实践5-----复制集集群的数据同步和故障转移

    (1)复制集集群的数据同步 1>主节点数据库test,在其中goods集合中加入一个文档. 2>在副节点中查看 注意:SECONDARY是不允许读写的,要使用rs.slaveOk()获得读 ...