我知道您可以创建一个基本视图来执行此操作,但我真正需要的是XSLT数据视图中的查询,该查询将显示@Status ='Open'和@Created<的所有记录。 30天前
我打算显示一个图表,显示任务在没有处理的情况下在管道中停留的时间。因此,我所做的是创建了一个XSLT数据视图,该数据视图过滤数据源以仅提取仍处于打开状态的项目。然后在xsl中,我只想做类似的事情:
<xsl:variable name="THIRTYdaysCount" select="count(/dsQueryResponse/Rows/Row[normalize-space(@Created) < $THIRTYdays])" />
我认为这不会起作用,因为数据需要格式化,我也无法获得$ THIRTYdays。有谁能告诉我一个如何做这个的例子吗?
答案 0 :(得分:0)
THIRTY天是计算列还是类似的? Xsl不适用于日期计算。
您是否尝试过使用DataFormWebPart?它仍然使用XSL呈现它的输出,但允许在使用CAML检索之前过滤数据,并且过滤器可以绑定到查询字符串变量,控制值,CAMl值等等。
谷歌搜索DataFormWebPart将导致大量的解释/教程。
答案 1 :(得分:0)
使用caml查询和内容编辑器Web部件
<Query>
<ViewFields><FieldRef name='Title'/></ViewFields>
<Where>
<Gt>
<FieldRef Name='Modified' />
<Value Type='DateTime'>2009-10-05<</Value>
</Gt>
</Where>
...
答案 2 :(得分:0)
也许我错过了你想要做的事情,但这个片段是一个CAML查询,在过去的30天里用任何创建日期来提取任何东西?
<WHERE>
<GE>
<FieldRef Name="Created"/>
<Value Type="DateTime"><Today OffsetDays="-30" /></Value>
</GE>
</WHERE>
您必须添加Status = Open。
请参阅此article on creating CAML queries - 而且U2U's CAML builder tool也非常好。
答案 3 :(得分:0)
我带着一个非常丑陋的日期来进行字符串和比较方法:
<xsl:variable name="THIRTYdaysDate">
<xsl:call-template name="SubMonth">
<xsl:with-param name="StartDate" select="ddwrt:TodayIso()" />
<xsl:with-param name="MonthsToAdd" select="1" />
</xsl:call-template>
</xsl:variable>
<xsl:variable name="SIXTYdaysDate">
<xsl:call-template name="SubMonth">
<xsl:with-param name="StartDate" select="ddwrt:TodayIso()" />
<xsl:with-param name="MonthsToAdd" select="2" />
</xsl:call-template>
</xsl:variable>
<xsl:variable name="NINETYdaysDate">
<xsl:call-template name="SubMonth">
<xsl:with-param name="StartDate" select="ddwrt:TodayIso()" />
<xsl:with-param name="MonthsToAdd" select="3" />
</xsl:call-template>
</xsl:variable>
<xsl:variable name="THIRTYdays" select="count(/dsQueryResponse/Rows/Row[number(concat(substring(ddwrt:FormatDateTime(string(@Created), 1033, 'yyyyMMdd'),0,5),
substring(ddwrt:FormatDateTime(string(@Created), 1033, 'yyyyMMdd'),5,2),
substring(ddwrt:FormatDateTime(string(@Created), 1033, 'yyyyMMdd'),7,2))) >= $THIRTYdaysDate])" />
<xsl:variable name="SIXTYdays" select="count(/dsQueryResponse/Rows/Row[number(concat(substring(ddwrt:FormatDateTime(string(@Created), 1033, 'yyyyMMdd'),0,5),
substring(ddwrt:FormatDateTime(string(@Created), 1033, 'yyyyMMdd'),5,2),
substring(ddwrt:FormatDateTime(string(@Created), 1033, 'yyyyMMdd'),7,2))) >= $SIXTYdaysDate])" />
<xsl:variable name="NINETYdays" select="count(/dsQueryResponse/Rows/Row[number(concat(substring(ddwrt:FormatDateTime(string(@Created), 1033, 'yyyyMMdd'),0,5),
substring(ddwrt:FormatDateTime(string(@Created), 1033, 'yyyyMMdd'),5,2),
substring(ddwrt:FormatDateTime(string(@Created), 1033, 'yyyyMMdd'),7,2))) >= $NINETYdaysDate])" />
<xsl:variable name="GREATERdays" select="count(/dsQueryResponse/Rows/Row[number(concat(substring(ddwrt:FormatDateTime(string(@Created), 1033, 'yyyyMMdd'),0,5),
substring(ddwrt:FormatDateTime(string(@Created), 1033, 'yyyyMMdd'),5,2),
substring(ddwrt:FormatDateTime(string(@Created), 1033, 'yyyyMMdd'),7,2))) < $NINETYdaysDate])" />
<xsl:variable name="AllTasks" select="count(/dsQueryResponse/Rows/Row)" />