ExcelLib с поддержкой OpenOffice
Модераторы: m0p3e, edward_K, Модераторы
Re: ExcelLib с поддержкой OpenOffice
Мда... Галактика в своем репертуаре... Мега полезную фишку с динамически расширяемой по вертикали матрицей зарубили. (Автоматическое увеличение количества строк у матрицы. Жизненно необходимо когда количество выводимых записей неизвестно).
-
- Местный житель
- Сообщения: 2896
- Зарегистрирован: 24 июн 2005, 12:12
- Откуда: Иркутская область
Re: ExcelLib с поддержкой OpenOffice
Я обычно данные для эксель отчетов складываю в таблицу в памяти и на момент создания матрицы - кол-во можно посчитать как recordsintable.
Re: ExcelLib с поддержкой OpenOffice
Это известный способ, но часто смысла в ТП нет, а ее приходится городить только для подсчета количества записей. Не люблю когда приходится загромождать код из-за искусственных ограничений. В переданных исходниках это было реализовано. Зачем отрезали? Непонятно...
Re: ExcelLib с поддержкой OpenOffice
Некропостинг
Как сейчас обстоит дело с марьяжем "Галактики" и OpenOffice? Нужна особая Excellib.dll? А LibreOffice? Спасибо!
Как сейчас обстоит дело с марьяжем "Галактики" и OpenOffice? Нужна особая Excellib.dll? А LibreOffice? Спасибо!
Re: ExcelLib с поддержкой OpenOffice
Читайте историю этой ветки.
Наработки уважаемого коллеги m0p3e были скомпилированы в базовую поставку библиотеки GalXLSLib.dll Галактики 8.1 и 9.1 в теории это должно работать. Т.е. движок есть - если вы где-то внедряете именно OpenOffice (или его аналог) свои отчеты теоретически вы можете делать в формате OpenOffice с помощью.
Но на практике я не видел ни одноногого реального заказчика на OpenOffice. Все реальные отчеты созданные в Галактике по технологии ExcelLib созданы в форматах Microsoft по шаблонам XLT и XLTM. И VB скриптах от Microsoft.
Если вы будете внедрять именно Open Office. Мне кажется наиболее перспективным направлением в данном случае будет создание отчетов по технологии FastReport. Один и тот же отчет FastReport может быть сохранен в любом из форматов и Microsoft (XLS) и Open Office (ODS). Все это в Галактике есть.
Наработки уважаемого коллеги m0p3e были скомпилированы в базовую поставку библиотеки GalXLSLib.dll Галактики 8.1 и 9.1 в теории это должно работать. Т.е. движок есть - если вы где-то внедряете именно OpenOffice (или его аналог) свои отчеты теоретически вы можете делать в формате OpenOffice с помощью.
Но на практике я не видел ни одноногого реального заказчика на OpenOffice. Все реальные отчеты созданные в Галактике по технологии ExcelLib созданы в форматах Microsoft по шаблонам XLT и XLTM. И VB скриптах от Microsoft.
Если вы будете внедрять именно Open Office. Мне кажется наиболее перспективным направлением в данном случае будет создание отчетов по технологии FastReport. Один и тот же отчет FastReport может быть сохранен в любом из форматов и Microsoft (XLS) и Open Office (ODS). Все это в Галактике есть.
Re: ExcelLib с поддержкой OpenOffice
Читал. Интересно текущее состояние.LaaLaa писал(а):Читайте историю этой ветки.
Забавная опечатка...LaaLaa писал(а):Но на практике я не видел ни одноногого реального заказчика на OpenOffice
Получается, PAT-отчётность неосуществима в OpenOffice?LaaLaa писал(а):Все реальные отчеты созданные в Галактике по технологии ExcelLib созданы в форматах Microsoft по шаблонам XLT и XLTM. И VB скриптах от Microsoft.
SLK, я так понимаю, для OpenOffice до сих пор непонятен...
-
- Заслуженный деятель интернет-сообщества
- Сообщения: 5188
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: SPB galaxy spb
Re: ExcelLib с поддержкой OpenOffice
ну надо пробовать. OpenOffice пашет с xls
Я лет 5 назад видел его. только клиент работал на терминалах, а на компах только смотрел.
Там в cfg нужно какой то параметр врубать.
Я лет 5 назад видел его. только клиент работал на терминалах, а на компах только смотрел.
Там в cfg нужно какой то параметр врубать.
Re: ExcelLib с поддержкой OpenOffice
К стати если кто-то из Вас рассматривает OpenOffice как путь для удешевления отделенных специализированных рабочих мест.
Например рабочее место в каком нибудь цеху складе или торговой точке, где нужно из Галактики только распечатывать какие ни будь наряды и накладные.
Чтобы потом заворачивать в них подшипники болты и прочее. Где не требуется ничего вводить ни в Эксель ни в Водрд.
Можете установить там бесплатные программы от Microsoft:
Средство просмотра Excel
Средство просмотра Word
Средство просмотра PowerPoint
Чтобы не покупать лицензии Офиса на такие рабочие места.
Например рабочее место в каком нибудь цеху складе или торговой точке, где нужно из Галактики только распечатывать какие ни будь наряды и накладные.
Чтобы потом заворачивать в них подшипники болты и прочее. Где не требуется ничего вводить ни в Эксель ни в Водрд.
Можете установить там бесплатные программы от Microsoft:
Средство просмотра Excel
Средство просмотра Word
Средство просмотра PowerPoint
Чтобы не покупать лицензии Офиса на такие рабочие места.
Re: ExcelLib с поддержкой OpenOffice
Пробовал. Пашет. Только там где нет скриптов на VB.edward_K писал(а):ну надо пробовать. OpenOffice пашет с xls
Re: ExcelLib с поддержкой OpenOffice
По прошествии некоторого времени ничего не допилили для работы галактических отчётов с макросами?LaaLaa писал(а):Пробовал. Пашет. Только там где нет скриптов на VB.edward_K писал(а):ну надо пробовать. OpenOffice пашет с xls
Re: ExcelLib с поддержкой OpenOffice
Разве это возможно. Макросы Open Office совместимы с MS Office?
Re: ExcelLib с поддержкой OpenOffice
Не знаю, однако декларируется, что "От версии к версии поддержка VBA улучшается, но 100% поддержки не будет никогда."LaaLaa писал(а):Макросы Open Office совместимы с MS Office?
Что-то не могу разобраться, как с OO работать. В cfg прописал:
Код: Выделить всё
[Excel]
XLSGlobalLibImplementationMode = 1
Код: Выделить всё
xlOpenNewExcel(true);
message(string(xlIsExcelValid));
xlKillExcel;
Re: ExcelLib с поддержкой OpenOffice
А какую именно сборку ОО и версию вы пытаетесь использовать ("Инфра-Ресурс", Libre, другие)?
По информации из ПИР 102.91942
Полное описание:
В данный момент для управления режимом работы функционала
"Библиотека функций работы с Excel" используется
function xlSetImplementationMode(wMode: word): boolean;
где wMode может иметь следующие значения:
0 - MsOffice
1 - OpenOffice
Но удобнее всего, для пользователей, была бы схема с возможностью
автоматического определения установленного офиса. Для этого
предлагается расширить список режимов:
0 - MsOffice
1 - OpenOffice
2 - авто (сначала проверяем наличие MsOffice)
3 - авто (сначала проверяем наличие OpenOffice).
Это нужно, т.к. в одной организации могут быть как машины с
MSOffice, так и с OpenOffice.
Дополнительно существует проблема по "времени жизни" такого режима.
С одной стороны удобно переключить на всю сессию работы пользователя,
а с другой в одном отчете программист переключает на OO, а другой
отчет без данной функции и разработан под MS. Он будет принудительно
грузиться в OO, до перезагрузки Галактики. Для решения таких вопросов
хорошо бы завести еще функцию xlSetGlobalImplementationMode -
переключение на все сессию и xlSetImplementationMode - переключение на
период формирования отчета ( до xlKillExcel). Либо добавить еще
параметр в xlSetImplementationMode. Получается что администратор
задает вывод по умолчанию, но и программист может его перекрыть. Режим
по умолчанию, удобнее задавать в galnet.cfg, а не так как сделано
сейчас - через переменную окружения GalXLSLibImplementationMode.
Что исправлено:
В galnet.cfg в секцию [Excel] добавлен параметр XLSGlobalLibImplementationMode, который устанавливает режим работы MSOffice или OpenOffice:
0 - берет настройки из переменной окружения GalXLSLibImplementationMode. Ноль возвращается если параметр XLSGlobalLibImplementationMode в galnet.cfg не указан, т.е. работает страый алгоритм установки режима.
1 - MsOffice
2 - OpenOffice
Как исправлено:
В galnet.cfg в секцию [Excel] добавлен параметр XLSGlobalLibImplementationMode, который устанавливает режим работы MSOffice или OpenOffice:
0 - берет настройки из переменной окружения GalXLSLibImplementationMode. Ноль возвращается если параметр XLSGlobalLibImplementationMode в galnet.cfg не указан, т.е. работает страый алгоритм установки режима.
1 - MsOffice
2 - OpenOffice
При установке режива 1 или 2 для параметра XLSGlobalLibImplementationMode в Галактике им соответсвуют 1->0 и 2->1
Для получения информации о установленном режиме можно использовать функцию:
function xlGetImplementationMode : word.
Для изменения режима на время работы Галактики, используйте функцию:
function xlSetImplementationMode(wMode:word) : boolean
Данное изменение действует до первой выгрузки Excel отчета (до выполнения KillExcel), далее загружается режим по умолчанию.
Внимание!!!
На данный момент, включение режима работы с "Open Office Calc",
имеет смысл отлько для отчетов непосредственно использующих
"Библиотеку функций работы с Excel". Отчеты формируемых по
XLT-шаблонам с помошью объекта iXLSRepBuilder, пока работать с "Open
Office Calc" не могут.
Также будет некорректным формирование отчетов использующих какие-либо макросы
Re: ExcelLib с поддержкой OpenOffice
Ага, это я не учёл. Однако, указываю в cfg-файле XLSGlobalLibImplementationMode = 2 - вроде бы, теперь xlIsExcelValid = true, а отчёт не выводится на экран. Что нужно ещё сделать?LaaLaa писал(а):При установке режива 1 или 2 для параметра XLSGlobalLibImplementationMode в Галактике им соответсвуют 1->0 и 2->1
Apache OpenOffice 4.1.1LaaLaa писал(а):А какую именно сборку ОО и версию вы пытаетесь использовать
Re: ExcelLib с поддержкой OpenOffice
Скажите, так а макросы побороли? У себя запускаем - они не применяются.