数据视图几乎给格式化数据提供了无限可能。向XLV Web部件一样,数据视图不含数据;它们指向存在其他位置的数据。当你请求页面时,SP向SQL Server内容数据库查询数据视图的属性,来发现数据的位置。然后数据抽取服务包含XML这样的数据,而且像在数据视图的XSLT中定义的那样,SP动态转换数据到HTML。SPD在 数据源详细信息任务窗格和设计视图中显示返回的XML数据。你可以使用设计视图作为可见XSLT编辑器,这样通过使用在第四章节“自定义网页”中使用的编辑静态HTML的一些技巧,你可以管理数据视图Web部件中的XML数据。和你在HTML单元格中格式化数据一样,效果也应用到了相同列的其他单元格中。
注意:数据抽取服务可以使用SP2010管理中心Web网站在Web应用程序基础上配置。为了看到这个网站,在应用程序管理页面,在数据库下,点击配置数据抽取服务。
你可以使用修改XLV Web部件的许多相同方法修改DFWP,如指定显示的域,筛选、排序和分组数据项目;在集中显示数据项目;或者限制显示的项目数。然而,DFWPs不能使用数据表视图。
使用显示选项卡的数据视图预览命令,你可以修改无匹配项模板。这允许你在没有项目显示在数据视图或XLV Web部件中时,改变显示的文本。
本次练习中,你给数据视图中的数据排序和分组,修改文本,修改分组数据时用到的函数。
准备:在SPD中,打开CreateDVWP.aspx,选中SalesReport DFWP。
1. 在域标题行,右击ListPrice,点击List Price。
2. 在数据视图工具,选项选项卡上,点击筛选、排序和分组组中的排序和分组。
3. 在可用域列表,向下滚动,选择Sales Person,点击添加。在组属性,点击显示组标题,然后点击显示组页脚。
4. 点击高级分组。在高级分组对话框中,选择显示每组列总数。
5. 点击确定。
小贴士:在高级分组对话框中,显示每组列总数不允许你选择哪个组或列汇总。它给类型为数字的列创建了一个公式。一旦公式被创建,请删除那些组总数或列总数(不被要求的或不符合业务逻辑的)。
6. 在可用域列表,点击Quarter,点击添加,在组属性中,显示页眉和页脚。
7. 在可用域列表,点击Customer,点击添加。
8. 点击确定。
CreateDVWP.aspx页面刷新,DVWP显示了来自SalesReport列表中的数据,且以销售人员然后是季度进行分组。数据按客户排序。Quantity Purchased、List Price和Total Purchased列总数以每Quarter和每个SalesPerson格式显示。
注意:销售人员页脚的计算是正确的,但是季度计数不正确。组计数只是用了域Quarter,为了得到正确的计数,Sales Person和Quarter域应该用来创建分组。List Price和Total Purchased域出现“NaN(不是一个数字)”输入。因为值中包含了非数字符号----美元符号和逗号。本章节之后会更正这些问题。
9. 双击第一个计数,输入No. of sales in Quarter
文本改变应用到了所有的以Quarter分组的计数
10. 双击Count,输入Sales per Year。
11. 双击1237左边的sum,输入max。点击1237,点击出现的图标,选择Max。
Quantity Purchased列的值包含了一次销售的最大quantity purchased。
12. 在设计选项卡,数据视图预览下,点击默认预览,选择无匹配项模板。
页面刷新但是没有显示内容。
13. 选择“此视图中没有项目可显示”,并输入The sales reports for this period are notavailable.。
14. 在设计选项卡,数据视图预览下,点击无匹配项模板,然后选择默认预览。
15. 点击保存,点击是重载页面,查看保存的结果。