作爲工作任務的一部分,我正在考慮將Crystal報表中的簡單列表導出爲單獨的xml文件,每行一個。在Crystal Reports 2008中使用XSLT 2.0標籤
這份名單是員工基本信息,即名字,姓氏等
使用Crystal Reports 2008和XSLT地讀了起來,我已經成功地編寫放置每個員工在自己的元素與孩子轉變元素詳述其信息。
但是,我試圖使用xsl:result-document命令,但Crystal Reports似乎並不喜歡它。我的XSLT文件在SAXON中工作正常,並將xml分割成單獨的文件,但Crystal完全忽略標籤內的所有內容,只顯示標題信息。
有沒有其他人有類似的問題?
我知道result-document標籤在XSLT 2.0中可用,所以我猜測Crystal Reports 2008中的處理器只適用於XSLT 1.0?如果有的話,我可以強制它使用XSLT 2.0?
感謝您的時間, 本
下面是我的XSLT文件:
<?xml version='1.0' ?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:b="urn:crystal-reports:schemas:report-detail">
<xsl:template match="/b:CrystalReport">
<Report>
<xsl:for-each select="b:Details">
<xsl:variable name="empnumber" select="b:Section/b:Field[@Name='EmployeeNumber1']/b:Value"/>
<xsl:result-document href="{$empnumber}.xml">
<Employee>
<xsl:attribute name="ID">
<xsl:value-of select="b:Section/b:Field[@Name='EmployeeNumber1']/b:Value"/>
</xsl:attribute>
<FirstName>
<xsl:value-of select="b:Section/b:Field[@Name='FirstName1']/b:Value"/>
</FirstName>
<Surname>
<xsl:value-of select="b:Section/b:Field[@Name='Surname1']/b:Value"/>
</Surname>
<Test>
<xsl:value-of select="$empnumber" />
</Test>
</Employee>
</xsl:result-document>
</xsl:for-each>
</Report>
</xsl:template>
</xsl:stylesheet>
嗨亞伯,你的快速反應歡呼,但不是我所希望的!我設法從Crystal Reports中導出XML,然後使用在其sourceforge頁面(http://saxon.sourceforge.net/#F9.3HE)上找到的.NET版本的Saxon對其進行轉換。這給了我所需的結果,但希望能夠從Crystal完成這一切,以便它可以通過Crystal Reports和我們的Business Objects Enterprise服務器實現自動化。儘管感謝您的幫助! – 2011-03-18 15:13:19
@Ben:儘管早在2007年,微軟仍然沒有采用XSLT 2.0,但他們表示會這樣做。在他們這樣做之前,解決方法是必要的......:S – Abel 2011-03-23 13:02:21