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

本章内容不是讲制作报表,也不是讲报表工具,框架中没有报表组件,用的第三方的,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. CentOS 安装jira 6.3.6

    java 目录: /usr/java/jdk1.6.0_45 tomcat 目录:/usr/tomcat-7.0.29 jira 目录: /usr/local/jira jira 访问地址: cent ...

  2. Markdown语法初体验

    前言 由于把博客主题样式换了,所以改用Markdown语法,让代码看起来更加舒服一些. 照葫芦画瓢 这里是H1标题(===) 这里是H2标题(---) 使用一个#号 使用两个#号 使用三个#号 引用 ...

  3. echo图片延迟加载js

    插件描述:和 Lazy Load 一样,Echo.js 也是一个用于图像延迟加载 JavaScript.不同的是 Lazy Load 是基于 jQuery 的插件,而 Echo.js 不依赖于 jQu ...

  4. Git IDEA Move or commit them before merge

    提交代码遇到这个问题. Move or commit them before merge 百度了一下都是在Gitbash 中敲命令. 在团队协作中 你总不能去敲命令吧 后来在组长的怂恿下,我删除了一个 ...

  5. OO第三次博客作业——规格

    OO第三次博客作业——规格 一.调研结果: 规格的历史: 引自博文链接:http://blog.sina.com.cn/s/blog_473d5bba010001x9.html 传统科学的特点是发现世 ...

  6. js获取当前时间并转化

    1.转化为  年月日 function getNowFormatDate() { var date = new Date(); var seperator1 = "-"; var ...

  7. let与var的区别,为什么什么要用let?

    1.var是全局声明,let是块级作用的,只适用于当前代码块 var a = 1: if(true){ let a; a=22: console.log(a);'//22 } if(){}内就是let ...

  8. Spring支持的常用数据库事务传播属性和隔离级别

    事务的四大特征:原子性,隔离性,持久性,一致性 spring提供了7种事务传播属性: 一个事务与其他事务的隔离程度称为隔离级别.不同隔离级别对应不同的干扰程度,隔离级别越高,数据一致性就越好,但并发性 ...

  9. 修复支付宝后台报错session IP change to many

    在项目的web.xml 中添加: <init-param> <param-name>sessionStatEnable</param-name> <param ...

  10. STM32 Startup**.s文件中使用的 __main C函数入口

    代码: ; Reset handler Reset_Handler PROC EXPORT Reset_Handler [WEAK] IMPORT SystemInit IMPORT __main L ...