一飞开源,介绍创意、新奇、有趣、实用的开源应用、系统、软件、硬件及技术,一个探索、发现、分享、使用与互动交流的开源技术社区平台。致力于打造活力开源社区,共建开源新生态!
CellReport 是一个以 复杂统计报表 为核心目标的制作、运行工具。你可以使用数据库、excel文件、api服务、已有报表等为数据源,通过内置的集合函数组织数据,以类excel界面设计最终呈现结果。
CellReport 诞生的初衷是为了解决日常快速制作统计报表的需要。在总结了市面上各种报表软件的前提下,结合集合运算的思想,使得报表制作人员抛弃使用存储过程加工数据的方式,专注于每一类指标的加工,然后在报表设计界面,通过集合函数组织数据,极大得方便了报表的制作和维护。
使用Apache-2.0开源协议
CellReport 是一个以复杂中国式报表为核心目标的制作、运行工具。支持数据看板、大屏制作。你可以使用数据库、excel文件、api服务、已有报表等为数据源,通过内置的集合函数组织数据,以类excel界面设计最终呈现结果。
内部以专门为报表设计的 类js语言 为中心,以最少的配置帮助你专注于报表开发。
享受 Net6 的高效运行,占用极少的内存(300M左右),运行各种复杂的中国式报表。
专为常年制作报表的人士提供基于集合运算的多数据集支持,实现高效、快捷的完成报表制作。
基于dashborad 的单页面多组件展现,预置了30 多个为展现数据定制的组件(echart图、avue数据展现等)。
报表引擎可添加自定义函数,前端可自定义展现组件,通过内置语言自由扩展认证和权限接入。
数据源支持各种.net支持的数据库、excel文件、api服务、本软件制作的报表、其他报表软件的报表(如:reporting service 等)
前端设计器采用基于vue、luckysheet、echarts等前端技术实现的网页方式 后端报表引擎核心基于netcore6 实现
报表运行时,会首先以并行方式将所有数据集的数据取到运行环境,然后根据报表设计中预定义好的公式做数据的合并、运算,最终数据以json方式传给最终展现页面,前端页面根据json结果呈现最终展示。
报表运行环境内置了类js语言环境,所有运算都是以该语言为核心。通常制作报表,我们只需要记住10个左右的函数,以及+-*/ ,就足够我们制作复杂的统计报表了。
运行环境提供了很多可以拦截接入自定义控制的地方,如:报表运行前的通用检查、控制数据集的数据是否回传前端等。前端展现可以动态插入自定义css、js 。
前端是以vue 为基础,通过template-compiler模板编译器,可自由控制echart、数据展现等组件的显示样式。
后端运行的基础环境是net6。内存效率利用极高,仅需300M左右内存。内部大量异步任务和延迟返回等技术,执行效率基本和原生手写加工数据程序的运行效率相当。
我们可以通过实现FunctionUnit接口实现系统没有预定义的函数,也可以用内置语言实现一些简单的函数扩展。
假设解压安装到了d:\cellReport。
缺省已经有了一个default组和example组。第一次登录,选报表组管理做基本的配置报表存放路径和数据库链接。可以根据不同的应用建立不同的组。报表组可以添加协助管理人员,多个用户中间用英文逗号分割。
当前预安装的数据库驱动程序有:sqlServer、sqlite、Mysql、Pgsql、odbc。需要其他驱动的自行下载安装。
sql server 连接串格式 Data Source=ip地址;Initial Catalog=数据库名字;Persist Security Info=True;User ID=用户;Password=口令;Min Pool Size=1;Max Pool Size=50;Connect Timeout=15000;Application Name=报表连接 oracle 连接串 格式 Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=ip地址)(PORT=端口))(CONNECT_DATA=(SERVER = SERVER名字)(SERVICE_NAME = 数据库)));User Id=用户;Password=口令; sqlite 连接串 格式 Data Source=E:\my_app\报表源码_2020\a_new_lib\test.db MySql 连接串 格式 Database=dbname;Data Source=x.x.x.x;Port=3306;User Id=xxx;Password=****;Charset=utf8;TreatTinyAsBoolean=false; pgsql 连接串 格式 server=ip地址;port=5432;uid=用户;pwd=口令;database=数据库;Pooling=true;
配置完毕后,按F5 刷新页面,点报表目录,正常的话,这是应该能看到所有的测试报表了
前端: luckysheet ,vue ,element-ui, avuejs 后端: antlr3
制作统计报表,往往不是一个sql语句能搞定的:
提示
在cellReport中,建设性的加入了关于集合的运算功能,可以对各个数据集按照指定的条件分组归并,从而极大的减低开发统计报表的难度。本报表软件的集合的运算包括:并集、交集、以及集合的减法。最常用的就是求集合的并集。
评论