|
|||
ГЕНЕРАЦИЯ ОТЧЕТОВ В ФОРМАТЕ XML2.10. ГЕНЕРАЦИЯ ОТЧЕТОВ В ФОРМАТЕ XML
Еще одним способом генерации печатных форм является генерация отчетов в HTML-формате на основе формирования XML-файлов и последующего применения к ним XSLT-преобразований. Этот подход генерации отчетов является более универсальным, так как формат XML и его технологии являются межплатформенной и поддерживаются большим количеством языков программирования и средами проектирования в различных операционных системах. Например, XSLT-преобразование делается на основе следующего файла. В нем создается список зачетов и экзаменов, которые сдают студенты различных групп. С помощью выражений XPath в тегах for-each и value-of задаются источники данных из xml-документа для конкретных элементов html-файла, полученного в результате преобразования: <?xml version="1.0" encoding="utf-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl"> <xsl:template match="/"> <html> <head/> <body> <div style="font-family: Book Antiqua; font-weight:bold; text-align: none;color: #0000FF;"> Список зачетов и экзаменов. </div> <ul style="list-style-type: disk">
<xsl:for-each select="/NewDataSet/Session_Subject"> <li> <xsl:value-of select="NumGroup"/> <br/> <xsl:value-of select="NumSemestr"/> <br/> <xsl:value-of select="TitleSubject"/> <br/> <xsl:value-of select="Zach_Ezam"/> <br/> </li>
</xsl:for-each> </ul> </body> </html> </xsl:template> </xsl:stylesheet>
Результат применения такого преобразования может быть сохранен в виде html-файла и в дальнейшем загружен в элемент управления WebBrowser, специально предназначенный для работы с файлами такого формата.
Рис. 48. Вид сгенерированного на основе xslt-преобразования htmlдокумента в элементу управления WebBrowser.
Программный код, который генерирует xml-документ из таблицы набора данных ds, создает на основе xslt-преобразования, которое сохранено в файле forreport.xslt, генерирует html-файл и показывает его в элементе управления WebBrouser. // сохранение набора данных в xml-файле ds.WriteXml("forreport.xml", XmlWriteMode.WriteSchema); // создание специального объекта- xslt-преобразователя XslCompiledTransform xslt = new XslCompiledTransform(); // загрузка файла с xslt-преобразованием xslt.Load("../../forreport.xslt");
// выполнение преобразования и генерация на основе xml-файла //html-файла представления данных xslt.Transform("forreport.xml", "D:\\forreport.html");
// загрузка полученного html_файла в элемент управления WebBrowser webBrowser1.Navigate("D:\\forreport.html");
|
|||
|