找回密码
 立即注册

QQ登录

只需一步,快速开始

葡萄城三幺三
论坛元老   /  发表于:2019-9-17 11:51  /   查看:3873  /  回复:7
本帖最后由 葡萄城三幺三 于 2019-9-17 12:02 编辑

概述
中国烹饪技术全球闻名 ,但餐饮业的发展却较为落后。

作为一个全面推进现代化建设的发展中国家,餐饮业是我国社会和经济发展的一个重要组成部分。伴随着餐饮业的发展,原材料成本升高、劳动力成本提升、租金成本上涨、管理人才匮乏、成本控制困难等多方面问题日益凸显,传统的管理、经营模式正遭遇严峻挑战。

如何由传统的“粗放式、模糊式、经验式经营”向“精细化、流程化、信息化经营”转型,已成为整个餐饮行业都需要面对的问题。而促成这一转型的必要条件,离不开一套先进且成熟的餐饮系统管理模式,这套管理模式的基石,便是餐饮报表系统的设计与开发。

本期葡萄城公开课,我们诚邀石家庄品智技术有限公司,高级软件工程师——刘永政先生,为大家在线分享餐饮业报表系统设计模式,以及在HTML5报表浏览器、Java架构中跨平台使用ActiveReports
9-19AR公开课.png
在线观看地址:http://live.vhall.com/240352327

餐饮信息化应用蔚然成风
餐饮信息化覆盖了餐饮经营的各个环节,如购、销、存、人、财、物等,信息化建设可以大大提高实施企业的标准化程度。如今,经过多年的磨合与发展,信息技术已经成为大中型餐饮企业的核心竞争力之一。

在餐饮行业中,电子菜单、无线触摸点菜系统等高科技手段越发得到重视,这些手段不仅大幅提高了餐饮企业的运营效率,更强化了顾客使用体验。餐饮行业传统的手工管理模式,已然不能满足现代企业的需求,信息化管理是餐饮行业管理改革的必然。

从“盐少许”、“味精少许”到“数字化管理”、“全流程监控”,信息化建设可以有效解决餐饮连锁企业标准化服务难题,迅速扩大企业规模,同时也为企业提供了一个科学的管理平台,有助于企业形成符合自身需要的运行流程和管理规范,为企业做大做强提供了保障。

以某餐饮业巨头为例,2004年,该企业着手从财务报表模板上提升企业信息化管理。通过一套连锁店供应链管理系统将整个公司的信息流、资金流、物流统一起来,从而实现物流总部与各分拨中心实时进销存管控。从原料到成品、从库房到餐厅,该企业管理部门都能够对成本实行严格控制,而且从开单、上菜、收银到财务,都可以做到全流程监控。

什么是现代化餐饮管理系统
一套完备的现代化餐饮管理系统,需同时满足中餐、快餐、西餐等多个业态,功能模板需包含:
1.   收银系统
2.   连锁会员系统
3.   连锁供应链系统
4.   进销存系统
5.   支持微信点菜、团购和外卖

与此同时,对于追求高度现代化的餐饮管理者来说,餐饮管理系统不单单只能满足业务场景需要,使用者还可通过系统中的报表设计模块,帮助企业完成全局业务的统计和分析、合理规避未知风险。

为达到这一需求,报表系统需涵盖:
1.   营业报表系统
2.   营业分析报表系统
3.   员工绩效分析报表系统
4.   厨房管理分析系统
5.   会员报表系统
6.   进销存报表系统

而想要轻松设计出这样一套格式复杂、信息量巨大的报表模板,必须借助一款简单易上手、高效智能的报表开发控件,快速搭建企业级Web报表平台。

为什么选择ActiveReports?
AR.png
ActiveReports 是一款专注于 .NET 平台的报表开发控件,全面满足HTML5、WinForm、ASP.NET、.NET Core、WPF 等平台下的报表设计和报表开发需求,作为专业的报表工具为全球超过 300,000 名开发者提供全面的报表解决方案。

相比其他报表工具来说,ActiveReports 报表控件提供开发多种报表样式的能力,通过其强大的Web在线/离线报表设计器及内置丰富的报表组件,如表格、独有的矩表、地图、图表等,即可帮助用户轻松设计多种报表样式。除此之外,ActiveReports还支持自定义函数,可以轻松设计多种复杂样式的报表模板。

更重要的是ActiveReports还支持在线打印、一键导出报表,比如导出Excel,Pdf、Word、Image等格式的文件,让客户有了更好的体验。

餐饮管理系统架构
  • Javaweb 后台程序是基于maven构建的spring mvc + MyBatis工程;
  • 报表服务程序是基于.net framework4.0的asp.net工程
  • mysql数据库

本期公开课上演示的餐饮管理系统是基于Java平台开发设计的,在整个系统中,使用了ActiveReports报表控件进行报表设计与图表展示。由于ActiveReports是一款 .NET报表控件,所以我们会在演示系统的同时,着重讲解如何跨平台使用ActiveReports报表控件。

在Web应用程序中使用ActiveReports
一、在Javaweb报表中需要引入ActiveReports依赖的js类库和CSS样式:
JS类库:
jQuery1.9.0 or higher
Bootstrap3.0
Knockout.js2.3.0 or higher
GrapeCity.ActiveReports.Viewer.Html.js

CSS样式:
GrapeCity.ActiveReports.Viewer.Html.css

ActiveReports自己的js类库和样式在C:\Program Files (x86)\GrapeCity\ActiveReports 11\Deployment\Html文件夹下

二、.NET工程作为报表服务来使用,需要添加报表服务文件,ActiveReports Web服务, 在ActiveReports安装完成以后,要在工程中添加新项的时候,在已安装下面会有Reporting选项,里边分别有5种文件格式的支持:
  • ActiveReports页面报表
  • ActiveReports区域报表(基于代码)
  • ActiveReports区域报表(基于xml)
  • ActiveReportsRDL报表
  • ActiveReportsWeb服务
001.png
添加完ActiveReportsWeb服务以后, ActiveReports会帮我们自动将ActiveReports所需要的dll引入到我们的工程中,如下:
002.png
同时自动在web.config中添加相关的ActiveReports配置
1.   <system.web >节点下的配置
003.png
2.   <system.webServer >节点下的配置
004.png
3.   添加< ActiveReports11 >节点
005.png
  1. <ActiveReports11>
  2. <WebService reportsFolder=“~/” reportLifetime=“01:01:00” assemblyFolder=“~/” publicURI=“http://10.10.10.10:8080/" accessPoint="http:// 10.10.10.10:8080 /ReportWebService.asmx"/>
  3. </ActiveReports11>
复制代码



PS:
·       reportsFolder报表文件夹路径
·       assemblyFolder程序集文件夹路径
·       reportLifetime接口响应的超时时间
·       当工程部署到云端服务器以后还需要配置
·       publicURI 和 accessPoint 对应的是暴露的webserver地址

4.   添加ActiveReports Web服务的实现类,该类应继承ActiveReports.Web.ReportService
  1. public class ReportWebService : GrapeCity.ActiveReports.Web.ReportService
  2. //重写OnCreateReportHandler方法,
  3. protected override object OnCreateReportHandler(string reportPath)
  4. {
  5. //绑定PageReport.Document.LocateDataSource事件,
  6. pageReport.Document.LocateDataSource += Document_LocateDataSource;
  7. //完成数据的查询、整理并返回。
  8. };
  9. private void Document_LocateDataSource(object sender, LocateDataSourceEventArgs args)
  10.         {
  11.             Blls.DataSelect select = new Blls.DataSelect();
  12.             if (args != null)
  13.             {
  14.                 args.Data = select.GetData(args);//返回DataTable
  15.             }
  16.         }
复制代码


5.   如果您涉及到跨域请求,还需要在Global.asax配置支持跨域请求:
  1. protected void Application_BeginRequest(object sender, EventArgs e)
  2.         {
  3.             HttpContext.Current.Response.AddHeader("Access-Control-Allow-Origin", "*");
  4.             if (HttpContext.Current.Request.HttpMethod == "OPTIONS")
  5.             {
  6.                 HttpContext.Current.Response.AddHeader("Access-Control-Allow-Methods", "GET, POST, OPTIONS");
  7.                 HttpContext.Current.Response.AddHeader("Access-Control-Allow-Headers", "Content-Type, Accept");
  8.                 HttpContext.Current.Response.End();
  9.             }
  10.         }
复制代码

006.png


餐饮管理系统中报表功能应用:多级钻取
什么是数据钻取?
007.png
数据钻取是指通点击指向其它报表的链接来跳转到该报表。在现代商业智能报表中,对交互式报表的需求越来越强烈,数据钻取就是交互式报表中最为常用功能之一。

008.png

如上图,tableA,tableB,tableC,tableD分别是四个单表,可以单独查询;
其中tableB和tableA可以钻取到tableC;
tableA可以钻取到tableB再钻取到tableC;
在ActiveReports中,通过配置即可轻松实现多级钻取:

009.png

具体加载出的HTML代码如下图
010.png
ActiveReports会自动为该单元格生成A标签,并将参数内容生成到data属性,然后通过viewer对象获取参数内容:
  1. action: function (actionType, actionParams) {
  2. //通过actionParams.url 属性获得具体参数内容:即data属性的值
  3. viewer.option(‘report’, { id: ‘Report2’, parameters : actionParams.url });//重新加载报表
  4. HistoryRecord.push({ id: ‘ Report2 ’, parameters : actionParams.url , tableName:’报表2’});
  5. }
复制代码

实现了钻取,那么钻取后如何返回?
  1. $("#gobill").click(function() {
  2.         if(HistoryRecord.length>1) {
  3.                 HistoryRecord.pop();//删除出最后一位
  4.                         var history = HistoryRecord[HistoryRecord.length-1];
  5.                         viewer.option(‘report’, history); //重新赋值viewer的report属性
  6.         }
  7. });
复制代码
history :
·       id -> 报表文件名称
·       parameters -> 所需要的参数
Ps:根据业务场景,为了提高“返回”查询的速度,可以适当的应用缓存,给报表添加时间戳参数用与缓存的key值。


餐饮管理系统中报表功能应用:打印,导出
ActiveReports实现打印导出非常简单:
  1. //导出
  2. $(“#exportbtn”).click(function () {
  3.         var callback = function (url) {
  4.                 window.open(url, '_blank');
  5.             }
  6.         var options = {
  7.                         FileName: ARFileName  //导出的文件名称
  8.        }
  9.         viewer.export(‘xls’, callback, true, options);  
  10. //xls表示excel文件;另外ActiveReports还支持pdf、html等等
  11.         return;
  12. })

  13. //打印
  14. $("#printbtn").click(function () {
  15.         viewer.print();
  16. });
复制代码


ActiveReports 对于餐饮管理系统报表开发的价值
1.   ActiveReports配置简单易上手,开发速度快;
2.   ActiveReports支持的报表类型丰富:如,动态行、列的矩表;条形图、柱形图、折线图、面积图等图表。在餐饮管理系统中已经使用ActiveReports开发了300余张报表模板。
3.   官方提供了多种ActiveReports开发案例和示例代码,并且提供200余张报表模板免费下载使用;>>免费报表模板下载地址
4.   ActiveReports提供了丰富的函数:如,数字类型函数、流程类型函数、判断类型函数、日期类型函数、合计类型函数、转换类型函数,与此同时,ActiveReports还支持自定义函数。
5.   ActiveReports的社区非常活跃,在官方社区提问,会得到及时、有效的回复。在技术或产品选型上,用户肯定会优先选择社区活跃度高的产品。


以上就是本期葡萄城公开课《Java Web后台中餐饮业报表系统开发实例》的主要内容,欢迎您点击此处,预约公开课,在线观看本期课程,并学习如何使用ActiveReports开发餐饮系统报表功能模块以及在HTML5报表浏览器、Java架构中跨平台使用这款报表控件。

关于 ActiveReports .NET报表控件
ActiveReports是一款专注于 .NET 平台的报表开发控件,提供了多种报表设计工具,如完美集成于 Visual Studio 的报表设计器、独立的桌面端设计器和 Web端在线报表设计器。使用它们,用户可轻松设计多种类型的报表,如 Excel 表格、Word 文档、Chart、Dashboard 等,并将数据以丰富灵活的可视化方式呈现给最终用户。同时,ActiveReports在运行时还为最终用户提供数据筛选、排序、钻取、表达式跳转等强大的交互式分析能力,无需修改代码即可满足不同场景下的报表设计需求,大幅提高开发效率,加速项目交付。
葡萄城各种福利、活动官方饲养员,认准三三。关注微信号,获得更多福利消息、资讯。

8 个回复

倒序浏览
successit悬赏达人认证
银牌会员   /  发表于:2019-9-17 19:20:00
沙发

回帖奖励 +88 金币

这个高深了点,还是继续研究格子吧

点评

哈哈,有空可以来听听~  发表于 2019-9-18 11:46
回复 使用道具 举报
zhgl527
金牌服务用户   /  发表于:2019-9-19 04:22:07
板凳

回帖奖励 +88 金币

之前见过ActiveReports做的报表挺漂亮,不知道是否和活字格连用方便么
回复 使用道具 举报
wengMQ悬赏达人认证
银牌会员   /  发表于:2019-9-19 09:54:55
地板

回帖奖励 +88 金币

回复 使用道具 举报
葡萄城三幺三
论坛元老   /  发表于:2019-9-19 10:42:43
5#
zhgl527 发表于 2019-9-19 04:22
之前见过ActiveReports做的报表挺漂亮,不知道是否和活字格连用方便么

使用AR开发报表程序,与活字格连接到同一个数据源(如SQL Server),活字格支持连接到外部数据库,用数据共享的方式,使用活字格开发的Web应用可以与企业内部的其他系统实现数据共享,协同增效。

另外最近新出了web报表:ActiveReportsJS的Beta版,纯前端更方便;通过Json数据源链接,可以和活字格联用,使用ARJS设计报表,在活字格中使用报表模板,也可以把ARJS或者AR嵌入活字格应用,作为一个功能模板使用。


关于ActiveReportsJS欢迎下载试用:https://www.grapecity.com.cn/developer/activereportsjs
葡萄城各种福利、活动官方饲养员,认准三三。关注微信号,获得更多福利消息、资讯。
回复 使用道具 举报
努力努力再努力
注册会员   /  发表于:2019-10-15 09:31:20
6#

回帖奖励 +88 金币

膜拜大佬
回复 使用道具 举报
hongshanshanSpreadJS 开发认证
高级会员   /  发表于:2019-10-28 08:26:09
7#

回帖奖励 +88 金币

学习,入坑java七年,感觉还有很多知识点,一直在更新
回复 使用道具 举报
hzsstudySpreadJS 开发认证
初级会员   /  发表于:2019-11-24 21:33:49
8#

回帖奖励 +88 金币

学习中,mark
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部