|
Помогите разобраться Zen Reports и %XML.Writer для генерации отчётов Excel в Cache
|
|||
---|---|---|---|
#18+
Стоит задача софмировать .xls файл на сервере. В результате поисков нашла подходящий метод, описанный в статье http://habrahabr.ru/company/intersystems/blog/163981/ Вот незадача, делаю все по инструкции, но в итоге не получается. Далее код, который преобразует .xml файл в .xls. Файл xml с данными прилагаю (его нужно сохранить C:\123\ или др. место, но тогда в методе поправить). Вызов метода: d ##class(zen.DailyReport).generateReportContainer("C:\123\Person.xls") В итоге файл создается, но открывается с ошибкой, отображается xml таблица стилей, но вовсе не данные. Системные данные: Cache 2012, win 7, Excel 2007 Class zen.DailyReport Extends %ZEN.Report.reportPage { XData xsl { <xsl:stylesheet version="1.0" xmlns:xsl="www.w3.org/1999/XSL/Transform" xmlns="urn:schemas-microsoft-com:office:spreadsheet" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"> <xsl:template match="/"> <xsl:processing-instruction name="mso-application"> <xsl:text>progid="Excel.Sheet"</xsl:text> </xsl:processing-instruction> <Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" xmlns:html=" http://www.w3.org/TR/REC-html40" > <DocumentProperties xmlns="urn:schemas-microsoft-com:office:office"> <Author>unUser</Author> <LastAuthor>unUser</LastAuthor> <Created>2013-12-12T21:38:36Z</Created> <Company>NNN</Company> <Version>12.00</Version> </DocumentProperties> <ExcelWorkbook xmlns="urn:schemas-microsoft-com:office:excel"> <WindowHeight>12660</WindowHeight> <WindowWidth>28620</WindowWidth> <WindowTopX>120</WindowTopX> <WindowTopY>15</WindowTopY> <ProtectStructure>False</ProtectStructure> <ProtectWindows>False</ProtectWindows> </ExcelWorkbook> <Styles> <Style ss:ID="Default" ss:Name="Normal"> <Alignment ss:Vertical="Bottom"/> <Borders/> <Font ss:FontName="Calibri" x:CharSet="204" x:Family="Swiss" ss:Size="11" ss:Color="#000000"/> <Interior/> <NumberFormat/> <Protection/> </Style> </Styles> <Worksheet ss:Name="Лист1"> <Table ss:ExpandedColumnCount="3" ss:ExpandedRowCount="1" x:FullColumns="1" x:FullRows="1" ss:DefaultRowHeight="15"> <Column ss:AutoFitWidth="0" ss:Width="66"/> <Column ss:AutoFitWidth="0" ss:Width="94.5"/> <Column ss:AutoFitWidth="0" ss:Width="100.5"/> <xsl:for-each select="myReport"> <xsl:for-each select="./code"> <Row> <Cell> <Data ss:Type="String"><xsl:value-of select="./code"/></Data> </Cell> <Cell> <Data ss:Type="String"><xsl:value-of select="./name"/></Data> </Cell> <Cell> <Data ss:Type="String"><xsl:value-of select="./amount"/></Data> </Cell> </Row> </xsl:for-each> </xsl:for-each> </Table> <WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel"> <PageSetup> <Header x:Margin="0.3"/> <Footer x:Margin="0.3"/> <PageMargins x:Bottom="0.75" x:Left="0.7" x:Right="0.7" x:Top="0.75"/> </PageSetup> <Selected/> <ProtectObjects>False</ProtectObjects> <ProtectScenarios>False</ProtectScenarios> </WorksheetOptions> </Worksheet> </Workbook> </xsl:template> </xsl:stylesheet> } ClassMethod generateReportContainer(outFileName As %String) As %Status { set xslStream = ##class(%Dictionary.CompiledXData).%OpenId(..%ClassName(1)_ "||xsl").Data set xmlStream = ##class(%FileBinaryStream).%New() set xmlStream.Filename = "C:\123\myXML.xml" // путь к файлу .xml set outStream = ##class(%FileCharacterStream).%New() set outStream.TranslateTable = "UTF8" set outStream.Filename = outFileName set sc = ##class(%XML.XSLT.Transformer).TransformStream(xmlStream, xslStream, .outStream) if $$$ISERR(sc) quit sc quit outStream.%Save() } } ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2013, 02:25 |
|
Помогите разобраться Zen Reports и %XML.Writer для генерации отчётов Excel в Cache
|
|||
---|---|---|---|
#18+
xml файл ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2013, 02:28 |
|
Помогите разобраться Zen Reports и %XML.Writer для генерации отчётов Excel в Cache
|
|||
---|---|---|---|
#18+
galinaVLВот незадача, делаю все по инструкции, но в итоге не получается. Чтобы заработало замените<xsl:stylesheet version="1.0" xmlns:xsl="www.w3.org/1999/XSL/Transform"на<xsl:stylesheet version="1.0" xmlns:xsl=" http://www.w3.org/1999/XSL/Transform" И обратите внимание на Шаг 3. Посредством любого текстового редактора вносятся изменения в структуру xml путём удаления лишних атрибутов. В нашем случае удаляются атрибуты: ss:ExpandedColumnCount = «67»; ss:ExpandedRowCount = «45»; x:FullColumns = «1»; x:FullRows = «1», так как учебный план имеет произвольное количество дисциплин, и если у элемента «Table» сохранить эти атрибуты, возникнет ошибка при генерации документа Excel из-за несоответствия количества строк и столбцов. PS: а вообще печально, что готовый отчёт был удалён с dropbox и нет исходников с готовым проектом. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2013, 12:54 |
|
Помогите разобраться Zen Reports и %XML.Writer для генерации отчётов Excel в Cache
|
|||
---|---|---|---|
#18+
я делал как раз недавно по этому описанию, на самом деле ручной работы много если что нужно выложу исходники ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2013, 14:27 |
|
Помогите разобраться Zen Reports и %XML.Writer для генерации отчётов Excel в Cache
|
|||
---|---|---|---|
#18+
сейчас, как раз заканчиваю новый генератор для формирования отчетов в Excel, Word не требуется ничего, ни fop, ни Office Планируется использование готовых макетов Excel, Word, их достаточно нарисовать и оформить в соответствующем приложении, поставка данных для отчета любым методом используемым в dataCombo 1 - путем выполнения запроса прописанного на странице OnCreateResultSet="..." 2 - путем выполнения запроса sql="..." 3 - путем выполнения запроса queryClass="...", queryName="..." 4 - путем выполнения запроса tableName="...", columnName="...", whereClause="...", orderByClause="...", groupByClause="..." или из заранее сформированной глобали Помимо использования готовых макетов Excel возможно формирование динамического отчета Предусмотрена автоматическая конвертация данных типа дата, время, дата+время в формат Excel, т.е. готовый отчет на выходе становится 100% работоспособный для дальнейших манипуляций с данными При формировании отчета Word используются закладки Все макеты(шаблоны) должны быть сформированы в MS Office 2007 и выше ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2013, 14:43 |
|
Помогите разобраться Zen Reports и %XML.Writer для генерации отчётов Excel в Cache
|
|||
---|---|---|---|
#18+
Для экселя еще есть мой генератор http://www.sql.ru/forum/814407/generaciya-xml-excel-faylov?hl= Там не последняя версия (вернее даже так, последняя выложенная версия там с ошибкой), но если тема интересна, могу выложить последнюю версию, которая используется нами. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2013, 15:11 |
|
Помогите разобраться Zen Reports и %XML.Writer для генерации отчётов Excel в Cache
|
|||
---|---|---|---|
#18+
Примерно с 2000 года у нас ВСЯ работа с серверами CACHE (MSM) идет ИНТЕРАКТИВНО через EXCEL ВСЕ отчеты, само собой, тоже выдаются в EXCEL Основная фишка - в М-сервере крутится "Виртуальный-многомерный-многопользовательский-EXCEL", написаный на MUMPS Который считает-сортирует гораздо быстрее "обыкновенного", а отображается на обычные клиентские EXCELи в ПРИВЫЧНОМ ВИДЕ скорость выдачи таблиц - до 10 000 строк / сек, условное форматирование - оформление - раскраска : "на лету" по MUMPS-условиям и/или "по шаблонам". Cистема работает с любыми версиями CACHE-MiniM (32-64-bit), MSM-nt (32-bit), и любыми 32-64-MSофисами на клиентах (2000 - 2007 - 2010 - 2013). Стыковка серверов "Unicode -- 8bit" Программирование - MUMPS-команды в ячейках листов-шаблонов. Короткие текстовые директивы для построения элементов интерфейса, тоже в ячейках, задаются вручную или создаются автоматически-программно, отрисовываются клиенту в виде кнопок - бантиков по мере необходимости. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2013, 16:08 |
|
Помогите разобраться Zen Reports и %XML.Writer для генерации отчётов Excel в Cache
|
|||
---|---|---|---|
#18+
servit, спасибо, помогло! ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2013, 09:16 |
|
Помогите разобраться Zen Reports и %XML.Writer для генерации отчётов Excel в Cache
|
|||
---|---|---|---|
#18+
Ymka2007я делал как раз недавно по этому описанию, на самом деле ручной работы много если что нужно выложу исходники да, выложите пожалуйста ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2013, 09:50 |
|
Помогите разобраться Zen Reports и %XML.Writer для генерации отчётов Excel в Cache
|
|||
---|---|---|---|
#18+
Блок А.Н., спасибо, ваш пример самым первым нашла, опробовала :) тоже один из способов формировать Excel, но минус, что много классов нужно создавать. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2013, 09:53 |
|
Помогите разобраться Zen Reports и %XML.Writer для генерации отчётов Excel в Cache
|
|||
---|---|---|---|
#18+
MX-9, MUMPS пока незнакомая для меня технология, надо бы почитать, спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2013, 09:55 |
|
Помогите разобраться Zen Reports и %XML.Writer для генерации отчётов Excel в Cache
|
|||
---|---|---|---|
#18+
galinaVL, прикрепил файл, в нем сам класс и данные в виде xml не забудьте поменять пути к файлам в методе GenRep если у Вас после выполнения Вашего кода данные не вставились, то скорее всего либо не корректно формируются данные при отработке reportDefinition или Вы не правильно строите (указываете) параметры в цикле <xsl:for-each> начните с простого, для отображения подготовленных данных используйте http://localhost:57774/csp/samples/ZENApp.MyReport.cls ?$MODE=xml ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2013, 12:02 |
|
Помогите разобраться Zen Reports и %XML.Writer для генерации отчётов Excel в Cache
|
|||
---|---|---|---|
#18+
galinaVL, А в чем проблема? Закачиваете пакет и дальше с ним работаете. Работать с ним несложно. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2013, 12:34 |
|
Помогите разобраться Zen Reports и %XML.Writer для генерации отчётов Excel в Cache
|
|||
---|---|---|---|
#18+
MX-9Примерно с 2000 года у нас ВСЯ работа с серверами CACHE (MSM) идет ИНТЕРАКТИВНО через EXCEL ВСЕ отчеты, само собой, тоже выдаются в EXCEL Основная фишка - в М-сервере крутится "Виртуальный-многомерный-многопользовательский-EXCEL", написаный на MUMPS Который считает-сортирует гораздо быстрее "обыкновенного", а отображается на обычные клиентские EXCELи в ПРИВЫЧНОМ ВИДЕ скорость выдачи таблиц - до 10 000 строк / сек, условное форматирование - оформление - раскраска : "на лету" по MUMPS-условиям и/или "по шаблонам". Cистема работает с любыми версиями CACHE-MiniM (32-64-bit), MSM-nt (32-bit), и любыми 32-64-MSофисами на клиентах (2000 - 2007 - 2010 - 2013). Стыковка серверов "Unicode -- 8bit" Программирование - MUMPS-команды в ячейках листов-шаблонов. Короткие текстовые директивы для построения элементов интерфейса, тоже в ячейках, задаются вручную или создаются автоматически-программно, отрисовываются клиенту в виде кнопок - бантиков по мере необходимости. Кстати уже давно есть Web версии Excel (MSOfficeWebApps и прочие), вы их поддерживаете ? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2013, 11:43 |
|
Помогите разобраться Zen Reports и %XML.Writer для генерации отчётов Excel в Cache
|
|||
---|---|---|---|
#18+
<<Кстати уже давно есть Web версии Excel (MSOfficeWebApps и прочие), вы их поддерживаете ? >> DAiMor, хотелось бы но - своего умишки не хватает, с кем бы скооперироваться ... и спонсора - заказчика пока нет на разработку WEB-EXCEL ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2013, 13:21 |
|
Помогите разобраться Zen Reports и %XML.Writer для генерации отчётов Excel в Cache
|
|||
---|---|---|---|
#18+
MX-9<<Кстати уже давно есть Web версии Excel (MSOfficeWebApps и прочие), вы их поддерживаете ? >> DAiMor, хотелось бы но - своего умишки не хватает, с кем бы скооперироваться ... и спонсора - заказчика пока нет на разработку WEB-EXCEL Подавайте заявку - проспонсируем работу. Тема интересная. В форме есть вопросы про институт, т.е. в работе обязательно должны участвовать студенты - у вас есть Лиепайский университет и Рижский технический, контакты дадим. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2013, 13:51 |
|
Помогите разобраться Zen Reports и %XML.Writer для генерации отчётов Excel в Cache
|
|||
---|---|---|---|
#18+
Шваров Евгений, Спасибо за интересное предложение. Сейчас Латвия переходит со своей валюты на общеевропейскую - EURO У нас запарка до марта-апреля - все надо печатать в LVL и EUR одновремено. Плюс к этому - наш основной обьект - металлургический завод - меняет владельца. Равносильно пожару. Но в начале года попытаемся. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2013, 15:14 |
|
|
start [/forum/topic.php?fid=39&fpage=23&tid=1556994]: |
0ms |
get settings: |
12ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
40ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
60ms |
get tp. blocked users: |
2ms |
others: | 257ms |
total: | 405ms |
0 / 0 |