技术开发 频道

ASP.NET 3.5下基于Crystal Reports的报表编程

  (8)一旦你选择了AdventureWorks数据库,单击“Next”按钮,然后单击“Finish” 按钮。

  通过以上步骤,你的SQL Server数据库服务器及数据库应当会出现在OLE DB (ADO)节点下,如图9所示。

图9  SQL Server数据库服务器及数据库应当会出现在OLE DB (ADO)节点下

  (9)展开AdventureWorks节点,你会看到数据库中的模式定义列表。注意到,每一个模块下都有两个节点—Tables和Views。进一步展开这些节点,便可以观察到表格及视图。

  (10)接下来,我们要选择报表中需要的表格及视图。为此,首先展开Person模式下的Tables节点。单击Contact表格并单击“>”按钮把此表格移动到右边的已选择表格列表中。之后,针对Production.Product,Sales.SalesOrderDetail和Sales.SalesOrderHeader表格进行同样的操作,如图10所示。

图10  选择报表中需要的表格

  (11)注意到,表格Sales.SalesOrderHeader提供了两个地址字段(addr1和addr2)。一个对应于订单地址,一个对应于货运地址。每一个都是表格Person.Address的一个外键。为此,我们不得不针对地址表格的两个外键添加两个副本—我们可以使用别名技巧来进行区别。现在,把表格Person.Address也添加到右边的已选择表格列表中。

  (12)右击已选择表格列表中的Address表格,从弹出菜单中选择“Rename”,把表格名字更改为AddressBillTo并按回车键。注意到,Crystal会把所有命名改为全部小写。

  (13)现在,再次把表格Person.Address添加到右边的已选择表格列表中,这次把名字更改为AddressShipTo。

  (14)注意到,表格Person.Address有一个到表格Person.StateProvince的外键。因此,我们还需要把表格Person.StateProvince连续两次添加到右边的已选择表格列表中,并分别区别命名为StateProvinceBillTo和StateProvinceShipTo。

  (15)至此,我们已经选定了要定义其间关系的表格。在确定关系这一点上,Crystal做了大量的工作。但尽管如此,它也不会全自动化地按我们的要求处理。为此,我们还要单击选项卡“Links”进一步手工配置几个表格关系。

  (16)单击选项卡“Links”会以图表方式展示各表格。为方便起见,你可以把表格拖放得足够观察到所有表格间的关系为止(如图11所示)。

图11  选项卡“Links”以图表方式展示各表格及关联关系

  (17)上面众多表格中,表格SalesOrderHeader是我们提供数据的主要表格。注意到,Crystal已经为我们自动创建了下面表格之间的关联关系:SalesOrderHeader.SalesOrderId关联到SalesOrderDetail.SalesOrderId,SalesOrderHeader.ContactId关联到Contact.ContactId,SalesOrderHeader.BillToAddressId关联到AddressBillTo.AddressId,AddressBillTo.StateProvinceId关联到StateProvinceBillTo.StateProvinceId。关联关系是通过连接线表示的。如果你没有看到这些关联线,你可以很容易地通过点击外键字段并拖动到主键字段的方式来创建这些关联关系。

  (18)在本示例中,你还需要手动创建下面几个关联关系:SalesOrderDetail.ProductId关联到Product.ProductId,SalesOrderHeader.ShipToAddressId关联到ShipToAddress.AddressID,ShipToAddress.StateProvinceId关联到StateProvinceShipTo.StateProvinceId。通过拖动方式可以很容易创建这些关联关系。例如,单击SalesOrderDetail.ProductId字段,然后拖动这个字段到Product.ProductId字段上面即可。顺便说一下,如果你需要创建一个外部连接,你可以双击这些关联线,然后根据需要把连接形式更改为Left,Right或者Full Outer Join类型的连接。

  (19)最后,单击“确定”按钮彻底退出数据库专家对话框(如图12所示)。

图12  创建完所有关联关系后的选项卡“Links”内容

  返回到Visual Studio 2008。双击“Database Fields”节点后,你会观察到上面所有添加的表格。进一步单击每一个表格便可以看到其中的每一个字段,如图13所示。

图13  创建完数据库连接后在工具栏中观察到的内容(局部)

  四、小结

  在本篇中,我们详细地描述了创建示例网站工程与相应的数据库连接的具体步骤。其中,实现数据库连接并准确实现其中数据表格间的关联关系是非常重要的。在下一篇(第二篇)中,我们将具体展开使用水晶报表创建报表的页眉的讨论。

下载文章内清晰版图片http://download.itpub.net/html/2009/1013/2433200910131042508258.shtml

系列文章索引:

ASP.NET 3.5下基于Crystal Reports的报表编程

ASP.NET下基于水晶报表编程的创建报表页眉

ASP.NET下基于水晶报表编程的分组报表

0
相关文章