我正在使用BI Publisher工具以Microsoft Word创建报告,该工具使用XSL创建PDF。数据是通过Peoplesoft中的SQL查询创建的,然后将其导出到XML文件中。当有一个XML字段为空('')时,我希望报告用当天的当月最后一天填充该字段。
我看到XSL为此提供了功能
{omega**2/k**2: a + b*c + b, omega**4/k**4: b + c, omega**6/k**6: a*b*c, 1: a + b}
http://www.xsltfunctions.com/xsl/functx_last-day-of-month.html
我不确定如何在当前的XSL中实现此功能。我想通了如何显示今天的日期
<xsl:function name="functx:last-day-of-month" as="xs:date?"
xmlns:functx="http://www.functx.com">
<xsl:param name="date" as="xs:anyAtomicType?"/>
<xsl:sequence select="
functx:date(year-from-date(xs:date($date)),
month-from-date(xs:date($date)),
functx:days-in-month($date))
"/>
</xsl:function>
是否有将XSL <?format-date:xdoxslt:sysdate_as_xsdformat();'Short'?>
与今天的日期的XSL字段一起使用?我在网上的任何地方都找不到很好的例子。
我可以使用case语句重写SQL查询,但是在Peoplesoft中这样做非常繁琐,而使用XSL进行此更改将使我的生活变得更加轻松。我对XSL的工作原理了解不多,所以有什么用。
答案 0 :(得分:0)
functx
函数是一个外部库,您可以下载here。将此文件放在同一目录中,并在XSLT文件中至少包含以下两行(至少version="2.0"
)。
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:functx="http://www.functx.com"
version="2.0">
<xsl:import href="functx-1.0-doc-2007-01.xsl" />
...
现在,您可以在XSLT文件中使用functx:...
函数。
例如,要使用current-date()
,请使用
<xsl:value-of select="current-date()" />
并获得last-day-of-month(...)
的使用
<xsl:value-of select="functx:last-day-of-month(xs:date('2018-07-19'))" />
总有没有可以将XSL functx:month-last-of-month与今天的日期的XSL字段一起使用?我在网上的任何地方都找不到很好的例子。
将二者结合使用以获得last-day-of-month()
或current-date()
使用
<xsl:value-of select="functx:last-day-of-month(current-date())" />