当前位置导航:炫浪网>>网络学院>>网页制作>>ASP.NET教程

实例讲解:ASP.NET水晶报表教程

  报表是应用程序中不可缺少的部分,一张好的报表,能直观地让人把握数据的情况,对决策起到重要作用。那么,如果才能更快捷、更高效地实现报表呢?本文以一个三层结构的ASP.NET程序为例,介绍如何使用crystalreport,来制作一份报表,其中介绍了不少ASP.NET水晶报表的技巧。

  在这个例子中,我们设想的应用要为一个销售部门制作一份报表,管理者可以查看某段时间之内的销售情况,以列表或者折线图的形式反映出销售的趋势。我们将使用SQLServer 2000做为数据库,使用VB.NET编写中间层逻辑层,而前端的表示层使用C#。

  介绍ASP.NET水晶报表教程之前,我们先来看下数据库的结构。

  其中,tbitem表中存放的是每张订单中所订购的货品,tbsales存放的是每张订单,tblsalesperson是销售员表,存放该出版社的每位销售员。

  接下来,使用SQLServer 2000来创建这些表。表的结构如下所示:

  CREATETABLE[dbo].[tblItem](  [ItemId][int]NOTNULL,

  [Description][varchar](50)NOTNULL  )ON[PRIMARY]

  CREATETABLE[dbo].[tblSalesPerson](  [SalesPersonId][int]NOTNULL,

  [UserName][varchar](50)NOTNULL,  [Password][varchar](30)NOTNULL  )

  ON[PRIMARY]  CREATETABLE[dbo].[tblSales](  [SaleId][int]IDENTITY(1,1)NOTNULL,

  [SalesPersonId][int]NOTNULL,

  [ItemId][int]NOTNULL,

  [SaleDate][datetime]NOTNULL,

  [Amount][int]NOTNULL  )ON[PRIMARY]

  并且用以下的代码创建表之间的约束关系。

  ALTERTABLEtblItem  ADDCONSTRAINTPK_ItemId

  PRIMARYKEY(ItemId)  GO  ALTERTABLEtblSalesPerson  ADDCONSTRAINTPK_SalesPersonId

  PRIMARYKEY(SalesPersonId)  GO  ALTERTABLEtblSales

  ADDCONSTRAINTFK_ItemId  FOREIGNKEY(ItemId)REFERENCEStblItem(ItemId)  GO  ALTERTABLEtblSales

  ADDCONSTRAINTFK_SalesPersonId  FOREIGNKEY(SalesPersonId)REFERENCEStblSalesPerson(SalesPersonId)  GO

  ASP.NET水晶报表教程之创建中间逻辑层

  在中间逻辑层组件中,我们为每一张表都创建两个类。比如,对于tblItems表,创建item和items类。Item类中记录每件销售的货品的详细情况,而items表则记录所有销售的货品并且有增加货品的方法。这样,就存在下面的六个类:

  Item and Items

  SalesPerson and SalesPersons

  Sale and Sales

  接下来,看一下每个类中的属性:

  Item类

  包括如下属性

  ItemId (货品id编号)

  Description (货品的描述)

  Items

  有一个方法,将根据item的编号返回一个item对象

  PublicFunctionGetAllItems()AsCollections.ArrayList

  SalesPerson

  ASP.NET水晶报表教程之创建表现层页面

  接下来,开始创建表现层页面。首先,要创建一个可以给销售员登陆的页面,如下图所示。

  在销售员成功登陆后,可以给销售员输入某样货品销售的数量,如下图:

  此外,为了给业务主管看到某个时期的销售情况,创建如下页面。

  其中,业务主管可以选择查看某样货品在某个时期(选择开始日期,结束日期)的销售情况,以图表方式显示。

  这里特别值得一提的是,日历控件的使用。在页面中放置日历控件后,设置如下代码:

  <inputtype="image"onclick="Page_ValidationActive=false;"src="datepicker.gif?http://www.xvna.com"alt="ShowCalender"runat="server"onserverclick="ShowCal1"id="ImgCal1"name="ImgCal1">

  这里设置page_validationactive参数为false,所以不需要重新提交页面,并且,在onserverclick事件中,设置处理的代码,如下所示:

  publicvoidShowCal1(Objectsender,System.Web.UI.ImageClickEventArgse)

  {//显示日历控件  DtPicker1.Visible=true;  }

 

相关内容
赞助商链接