zoukankan      html  css  js  c++  java
  • 一步步学习SPD2010--第五章节--处理数据视图(8)--处理XPath表达式

            在之前两个练习中,在使用数据视图或XLV Web部件时,你使用了XPath Expression Builder创建公式处理从SP返回的XML数据。然而使用XPathExpression Builder不能创建所有你需要的公式或表达式。有时候,为了获得更高程度的灵活性和控制,你需要以代码视图编辑XSLT,智能提示可以帮忙。然而,你需要深入了解XSLT才能直接编辑。你需要以代码视图编辑XSLT的例子就是处理计算值栏。

            默认情况下,SP给每个数字栏目提供两个栏。一个栏提供列表项目数值,第二个提供数值的显示格式。当数字栏目代表货币时,显示栏的值就包含逗号、点和货币符号。为了计算这些货币值的和,你使用数字栏。如果你使用显示栏来完成数学计算的话,XPath表达式会出错,显示NaN(not a number)。数字栏有与显示栏相同的名字,但是名字附加有个点。

            计算值栏没有相关数字栏。因此在XPath表达式中选择正确的栏目不是简单的任务。你在下面练习中使用的解决方案首先计算了节点函数,捕获XSL变量中的结果作为结果树部分,紧接着使用msxsl:node-set函数被转化用来作为总和函数的输入。在你配置计算值栏的时候,如果你不想创建自己的XLST代码,不要选择公式返回为货币类型。相反,创建额外的栏目储存货币符号。

            本次练习中,你使用插入公式对话框,并在代码视图中,修改XSLT代码来更正两个组的总和(非数字)。

            准备:打开CreateDVWP.aspx,选中SalesReport DFWP

    1.    在List Price栏目点击NaN,在选项,点击公式

            小贴士:你可能需要再次点击NaN来高光。

    2.    在Price和)中间,输入“.”点击确定。

           小贴士:你可以使用format-number公式将List Price格式为货币

    3.    在Total Purchased栏,点击NaN,点击拆分(视图)。

           小贴士:你可能需要再次点击NaN来高光。

    4.    在快速标签选择器上,点击<xsl:if>

           代码视图中,<xsl:iftest "$showfootercolumn ddwrt:cf-ignore "1">标签内部高光


    5.    在代码视图,在<xsl:if左边按下Enter两次

    6.    在第一空行,输入<xsl:var,按下Tab选择xsl:variable.按下空格,输入n,按下Tab选择name。


    7.    在两个引号中间输入SumTotalPurchaseNodeset。在引号右边输入“>”,按下Enter两次。代码应该是这样:

          <xsl:variable name="SumTotalPurchasedNodeset">

          </xsl:variable>

    8.    使用前几步用的技巧,创建下面的代码:

        <xsl:variable name="SumTotalPurchasedNodeset">

        <xsl:for-each select="$nodeset">

        <Value>

        <xsl:value-of

        select="substring-after(translate(@Total_x0020_Purchased,',',''),'$')"/>

        </Value>

        </xsl:for-each>

        </xsl:variable>

       小贴士:如果你不想输入代码,在SPDSBSC05.txt中复制粘贴也可以。

    9.    在设计视图,Total Purchased栏目,点击NaN,在代码视图,删除

        <xsl:value-of     select="sum($nodeset/@Total_x0020_Purchased"/>。输入:

        <xsl:value-of

         select="concat('$',sum(msxsl:node-set($SumTotalPurchasedNodeset)/Value))"/>

    10.  在设计视图,点击NaN。

            页面刷新,NaN被代替为$80619.40.

  • 相关阅读:
    JS Array转JSON
    js数组转字符串并用,分割
    java枚举类-根据key获取value及根据value获取key
    CSS文件引入顺序
    git pull之前要先commit
    FastJson中@JSONField注解使用
    @JsonFormat与@DateTimeFormat注解的使用
    Jackson 时间格式化,时间注解 @JsonFormat 用法、时差问题说明
    shell脚本使用
    ubuntu12.04 安装redis
  • 原文地址:https://www.cnblogs.com/crazygolf/p/3857112.html
Copyright © 2011-2022 走看看