在SharePoint Designer 2007中使用交叉列表查询的数据视图

概述:

      使用列表作为企业小型数据管理的解决方案是非常方便的,但是不方便的地方是列表与列表之间不方便进行数据的连接,但是使用SPD我们可以建立列表与列表之间的交叉查询的数据视图。唯一不方便的是,使用跨列表查询时,我们不可以使用“表单”这一种数据视图,这意味着我们就不可以使用设计出的页面进行编辑的操作。但是对于不复杂的应用,跨列表的数据视图功能还是给了我们非常大的方便。

结果的URL:http://www.sharepoint.org.cn/dosboy/remain.aspx


前骤:
      有两个列表,其中一个是“全部产品”,用来存储产品ID、总数量和其它基本信息,另一个列表是“使用产品”,记录了产品ID和使用的数量。 现在我们要列出一个表,来显示每一件产品的库存数量,使用公式很简单:库存数量=总数量-使用量。

两个表的结构如下图:





步骤:

1 打开SPD在根目录新建一个ASPX页面,起名为 Remain.aspx :

方法是点击SPD的“打开”-“网站”,输入SP网站的URL,然后“新建”-ASPX页面。保存为Remain.aspx

如下图:



2 新建链接源

方法是,点击“数据视图”-“插入数据视图”,在右边的数据源库的链接源中,点击“新建连接源”,如下图:


在弹出的窗口点击如图按钮:



选择要连接的列表:



下一步来选择连接方式:



在“完成”后,你可以看见如下的新链接源:



3 插入“全部产品”的数据视图

在新数据源中,点击它的上下文菜单,单击显示数据,以打开这个数据源的详细情况:



你会看到包含2个列表的XML树状结构:



展开“全部产品”,找到“产品ID”、“产品名称”和“总数量”,如图插入多项目视图:



然后,你就可以看到在页面编辑的的窗口中看见插入了一个表格,如下图在这个表格右边插入两个空列:

这2个空列,用来存放使用数量和库存数量。

4 插入“产品使用”子视图:

一定要把光标移到如下拉的位置,并且在右边展开“产品使用”选择下面已用数量,点击图中的按钮,选择“联接的子视图




这时会弹出一个连接菜单,如下图,因为本示例中的产品ID,是改了系统的“标题”字段为“产品ID”名称的,所以连接的字段都为@Title,如果你是其它字段,请选择正确的内部名称:



点击确定后,表格中会多出一个联按的子视图,如下图,你直接删除这个标题,然后在列首加一个“已用”就OK了。



如下图:




5 插入库存数量

在表格的右边还有一个空白列用来放计算的库存数量。在列首,请填上“库存”,并且把总数量下的字段(如上图的100.00那个标签)复制到,库存下面,如图:


在“库存”一列的第一个记录单元格里,同样 选择“粘贴”,之后,就会出现两个总数量,如下图,不要着急:



点击“库存”下的第一个字段,如图设置它的XPATH表达式:



在弹出窗口中输入如下的表达式:

format-number(number(@_x603b__x6570__x91cf_)-number(../../../产品使用/Rows/Row[@Title=current()/@Title]/@_x5df2__x7528__x6570__x91cf_),'####')





点击确定后,就可以看到库存已经被计算出来了。




但是没有使用的“随变”这个产品的库存好象计算不正确,我们把这个公式再变成如下的公式,就搞定:

format-number(number(@_x603b__x6570__x91cf_)-number(concat('0',../../../产品使用/Rows/Row[@Title=current()/@Title]/@_x5df2__x7528__x6570__x91cf_)),'####')



如下图:


posted @ 2008-04-10 19:59  dosboy  阅读(4347)  评论(9编辑  收藏  举报