Viewpoint Docx Toolkit для создания MS Word отчетов

Работа с файлами и базами данных

Viewpoint Docx Toolkit для создания MS Word отчетов

Postby Kosist on 11 Apr 2016, 01:30

Уважаемые форумчане!

По совету уважаемого dadreamer, хотелось бы представить небольшое описание тулкита, Viewpoint Docx Toolkit, для создания MS Word отчетов. Его "фишка" заключается в том, что он не требует установки пакета от MS Office, т.к. не использует ActiveX. А это - плюс в его использовании, чего нельзя сказать о стандартном MS Office Report Generation Toolkit от NI.

Установить тулкит можно прямо из VIPM'а без проблем. Тулкит платный, но вначале дается 30-дневный траял, которого за глаза хватит, чтобы вдоволь поиграться, и понять, покупать его, или нет.

К посту прикладываю код, где я пробывал базовые функции - добавление текста, таблицы, списка, оглавления, и колонтитулов.

По функциях, что бросилось в глаза.

1. Можно напрямую создавать списки.
2. В отличии от Report Generation Toolkit (RGT), не поддерживает вставку текста в закладки. Есть лишь фукнция замены текста. Но, в принципе, это не беда, т.к. замена текста, а не закладки, более удобна при работе с шаблоном.
3. Шаблоны, кстати, тоже поддерживаются, можно использовать подготовленный шаблон для генерации отчета - так же, как и в RGT.
4. Вставка таблицы - как "по-ячеечно", так и напрямую, с лицевой панели - можно подключить на вход функции референс на контрол таблицы.
5. Можно форматировать стиль не только текста, но и таблицы (честно говоря, не помню, если такая возможность в RGT).
6. Присуствует побольше "самостоятельных" функций по форматированию текста (в RGT все собрано в одной виайке).
7. Машины без офиса у меня нет под рукой, а морочиться с виртуалкой - лень, поэтому проверку того, работает ли тулкит без установленного офиса я не делал. Но, функции работают действительно на .NET, так что верим разработчикам на слово.

Но, также есть и недостатки, которые затрудняют - как по мне - использование тулкита.

1. Отсутсвие офлайн справки. Detailed Help ссылка направляет вас на сайт ViewPoint, которые, в свою очередь, отсылают на stackoverflow (на поиск по тегу LabVIEWViewpointDocxToolkit). Однако, я по этому тегу так инфы и не нашел.
2. Нет справки - нет и нормального обработчика ошибки. В случае ошибки, в большинстве случаев я получал сообщение с кодом 9999, и описанием This error code is undefined. Хотя ошибки были очевидные - например, пустой путь для файла-шаблона, и пути для сохраненного файла; открытый файл для сохранения, и т.д.
Или - что непонятно - не получилось вставить колонтитул. Там всего-то пара функций, но из-за непонятной ошибки, вставку колонтитула реализовать не удалось.
3. Для создания exe с использованием RGT нужно в проект и в exe добавлять библиотеку с классом для RGT. Нужно ли это делать с использованием тулкита от ViewPoint, так и не удалось, т.к. для создания приложения нужно зарегистрировать тулкит...

В целом, единственный существенный плюс тулкита - это то, что не нужно устанавливать пакет офиса. По базовому функционалу он не уступает RGT, но из-за отсуствия справки и нормального обработчика ошибок (сомневаюсь, что после регистрации он станет доступным), использование его может оказаться "болезненным".
Но, это мое субъективное мнение, не более.

Если кто-то работал с тулкитом, а я написал здесь что-то не так - прошу прощения, так как пост не претендует на детальный обзор; может я что-то и упустил...

DocX Snippet.png
Attachments
DocX Toolkit.zip
(111.39 KiB) Downloaded 83 times
Мы делили апельсин - много наших полегло...
User avatar
Kosist
leader
leader
 
Posts: 858
Joined: 21 Feb 2011, 23:44
Medals: 2
Activity (1) Gold (1)
LabVIEW Version: 2013-2017
Karma: 245
CLAD I/O VIP students

Re: Viewpoint Docx Toolkit для создания MS Word отчетов

Postby Blackman on 11 Apr 2016, 07:14

Support
Report Bugs and request features via our support portal, http://jira.viewpointusa.com/servicedes ... r/portal/4.
Note, you will need to create a login to access the support portal.
How Do I?
Post all 'How Do I?' questions to http://stackoverflow.com using the tags [LabVIEWViewpointDocxToolkit].
We regularly monitor http://stackoverflow.com for new questions, but to speed up the process provide us
the link to the question in the support portal, http://jira.viewpointusa.com/servicedes ... r/portal/4.
Requirements
Viewpoint Docx Toolkit requires LabVIEW 2014+ and the Microsoft .NET framework 4.0 or newer.
Viewpoint Xlsx Toolkit requires LabVIEW 2014+ and the Microsoft .NET framework 4.0 or newer.
Installation requires JKI Package Manager 2014 or newer.
Blackman
leader
leader
 
Posts: 761
Joined: 17 Jan 2016, 15:02
Medals: 1
Activity (1)
LabVIEW Version: 6.1,8.5,20
Karma: 217
VIP

Re: Viewpoint Docx Toolkit для создания MS Word отчетов

Postby Kosist on 11 Apr 2016, 08:11

Blackman wrote:Support
Report Bugs and request features via our support portal, http://jira.viewpointusa.com/servicedes ... r/portal/4.
Note, you will need to create a login to access the support portal.
How Do I?
Post all 'How Do I?' questions to http://stackoverflow.com using the tags [LabVIEWViewpointDocxToolkit].
We regularly monitor http://stackoverflow.com for new questions, but to speed up the process provide us
the link to the question in the support portal, http://jira.viewpointusa.com/servicedes ... r/portal/4.
Requirements
Viewpoint Docx Toolkit requires LabVIEW 2014+ and the Microsoft .NET framework 4.0 or newer.
Viewpoint Xlsx Toolkit requires LabVIEW 2014+ and the Microsoft .NET framework 4.0 or newer.
Installation requires JKI Package Manager 2014 or newer.

Но я об этом и писал. Вы пробовали искать по их тегу? А на сапорт-портал необходима регистрация. Но отсутствие офлайн справки - это не есть хорошо...
Мы делили апельсин - много наших полегло...
User avatar
Kosist
leader
leader
 
Posts: 858
Joined: 21 Feb 2011, 23:44
Medals: 2
Activity (1) Gold (1)
LabVIEW Version: 2013-2017
Karma: 245
CLAD I/O VIP students

Re: Viewpoint Docx Toolkit для создания MS Word отчетов

Postby Blackman on 11 Apr 2016, 09:24

Kosist, Можете кинуть файл спецификации spec из пакета установки?
Blackman
leader
leader
 
Posts: 761
Joined: 17 Jan 2016, 15:02
Medals: 1
Activity (1)
LabVIEW Version: 6.1,8.5,20
Karma: 217
VIP

Re: Viewpoint Docx Toolkit для создания MS Word отчетов

Postby Kosist on 11 Apr 2016, 13:48

Blackman wrote:Kosist, Можете кинуть файл спецификации spec из пакета установки?

Spec файл? А где его искать? Я посмотрел папку установки, ничего такого не нашел...
Мы делили апельсин - много наших полегло...
User avatar
Kosist
leader
leader
 
Posts: 858
Joined: 21 Feb 2011, 23:44
Medals: 2
Activity (1) Gold (1)
LabVIEW Version: 2013-2017
Karma: 245
CLAD I/O VIP students

Re: Viewpoint Docx Toolkit для создания MS Word отчетов

Postby dadreamer on 11 Apr 2016, 20:02

Я детально в этом тулките не копался, чисто ради интереса поставил. Вот что скажу по нему.
Kosist wrote:7. Машины без офиса у меня нет под рукой, а морочиться с виртуалкой - лень, поэтому проверку того, работает ли тулкит без установленного офиса я не делал. Но, функции работают действительно на .NET, так что верим разработчикам на слово.

Да, работает. Проверил на виртуалке с Win XP + :labview: 2014. Файл нормально создаётся, потом на семёрке в офисе открывается.
Kosist wrote:1. Отсутсвие офлайн справки. Detailed Help ссылка направляет вас на сайт ViewPoint, которые, в свою очередь, отсылают на stackoverflow (на поиск по тегу LabVIEWViewpointDocxToolkit). Однако, я по этому тегу так инфы и не нашел.

И это действительно серьёзный недостаток. Справки нет никакой вообще (контекстную помощь можно не считать за таковую). На оф. сайте тоже ничего полезного не сказано. Видимо, упор сделан на то, что пользователи тулкита обязательно ранее работали с офисом и без проблем представляют, какие там есть встроенные "фичи".
Kosist wrote:2. Нет справки - нет и нормального обработчика ошибки. В случае ошибки, в большинстве случаев я получал сообщение с кодом 9999, и описанием This error code is undefined. Хотя ошибки были очевидные - например, пустой путь для файла-шаблона, и пути для сохраненного файла; открытый файл для сохранения, и т.д.

Сымитировал ситуацию - получил исключение в кластере error out:
2016-04-11_21-09-09.jpg

Очевидно, разработчики не сильно "парились" и присвоили всем ошибкам один и тот же код - 9999. Так что разбирать ошибки получится только с помощью парсинга текстового сообщения. :D
Kosist wrote:Или - что непонятно - не получилось вставить колонтитул. Там всего-то пара функций, но из-за непонятной ошибки, вставку колонтитула реализовать не удалось.

Это больше похоже на баг. Если попробовать вставить колонтитул в новый документ, то всё отрабатывает без ошибок. В вашем же случае выдаёт
Code: Select all
Memory stream is not expandable.

при вызове Header Footer Add.vi
и далее, при закрытии (и сохранении) документа
Code: Select all
System.Xml.XmlException: The '=' character, hexadecimal value 0x3D, cannot be included in a name. Line 340, position 7.

Не совсем понятно, что имелось в виду, т.к. ни в пути, ни в имени файла нет никаких "=", и вообще все файлы я поместил в корень C:\. В общем, можно сообщить о баге разработчику, если есть время и желание.
Kosist wrote:3. Для создания exe с использованием RGT нужно в проект и в exe добавлять библиотеку с классом для RGT. Нужно ли это делать с использованием тулкита от ViewPoint, так и не удалось, т.к. для создания приложения нужно зарегистрировать тулкит...

Ага, без регистрации билдиться не хочет:
2016-04-11_21-40-20.jpg

Вроде и понятно, зачем так сделано, а в то же время хотелось бы (как потенциальному покупателю) оценить работу тулкита в EXE, вдруг там баги или не заявленное поведение... Но этот кусок функционала от юзера скрыли. Что там по факту будет - :dntknw:
Не знаю, как насчёт проекта, а :vi: должна компилироваться даже с дефолтными настройками. NET сборка как и обычная библиотека просто должна быть помещена рядом с экзешником (в data или ещё куда), чтобы программа работала.
Kosist wrote:В целом, единственный существенный плюс тулкита - это то, что не нужно устанавливать пакет офиса. По базовому функционалу он не уступает RGT, но из-за отсуствия справки и нормального обработчика ошибок (сомневаюсь, что после регистрации он станет доступным), использование его может оказаться "болезненным".

Согласен. Добавлю ещё такой минус:
Requirements
Viewpoint Docx Toolkit requires LabVIEW 2014+ and the Microsoft .NET framework 4.0 or newer.

Уж не знаю, чего там можно было такого написать, что ранние :labview: не могли это поддерживать (ибо .NET уже в LV 7.0 появился). Да и сами инструменты, судя по описанию, должны разбирать-собирать файлы на бинарном уровне.

Кроме того, оказалось, что работать с Word-файлами без самого офиса жутко непривычно! Всё время хотелось поглядеть, что там "нахимичили" эти :vi: , приходилось перекидывать с гостевой ОС на хост. Да и на практике часто после создания отчёта хочется его просмотреть, кое что подкорректировать вручную и т.п. Так что даже самый главный плюс этого тулкита - работа с Word без установки MS Office - кажется не таким уж существенным, чтобы переходить с RGT на этот продукт.
User avatar
dadreamer
professor
professor
 
Posts: 3102
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2018
Karma: 782
I/O VIP vision internet

Re: Viewpoint Docx Toolkit для создания MS Word отчетов

Postby Blackman on 12 Apr 2016, 09:00

Spec файл? А где его искать? Я посмотрел папку установки, ничего такого не нашел...
Attachments
VIPM package spec file.PNG
Если открывать как zip папку надо добавить расширение .zip
Blackman
leader
leader
 
Posts: 761
Joined: 17 Jan 2016, 15:02
Medals: 1
Activity (1)
LabVIEW Version: 6.1,8.5,20
Karma: 217
VIP

Re: Viewpoint Docx Toolkit для создания MS Word отчетов

Postby Kosist on 12 Apr 2016, 10:04

О, теперь нашел, спасибо - высылаю. А что в нем Вас интересует, если не секрет?
Attachments
viewpoint_systems_docx_toolkit-1.2.0.3.zip
(3.79 KiB) Downloaded 67 times
Мы делили апельсин - много наших полегло...
User avatar
Kosist
leader
leader
 
Posts: 858
Joined: 21 Feb 2011, 23:44
Medals: 2
Activity (1) Gold (1)
LabVIEW Version: 2013-2017
Karma: 245
CLAD I/O VIP students

Re: Viewpoint Docx Toolkit для создания MS Word отчетов

Postby Blackman on 12 Apr 2016, 13:50

Текстовый файл для установки пакета. Куда и что копируется.
Есть три VI для отладки
File 21="vi.lib/Viewpoint Systems/Viewpoint Docx Toolkit/Software/Utilities/Debug/Create Debug Log File.vi"
File 22="vi.lib/Viewpoint Systems/Viewpoint Docx Toolkit/Software/Utilities/Debug/New Document with Debug.vi"
File 23="vi.lib/Viewpoint Systems/Viewpoint Docx Toolkit/Software/Utilities/Debug/Open Document From Template with Debug.vi"
Blackman
leader
leader
 
Posts: 761
Joined: 17 Jan 2016, 15:02
Medals: 1
Activity (1)
LabVIEW Version: 6.1,8.5,20
Karma: 217
VIP

Re: Viewpoint Docx Toolkit для создания MS Word отчетов

Postby Kosist on 12 Apr 2016, 14:10

Оно-то, конечно, хорошо; но зачем тогда нужен тулкит, который еще нужно дебажить через лог-файл? Две функции из этих присутсвуют в вкладке Utilities, в палитре функций; но как-то это странно... Для отладки приложения в целом вряд-ли нужен лог самого тулкита, так что польза (или удобство) использования данных функций для меня немного сомнительна...
Мы делили апельсин - много наших полегло...
User avatar
Kosist
leader
leader
 
Posts: 858
Joined: 21 Feb 2011, 23:44
Medals: 2
Activity (1) Gold (1)
LabVIEW Version: 2013-2017
Karma: 245
CLAD I/O VIP students

Re: Viewpoint Docx Toolkit для создания MS Word отчетов

Postby dadreamer on 12 Apr 2016, 18:15

Blackman wrote:Есть три VI для отладки
File 21="vi.lib/Viewpoint Systems/Viewpoint Docx Toolkit/Software/Utilities/Debug/Create Debug Log File.vi"
File 22="vi.lib/Viewpoint Systems/Viewpoint Docx Toolkit/Software/Utilities/Debug/New Document with Debug.vi"
File 23="vi.lib/Viewpoint Systems/Viewpoint Docx Toolkit/Software/Utilities/Debug/Open Document From Template with Debug.vi"

Так уже получше. Но всё равно непонятно, что стало причиной исключения при вставке колонтитула.

Ошибка 1:
Code: Select all
Message: FootersMemory stream is not expandable.   at System.IO.MemoryStream.set_Capacity(Int32 value)
   at System.IO.MemoryStream.EnsureCapacity(Int32 value)
   at System.IO.MemoryStream.Write(Byte[] buffer, Int32 offset, Int32 count)
   at System.Xml.XmlUtf8RawTextWriter.FlushBuffer()
   at System.Xml.XmlUtf8RawTextWriter.RawText(Char* pSrcBegin, Char* pSrcEnd)
   at System.Xml.XmlUtf8RawTextWriter.RawText(String s)
   at System.Xml.XmlUtf8RawTextWriter.WriteStartElement(String prefix, String localName, String ns)
   at System.Xml.XmlUtf8RawTextWriterIndent.WriteStartElement(String prefix, String localName, String ns)
   at System.Xml.XmlWellFormedWriter.WriteStartElement(String prefix, String localName, String ns)
   at System.Xml.Linq.ElementWriter.WriteStartElement(XElement e)
   at System.Xml.Linq.ElementWriter.WriteElement(XElement e)
   at System.Xml.Linq.XElement.WriteTo(XmlWriter writer)
   at System.Xml.Linq.XContainer.WriteContentTo(XmlWriter writer)
   at System.Xml.Linq.XDocument.WriteTo(XmlWriter writer)
   at System.Xml.Linq.XDocument.Save(Stream stream, SaveOptions options)
   at Novacode.DocX.#aL(Boolean #V)
   at ViewpointDocxToolkit.Document.FootersAdd(Boolean differentFirstPage, Boolean differentOddEvenPages)

Ошибка 2:
Code: Select all
Message: CloseThe '=' character, hexadecimal value 0x3D, cannot be included in a name. Line 340, position 7.   at System.Xml.XmlTextReaderImpl.Throw(Exception e)
   at System.Xml.XmlTextReaderImpl.Throw(String res, String[] args)
   at System.Xml.XmlTextReaderImpl.ParseElement()
   at System.Xml.XmlTextReaderImpl.ParseElementContent()
   at System.Xml.XmlTextReaderImpl.Read()
   at System.Xml.Linq.XContainer.ReadContentFrom(XmlReader r)
   at System.Xml.Linq.XContainer.ReadContentFrom(XmlReader r, LoadOptions o)
   at System.Xml.Linq.XDocument.Load(XmlReader reader, LoadOptions options)
   at System.Xml.Linq.XDocument.Load(Stream stream, LoadOptions options)
   at Novacode.DocX.Save()
   at ViewpointDocxToolkit.Document.Close()

В лог заносится только цепочка вызовов функций без указания параметров и возвращаемого значения. Так что остаётся гадать, почему вдруг Memory Stream не хочет расширяться и почему возникает сбой при парсинге xml-контента.

А ещё, они с этим логом серьёзно "спалились". :crazy: Хорошо видно, что все :vi: представляют из себя обёртки над .NET библиотекой Novacode DocX:
https://docx.codeplex.com/
https://github.com/WordDocX/DocX
К слову говоря, библиотека бесплатная, содержит весь заявленный функционал, в т.ч. документацию и не требует установки офиса.
What is DocX?

DocX is a .NET library that allows developers to manipulate Word 2007/2010/2013 files, in an easy and intuitive manor. DocX is fast, lightweight and best of all it does not require Microsoft Word or Office to be installed.

Так что выводы сами делайте.
User avatar
dadreamer
professor
professor
 
Posts: 3102
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2018
Karma: 782
I/O VIP vision internet

Re: Viewpoint Docx Toolkit для создания MS Word отчетов

Postby Kosist on 13 Apr 2016, 00:54

dadreamer wrote:А ещё, они с этим логом серьёзно "спалились". :crazy: Хорошо видно, что все :vi: представляют из себя обёртки над .NET библиотекой Novacode DocX

Ну Вы даете... Докопались до самой сердцевины, круто! :super: Нужно будет для интереса посмотреть на сие творение, интереса ради...
Мы делили апельсин - много наших полегло...
User avatar
Kosist
leader
leader
 
Posts: 858
Joined: 21 Feb 2011, 23:44
Medals: 2
Activity (1) Gold (1)
LabVIEW Version: 2013-2017
Karma: 245
CLAD I/O VIP students

Re: Viewpoint Docx Toolkit для создания MS Word отчетов

Postby dadreamer on 15 Apr 2016, 12:22

Kosist, тем временем я релизовал ваш пример на библиотеке Novacode DocX. Получилась вот такая портянка:

Snippet.png
Как можно видеть, преимущество платного тулкита в том, что он упрощает многие рутинные действия, такие например как перебор всех ячеек в таблице при записи в неё текста и т.д. Также тулкит содержит уже готовые списки, тайпдефы, константы, что тоже несколько упрощает жизнь. Ну, и плюсом идут красивые иконки для :vi:, описания входов-выходов, более-менее "говорящие" имена самих :vi: . То, что справки нормальной нет, это конечно минус. Но, как я понял, для Novacode справка тоже не ахти: доступна только альфа-версия, и в ней нет описаний работы методов и свойств.

С другой стороны, библиотека Novacode менее глючная. Те же колонтитулы нормально добавляются в документ. Хотя ошибки не документированы, по их текстовому описанию можно понять, что явилось причиной ошибки. Единственное, пришлось со стилями повозиться - совсем неочевидным оказалось, что стиль уже должен быть в документе, когда мы применяем его к какому-либо тексту (а иначе текст получается самый обычный).

Также нет ограничения на версию :labview: не ниже 2014. Проверял в LV 2013, всё работает нормально. Думаю, и на более старых тоже будет работать.
Attachments
Novacode_DocX.rar
lv2014
(1.13 MiB) Downloaded 68 times
User avatar
dadreamer
professor
professor
 
Posts: 3102
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2018
Karma: 782
I/O VIP vision internet


Return to Сохранение данных

Who is online

Users browsing this forum: No registered users and 1 guest

cron