APP下载

水晶报表在点菜系统中的应用

2015-01-20袁芳

电脑知识与技术 2014年36期

摘要:水晶报表是具有强大的报表设计功能的设计工具,该文重点介绍了基于.NET的点菜管理系统中使用水晶报表组件完成就餐结账打印就餐小票的报表设计的实现方法,从而提高餐厅服务和管理水平。

关键词:水晶报表;点菜系统;ASP.NET

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2014)36-8680-02

随着我国市场经济的不断发展,国民生活水平的不断提高,进入酒店,餐厅等消费场所的人数也与日俱增。传统的手工点菜方式存在难计算、难查找、难更改、易出错、效率低等缺点,而自动化,信息管理化,网络化的产品逐步进入到了人们的生活,它给我们带来了更多的方便。利用计算机实现管理的信息化,提高管理人员的工作效率,减少管理人员的工作量。通过集成从顾客点菜、上菜到结账等一系列功能,为每个环节明确分工,并通过可视化的软件支持,有效的减少了人为的错误,同时也加强了信息的安全性和可靠性。

在Web应用开发中经常要对数据分组与排序、数据筛选、制作图表、多级汇总等进行开发,若使用普通的数据绑定往往很难做到,而水晶报表就可以大大简化这些工作,同时用它可以制作出非常清晰、漂亮的图表和格式化数据,并且还可以把报表导出为电子邮件、word、excel、pdf、html等格式。该文利用Visual Studio2008软件,介绍水晶报表就点菜系统中打印就餐小票做应用介绍。

1 水晶报表简介

水晶报表(Crystal Reports)是一款商务智能软件,主要用于设计和制作出非常专业、功能强大的报表,它除了报表功能外,还有一个显著地优势是实现了与绝大多数流行开发工具的集成,比如与Visual Studio .NET软件集成,为.NET开发人员提供了非常丰富的报表工具。水晶报表可从任何数据源生成所需要的简单报表,也可以是复杂的、专业的报表。它就像绘图工具(如Microsoft Office Visio)包揽万象,可以用于绘制不同行业的图形。有时当开发人员生成报表或完成报表的过程中会使用内置报表专家,它会非常友好地一步一步地指导开发人员如何进行操作,报表专家也提供以公式、交叉表、子报表等帮助来表示数据的实际意义,从而揭示可能被隐藏掉的关系,为最终用户提供更好的决策信息。

2 .NET平台下水晶报表的执行模式

水晶报表是Visual Studio.Net 开发环境中用于创建报表的标准工具,用它可以创建交互式优质的报表,同时能够降低开发数据报表的难度和减少开发的工作量,提高开发进度。水晶报表程序控制上有两种模式,即拉模式(PULL)和推模式(PUSH)两种数据访问方法。

所谓的拉模式,是当被请求时,水晶报表直接根据指定的驱动链接数据库(源),然后从数据库(源)里拉取数据。拉模式只需调整模版就可设计好水晶报表,其优点是只要按照报表专家的向导来操作,不需要开发人员编写代码,设计时非常方便,可以随时对设计的情况进行修改与预览。

推模式中,开发人员不得不自己编写代码链接数据库(源)并组装DataSet,然后把数据集推送给水晶报表引擎。在推模式下水晶报表本身不与数据库进行交互。采用推模式的好处是开发人员对数据源拥有更大的自主权与控制权,而且在维护上更加的便利,一定程度上降低了与数据库的耦合度。所以在具体应用程序开发时,要综合考虑实际情况来决定采用哪种模式。

3 水晶报表在点菜系统的应用

顾客在餐厅消费完毕后,收银员可以输入桌号,为该顾客计算费用,并打印消费小票。下面采用推模式就如何制作消费小票作如下介绍。

1) 创建视图

在报表制作过程中,首先需要准备数据源。数据源可以是一个数据表,也可以是多个数据表进行关联。对于复杂的数据报表,如果数据来源不止一个数据表,这时最好在数据库服务器端设计数据表视图。本案例在SQL Server 2005 数据服务器上,在该项目的数据库下面的视图上,新建视图viewMenu,在弹出的对话框中选择数据表,然后选择字段和创建计算字段,如图1所示。

图1 创建视图

2) 设计报表

Step1:打开VS2008软件,打开点菜系统,添加新项,选择报表模板,添加报表文件,命名为rptMenu.rdlc

Step2:在App_Code目录下,选择数据集,系统会创建一个数据集文件DataSet1.xsd。系统会自动调出数据集配置窗口TableAdapter。按照配置向导,一步步的配置数据源。在输入SQL语句时,注意从创建的视图viewMenu中查询。

Step3:添加报表项。打开rptMenu.rdlc报表文件,在水晶报表设计器中可以设计标题,插入数据、公式、图表、子报表等,报表式样按用户要求设计。从报表工具箱上拖一个表和五个文本框到报表设计器上,调整位置和字体,如图2所示。在展开数据集DataSet1.xsd中的字段,把它拖到表的详细信息行中,文本框的值设置如图2所示。

图2 设计RDLC报表

Step4:新建一页面MenuPrint.aspx,拖动一个ReportViewer控件到页面中。在ReportViewer任务窗格中,选择刚才建立的报表文件rptMenu.rdlc,该页面的Page_load事件处理方法代码如下。

string strSql = string.Empty;

string strCon = ConfigurationManager.ConnectionStrings["FDconStr"].ToString();

SqlConnection conn = new SqlConnection();

Conn.ConnectionString=strCon;

conn.Open();

strSql = "select * from View1 where tableNo='" + Session["tableNo"] + "'";

SqlDataAdapter sda = new SqlDataAdapter(strSql, conn);

DataSet ds = new DataSet();

sda.Fill(ds, "Querry");

DataTable dt = ds.Tables[0];

ReportViewer1.LocalReport.DataSources.Clear();

ReportViewer1.LocalReport.DataSources.Add(new Microsoft.Reporting.WebForms.ReportDataSource("DataSet1_View1", dt));

ReportViewer1.LocalReport.Refresh();

Session["tableNo"]="";

Conn.Close();

其对应的打印就餐小票的预览效果如图3所示,按打印按钮就可以直接打印就餐小票。

图3 菜单报表

4 结束语

在微软的Visual Studio.NET开发环境下,水晶报表是开发报表的有利工具,它能方便、快捷、准确地生成各种统计报表,在数据库应用程序开发过程中使用水晶报表,不仅可以节省开发人员的开发时间,降低开发难度,同时还可以更大程度满足用户需求。该文重点介绍了ASP.NET环境下使用推模式设计点菜系统的就餐结账小票的制作,从而提高餐厅服务管理水平和工作效率。

参考文献:

[1] 百度百科.水晶报表[EB/OL].[2014-09-28].http://baike.baidu.com/view/303610.htm.

[2] 房大伟,刘云峰,吕双.学通ASP.NET的24堂课[M].北京:清华大学出版社,2011.

[3] 马燕,王文发,许淳,等.基于 Web 的生产统计报表的设计与实现[J].计算机技术与发展,2012,22( 2) :213-216.

SqlConnection conn = new SqlConnection();

Conn.ConnectionString=strCon;

conn.Open();

strSql = "select * from View1 where tableNo='" + Session["tableNo"] + "'";

SqlDataAdapter sda = new SqlDataAdapter(strSql, conn);

DataSet ds = new DataSet();

sda.Fill(ds, "Querry");

DataTable dt = ds.Tables[0];

ReportViewer1.LocalReport.DataSources.Clear();

ReportViewer1.LocalReport.DataSources.Add(new Microsoft.Reporting.WebForms.ReportDataSource("DataSet1_View1", dt));

ReportViewer1.LocalReport.Refresh();

Session["tableNo"]="";

Conn.Close();

其对应的打印就餐小票的预览效果如图3所示,按打印按钮就可以直接打印就餐小票。

图3 菜单报表

4 结束语

在微软的Visual Studio.NET开发环境下,水晶报表是开发报表的有利工具,它能方便、快捷、准确地生成各种统计报表,在数据库应用程序开发过程中使用水晶报表,不仅可以节省开发人员的开发时间,降低开发难度,同时还可以更大程度满足用户需求。该文重点介绍了ASP.NET环境下使用推模式设计点菜系统的就餐结账小票的制作,从而提高餐厅服务管理水平和工作效率。

参考文献:

[1] 百度百科.水晶报表[EB/OL].[2014-09-28].http://baike.baidu.com/view/303610.htm.

[2] 房大伟,刘云峰,吕双.学通ASP.NET的24堂课[M].北京:清华大学出版社,2011.

[3] 马燕,王文发,许淳,等.基于 Web 的生产统计报表的设计与实现[J].计算机技术与发展,2012,22( 2) :213-216.

SqlConnection conn = new SqlConnection();

Conn.ConnectionString=strCon;

conn.Open();

strSql = "select * from View1 where tableNo='" + Session["tableNo"] + "'";

SqlDataAdapter sda = new SqlDataAdapter(strSql, conn);

DataSet ds = new DataSet();

sda.Fill(ds, "Querry");

DataTable dt = ds.Tables[0];

ReportViewer1.LocalReport.DataSources.Clear();

ReportViewer1.LocalReport.DataSources.Add(new Microsoft.Reporting.WebForms.ReportDataSource("DataSet1_View1", dt));

ReportViewer1.LocalReport.Refresh();

Session["tableNo"]="";

Conn.Close();

其对应的打印就餐小票的预览效果如图3所示,按打印按钮就可以直接打印就餐小票。

图3 菜单报表

4 结束语

在微软的Visual Studio.NET开发环境下,水晶报表是开发报表的有利工具,它能方便、快捷、准确地生成各种统计报表,在数据库应用程序开发过程中使用水晶报表,不仅可以节省开发人员的开发时间,降低开发难度,同时还可以更大程度满足用户需求。该文重点介绍了ASP.NET环境下使用推模式设计点菜系统的就餐结账小票的制作,从而提高餐厅服务管理水平和工作效率。

参考文献:

[1] 百度百科.水晶报表[EB/OL].[2014-09-28].http://baike.baidu.com/view/303610.htm.

[2] 房大伟,刘云峰,吕双.学通ASP.NET的24堂课[M].北京:清华大学出版社,2011.

[3] 马燕,王文发,许淳,等.基于 Web 的生产统计报表的设计与实现[J].计算机技术与发展,2012,22( 2) :213-216.