N年前常用的模板绘制工具有crystal report,ireport designer,原理是在客户端上绘制模板,生成一个模板文件,基本是XML结构,然后再把数据填充进去,按照预先设置好的格式展现成pdf或者excel等。
放几张截图,用过的人应该回忆满满,至少我的印象颇深
说到这里,用过这两款工具的人应该知道接下来是讲什么了。
随着移动时代的发展,上面的两款工具其实已经很难适应移动互联网的节奏了,迫于压力,很多人也在尝试开发web版的报表工具,但是或多或少没有符合我的预期,开源的ureport2,收费的润乾或者泛微等,不能说他们做的不好,或者说我是为了情怀,就是想有那么一款照搬crystal report或者ireport的web版的系统,终于花了大半天功夫找到了,简单了解使用了下,符合我的预期。
前端js,后端python,貌似还能驾驭的了。
接下来进入主题:
reportbro官网地址
https://www.reportbro.com/home/index
网络不好的可能需要梯子,这里放几张截图给大家瞅瞅
看这个界面是不是跟crystal report或者ireport极度相似?
其实功能上也是高度接近的,字体线框等样式啥的就不必啰嗦了,还有如报表头尾的概念,节(section)的概念,一些全局变量参数,如日期 页数等等,表头重复打印也是可配置的
https://www.reportbro.com/demos/index
打不开的同样给你截下图方便一览
除了上面的demo,官网还提供了一个如何使用reportbro的教学demo
安装文档地址
https://www.reportbro.com/docs/setup
这里简单分享下我遇到的问题
官网推荐python版本是3.x,没有python环境的同学就不要装2.7了,免得遇到更多问题。
pip install django
改为
pip3 install django==2.1.15
pip3是因为我的本地同时装有python2.7和python3.6
django的版本最好指定下,2.1.15我测试是ok的,如果不加版本,默认以最新的django版本进行安装,截止到目前帖子发布时间,默认安装的django版本为Django-3.0.6,这个版本导致我在后面遇到错误如下:
django.core.exceptions.ImproperlyConfigured: SQLite 3.8.3 or later is required (found 3.7.17).
遇到上面这个问题我的解决方案是卸载并安装指定版本的django,如下图
python manage.py makemigrations albums
改为
python3 manage.py makemigrations albums
python manage.py migrate
改为
python3 manage.py migrate
如果你的本地python环境是3.X版本的话就不用修改,或者你执意用python2.7的话也是不需要修改的。
我这里改为python3是因为我本地同时装有多套python环境(啰嗦again )
python manage.py runserver
改为
python3 manage.py runserver 0.0.0.0:8000
执行此处脚本之前,需要将Django的配置文件进行修改,否则可能导致ip访问不成功,尤其像阿里云这种内外网配置的环境,原理我不懂,我只是总结出来目前我的配置能跑通。
☆☆☆☆☆
/albums/django_demoapp目录下有个settings.py
将该文件中的
ALLOWED_HOSTS = []
改为
ALLOWED_HOSTS = [’*’]
想知道为啥的百度下: Django ALLOWED_HOSTS
☆☆☆☆☆
看到如下的日志,就预示着你可以访问服务了
服务地址为:
http://localhost:8000/albums/
TODO
python不熟,可能会考虑boot服务执行reportbro-lib提供的python脚本,如果不成功,就做成两个服务,一个boot服务做业务相关,一个运行reportbro-lib的python服务,提供http接口负责生成pdf
可能涉及到定制化改造,需要下载两部分代码
前端部分:
https://github.com/jobsta/reportbro-designer
后端部分:
https://github.com/jobsta/reportbro-lib
目前还没涉及到该部分的改造,后续有的话再出新帖。