В рамках рабочей задачи я рассматриваю экспорт простого списка деталей из отчета Crystal Report в отдельные XML-файлы, по одному для каждой строки.
Список является основной информацией о сотруднике, т. Е. Имя, фамилия и т. Д.
Используя 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>