一种简单的小型企业报表实现方式
先说下背景吧:
公司为电子商务网站,所以商务部门经常会进行数据分析,而我们这边主要是做开发,也没有专门负责数据的分析的人员,所以经常我会兼职担当报表输出人员,时间一长,商务部门领导也闲麻烦,希望有自动发报表的功能,其实装个BI系统什么的也挺快的,或者有ERP系统也行,但是领导要求越快越好,原来是想用一些开源的报表系统实现,如SpagoBI、Reportico等等。不过上手太慢,同时开发起来也麻烦,最后我就想用最简单的方式实现吧,也就是所谓的小米加步枪嘞。
软件说明:
a. 闲置的公司机器一台,centos 6.5 系统。通过ssh隧道,直接在本地机器上连接到远程数据库上:
/usr/bin/autossh -M 0 -f -NCPf -i /usr/bin/auth_key root@remote -p22 -L 3399:remote:3306
上面remote为远程机器、auth_key为认证key,具体的可以百度一下ssh映射端口。
通过这样的方式我就可以直接连接到远程的数据库上面咯。
b. thinkphp框架
因为一直用习惯了它,所以就用它来做一些业务处理。
c. 其它PHP框架,暂时用到了 pChart2.1.3 及 PHPExcel
http://www.pchart.net/
http://phpexcel.codeplex.com/
d. wkhtmltopdf,将html转换成pdf,解决了中文乱码问题。之前之所以不用开源的原因就是中文乱码处理起来麻烦。而没选择php之类转pdf的功能原因是因为速度太慢太慢了。然后就用它了。
http://code.google.com/p/wkhtmltopdf/
e. 一些shell脚本及centos的crontab
基本上用以上的工具就搞定了。
处理流程:
第一步. 针对pdf报表,我会直接生成HTML页面,然后使用wkhtmltopdf转换成pdf。而对excel表格,我直接用linux下curl命令,使用php生成文件。
第二步. 通过crontab发送各个报表
不足之处:
需要手工配置,涉及内容较多,维护较麻烦。
方便之处:
因为是用php实现,修改起来简单,尤其是pdf是基于html转换来的,所以修改起来也很简单,比使用iReport做模板方便,美观。
当然这种方案只是应对突发情况而不得不为之的。不过运行了一个月了,还比较良好,对一些新的报表要求,也能很快完工。所以对创业公司,或者小规模的电子商务公司,这种使用免费的工具搭建报表,也是一种可取之法。如有朋友有兴趣,可基于此进行深入整合,使用如java来做一些定时处理等等,功能将会更加完善。
创建PDF的shell脚本:
#!/bin/bashpdf_name=PDF_$(date -d"1 day ago" +'%d_%m_%Y')".pdf"
pdf_path=/data/home/website2/htdocs/bi/pdfs/
pdf_log=$pdf_path"create_"$(date +%Y%m).log
pdf_src="http://192.168.1.6/bi/index.php?m=Index&a=bi"######### Start ###########
if [ -f $pdf_path$pdf_name ]
thenrm -rf $pdf_path$pdf_nameecho "######### REMOVE PDF --> "$pdf_name" : "$(date +'%Y-%m-%d %H:%M:%S') >> $pdf_log
fi/usr/bin/wkhtmltopdf $pdf_src $pdf_path$pdf_name
echo "######### Create PDF --> "$pdf_name" : "$(date +'%Y-%m-%d %H:%M:%S') >> $pdf_log
######### End ###########
创建Excel的shell脚本:
#!/bin/bashexcel_path=/data/home/website2/htdocs/bi/excel/reports/
excel_log=$excel_path"create_"$(date +%Y%m).log
excel_src_1="http://192.168.1.6/bi/excel/excel01.php"
excel_src_2="http://192.168.1.6/bi/excel/excel02.php"######### Start ###########
curl $excel_src_1 >> $excel_log
sleep 2s
curl $excel_src_2 >> $excel_log
######### End ###########
一种简单的小型企业报表实现方式相关推荐
- 一种简单快捷的 java 热部署方式
作者 | 周忠太 阿里巴巴淘系技术部的一个搬砖工 [Arthas 官方社区正在举行征文活动,参加即有奖品拿~点击投稿] Arthas Hot Swap 插件介绍 引言 热部署是帮助开发人员提高效率的利 ...
- java 热布署 开源_一种简单快捷的 java 热部署方式
作者 | 周忠太 阿里巴巴淘系技术部的一个搬砖工 [Arthas 官方社区正在举行征文活动,参加即有奖品拿~点击投稿] Arthas Hot Swap 插件介绍 引言 热部署是帮助开发人员提高效率的利 ...
- 现在有哪些好用的企业报表软件?
简单来讲,企业报表就是"用表格.图表等格式来动态显示数据",各行各业.每年每月,都需要通过报表来展示组织和人员在经营管理上的真实情况. 当前大家常用的实现企业报表的方式包含代码开发 ...
- 小型企业、初创企业海外众筹指南
众筹平台正在改变初创企业和小型企业筹集资金的方式. 曾经,投资者和他们手里的资本充当了企业业务增长的重要角色,而如今,众筹平台为有抱负的创业者与企业家提供了另一融资渠道. 1.如何开始众筹?众筹平台有 ...
- 小型企业5种实惠的品牌建立策略
icu 促销又来啦 10月31日之前来DNSPod注册 新注首年仅需5元 除了医学用词,如何赋予.icu更多的含义?中小企业如何利用.icu树立自己的品牌形象?仔细阅读文章,寻找答案. 为什么要为中小 ...
- 开源发票识别_自由职业者和小型企业的前4种开源发票工具
开源发票识别 小企业主和自由职业者在他们的企业中投入了大量工作. 他们之所以这样做,不仅是因为他们对自己的工作充满热情,而且他们的目标是获得报酬. 这也不是一件小事. 获得付款通常意味着向客户发送发票 ...
- 开源发票识别_适用于小型企业的4种开源发票工具
开源发票识别 无论您创办小企业的原因是什么,保持该企业正常运转的关键都是获得报酬. 获得付款通常意味着向客户发送发票. 那里有各种各样的商业和闭源发票工具. 但是,与开放源代码同类产品相比,开放源代码 ...
- 企业降低包装成本的13种简单方法(下篇)
在我们的上一篇文章:电商降低包装成本的13种简单方法(上篇)中,我们分享了7种降低包装成本的方法,本篇是降低包装成本的13种方法系列的下篇,希望能够帮到大家降本增效. 8 - 减少使用填充物 空隙填充 ...
- 如何通过 5 个简单步骤实现小型企业的数字化转型
疫情常态化的环境下,远程工作场景为数字化转型提供了最有力的案例.我们意识到,对于小型企业来说,当您为新常态做准备时,进行全面而广泛的数字化改革可能并不可行.相反,请考虑采取渐进的步骤.采用即用型.基于 ...
最新文章
- TimerHandler的简单应用
- Binary Tree Preorder Traversal
- PHP:第一章——PHP中的关键字
- 【解析】人人网:我的青春小鸟一样不回来
- ios view 切上部分圆角_ios – 具有圆角的UIView:如何正确剪辑子视图?
- 碉堡!Mysql8.0竟然可以直接操作json文档了。。。
- WINCE 网卡控制
- HttpClient通过Post上传文件(转)
- matlab的try函数,matlab – 是否可以在没有try块的情况下测试函数句柄?
- 08-05 性能测试--定时器场景
- 20155303 《Java程序设计》实验一(Java开发环境的熟悉)实验报告
- paip.AJAX回调函数不起作用的解决
- matlab怎么将程序加密,对于MATLAB M文件怎么加密
- 新浪博客服务器是不是在维护,新浪博客是不是又在升级了?
- Java web前端——HTML常用标签
- 什么是互联网产品运营
- iPhone15将开放15W无线快充!
- springboot项目如何查看MP运行日志
- Synchonized原理
- 宝妈每天一小时,在家用手机做情感励志短视频,收益稳定200多
热门文章
- 笔记本电脑触屏鼠标突然失灵怎么办?
- 报错:跨域问题解决 No ‘Access-Control-Allow-Origin‘ header is present on the requested resource.
- 交叉编译lrzsz(用于串口传输文件)
- 生存分析绘图——Kaplan-Meier生存曲线
- 分享:从编程中悟出的八字箴言
- WordPress丸子小程序从零到一搭建小程序[小程序配置]
- 排队论,对策论,层次分析法
- 我的Security+601备考经验分享
- win10安装Offic2016以后,Word文件、Excel文件、PPT文件图标显示不正常解决方法
- FPGA学习-Verilog例化说明