web打印模板神器reportbro

N年前常用的模板绘制工具有crystal report,ireport designer,原理是在客户端上绘制模板,生成一个模板文件,基本是XML结构,然后再把数据填充进去,按照预先设置好的格式展现成pdf或者excel等。

放几张截图,用过的人应该回忆满满,至少我的印象颇深

crystal report

web打印模板神器reportbro_第1张图片
web打印模板神器reportbro_第2张图片

ireport design

web打印模板神器reportbro_第3张图片

说到这里,用过这两款工具的人应该知道接下来是讲什么了。

随着移动时代的发展,上面的两款工具其实已经很难适应移动互联网的节奏了,迫于压力,很多人也在尝试开发web版的报表工具,但是或多或少没有符合我的预期,开源的ureport2,收费的润乾或者泛微等,不能说他们做的不好,或者说我是为了情怀,就是想有那么一款照搬crystal report或者ireport的web版的系统,终于花了大半天功夫找到了,简单了解使用了下,符合我的预期。
前端js,后端python,貌似还能驾驭的了。

接下来进入主题:

reportBro

reportbro官网地址
https://www.reportbro.com/home/index
网络不好的可能需要梯子,这里放几张截图给大家瞅瞅

reportBro模板绘制界面

看这个界面是不是跟crystal report或者ireport极度相似?

其实功能上也是高度接近的,字体线框等样式啥的就不必啰嗦了,还有如报表头尾的概念,节(section)的概念,一些全局变量参数,如日期 页数等等,表头重复打印也是可配置的
web打印模板神器reportbro_第4张图片

结合数据生成的预览界面

web打印模板神器reportbro_第5张图片
下面菜单可以支持放大缩小,打开及下载

官网提供的demo

https://www.reportbro.com/demos/index

打不开的同样给你截下图方便一览

web打印模板神器reportbro_第6张图片

web打印模板神器reportbro_第7张图片

运行官网提供的demo应用

除了上面的demo,官网还提供了一个如何使用reportbro的教学demo
安装文档地址
https://www.reportbro.com/docs/setup

这里简单分享下我遇到的问题

官网推荐python版本是3.x,没有python环境的同学就不要装2.7了,免得遇到更多问题。

官网给的文档如下图,结合自己的环境,我更改了部分脚本
web打印模板神器reportbro_第8张图片

脚本变更一☆☆☆☆☆

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,如下图
web打印模板神器reportbro_第9张图片

脚本变更二☆

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/
web打印模板神器reportbro_第10张图片

在自己的应用中使用reportbro

TODO
python不熟,可能会考虑boot服务执行reportbro-lib提供的python脚本,如果不成功,就做成两个服务,一个boot服务做业务相关,一个运行reportbro-lib的python服务,提供http接口负责生成pdf

可能涉及到定制化改造,需要下载两部分代码
前端部分:
https://github.com/jobsta/reportbro-designer
后端部分:
https://github.com/jobsta/reportbro-lib

目前还没涉及到该部分的改造,后续有的话再出新帖。

你可能感兴趣的:(打印方案,报表工具)