Собственно сегодня прошел ровно месяц с того дня как я установил на свой компьютер Ubuntu и Lazarus. В принципе, могу сказать, что в целом я вполне доволен как новой ОС, так и Lazarus’ом. По крайней мере не было “ломок” по поводу отсутствия какого-либо софта, “незаменимых” функций Windows, игрушек и т.д. Всего хватает и, можно даже сказать, жалею теперь, что не перешел под Ubuntu раньше.
Но всё-таки, иногда приходится “работать напильником”. В начале, немного фактов о Lazarus, которые меня приятно удивили.
Во-первых, что касается удобства работы с VCL. К примеру, StringGrid. Не знаю, в чем были проблемы у Borland, CodeGear, а теперь и у Embarcadero, но по-моему до сих пор стандартный StringGrid в Delphi заполняется только в рантайме. Жутко неудобно.
В Lazarus работа с таблицами организована, можно сказать, на высоте. Хочешь – заполняй в дизайнтайме, хочешь – задавай свойства каждого столбца в отдельности. Надо сделать, чтоб в ячейке был CheckBox – не проблема. ' '
И подобные мелкие удобства при работе с компонентами очень сильно помогают избежать лишней писанины, использования сторонних компонент и т.д.
Во-вторых, работа с базами данных. В состав Lazarus уже включены все необходимые компоненты для работы с MySQL. Не надо рыскать по Интернету в поисках необходимых компонент, что-то настраивать, налаживать, отлаживать – все готово к использованию. Опять же экономит время, силы и нервы.
Есть ещё кучи мелочей, которые представляют Lazarus с наилучшей стороны.
Но есть и моменты, когда ностальгия по Delphi просто дикая. В частности на текущий момент есть три вопроса, которые очень сильно напрягают.
1. В плане работы с Интернет. Не скажу, что в Lazarus отсутствуют компоненты для работы с Интернет. Они, конечно же есть и, как и полагается, абсолютно бесплатны, но на текущий момент пока не нашел компонентов или библиотек для работы с Сетью, удовлетворяющих двум простым условиям:
- Простота в установке и использовании.
- Функциональность на уровне WinInet.
Нашел даже Indy под Лазарус, но почитав отзывы пользователей, решил повременить с установкой.
Ну, а для разбора содержимого web-страниц препятствий вроде бы нет – DOM поддерживается полностью.
Кстати про сайты. Если Вас интересует разработка сайтов, обращайтесь к профессоналам.
2. Работа с регулярными выражениями. Собственно пока здесь глубоко не влезал в исходники, но, судя по тому, что нашел Lazarus поддерживает работу с регулярными выражениями. А вот КАК и на каком уровне поддерживается работа – пока загадка. Думаю, что найду время разобраться по-подробнее. Хотя сейчас есть проблема №3….
3. Работа с офисными приложениями. Что касается Lazarus для Win32, то тут проблем нет. В Windows для Лазаруса можно подцепить тот же модуль для работы с OLE и спокойно работать хоть с PowerPoint’ом….Но мне-то нужна работа и под Linux.
Первое, что огорчило – это отсутствие какой-либо внятной документации по работе с OpenOffice из приложений на Pascal/Delphi/Lazarus. Есть один пример и тот под Win32 м тот оказался глючным. Обидно, блин.
Попробовал порыться в области UNO bridge для Lazarus – в русскоязычном сообществе Lazarus ребята решили самостоятельно разработать мост для управления OpenOffice из своих приложений, но опять же основной упор делается на Win32, под Linux нужен гигантских размеров напильник….
Вот теперь и думаю: не сегодня так завтра надо уже вплотную приступать к разработке модуля по составлению отчётной документации, времени работать напильником совершенно не остается. Как быть? Что использовать, чтобы и под Win32 и под Linux модуль работал как часы и составлял отчётность? Как вариант, конечно можно писать файл OpenOffice самому…но, что-то мне подсказывает должен быть какой-то вариант ещё. Более простой вариант.
Поэтому, уважаемые читатели блога Webdelphi.ru, если у Вас есть идеи, варианты, примеры по работе с OpenOffice в Lazarus (под Linux) очень прошу – поделитесь полезной информацией. Не хотелось бы вручную собирать файл *.odf
Related posts:










10 Dec 2009 в 11:00 am
html?
10 Dec 2009 в 1:43 pm
Есть Synapse, который как уверяет Лукас работает с Lazarus.
Что с TRegExpr? Или она только под винду?
Согласен с Сергеем. Что у Лазаруса с PDF?
10 Dec 2009 в 4:58 pm
Синапс скачал, надо будет проверить его. Судя по отзывам вещь стоящая, вроде бы даже круче Indy. С TRegExpr…есть этот тип в Лазаре, но вот сам механизм работы с регулярными выражениями построен по другому. Благо в модуле есть внятный комментарий со ссылкой на литературу :) Буду изучать книжки.
По поводу PDF и HTML. Дело в том, что чисто технически обеспечить составление отчётов в этих форматах можно и даже довольно просто, НО необходимо дать возможность тому кто работает с программой в составленный отчёт вносить коррективы (если это необходимо), например, давать пояснение почему использовался какой-нибудь коэффициент, добавлять описание какого-либо оборудования и т.д. потому что как бы я не старался сделать программу универсальной, учитывающей все тонкости методик, регламентов – такого к сожалению не сделать никогда. К сожалению в экологии нормативная база имеет свойство меняться по 3 раза на дню :) Вот и получается, что рыть надо в сторону документов офиса я же не заставлю 50-ти летнего инженера в срочном порядке изучать HTML :) Мне ещё предстоит его приучать к программе
11 Dec 2009 в 11:17 am
Для отчётов с чистыми таблицами – csv
Для форматированных документов – rtf
А вообще очень помогает в этом деле FastReport, он правда платный и я не знаю на сколько дружит и Lasarus, но мы сейчас реализовали на нем систему, когда нет нужды разрабатывать отчет в Delphi, а любой пользователь может создать свой в уже запущенном приложении, при условии знания sql. Если Пользователя чем-то не устраивает отчет, то может спокойно выгрузить в rtf и открыть в Word или OpenOffice
11 Dec 2009 в 11:33 am
У Lazarusа есть LazReport – аналог Fast Report, а вот знания sql у пользователей точно нет. Некоторые даже Excel толком не знают – отсюда- то вся проблема и идёт. А отчёт должен содержать: описательную часть (что считается, по какой методике, кем и т.д.), далее расчётные формулы (здесь кстати OpenOffice очень удобен – формулы в XML хранятся) и далее туча таблиц, включая сводные. И всё это в одном файле. Видимо придётся досконально изучать формат OpenOffice.
12 Dec 2009 в 1:35 am
А стандарт Ecma Office Open XML (ECMA-376) для генерации *.docx и *.xlsx можно применить? OpenOffice с ними работает с 3-й версии, и для MS Office они как родные.
Описание форматов на сайте Майкрософт еще не закончено и датировано 5.11.2009:
Формат Word – (81 страница в PDF)
Excel – (186 страниц)
На русском читаю книгу Воутер Ван Вугта “Open XML кратко и доступно” в которой очень много примеров.
12 Dec 2009 в 7:48 am
Что касается XML, то не важно чей он – от OpenOffice или от M$ – Lazarus вполне сносно работает с XML. Другое дело, что не хотелось бы ручками весь документ составлять, прописывать каждый тэг и т.д., а использовать OLE в Linux по определению невозможно. Судя по тому, что сейчас есть в наличии по работе с OpenOffice – придётся делать всё вручную. По поводу удобства работы с форматами, могу сказать, что формат OpenOffice выглядит более читабельным и понятным, чем Word 2003, а docx надо глянуть. Спасибо за ссылки
15 Dec 2009 в 2:47 pm
– прекрасно работает с Lazarus
15 Dec 2009 в 4:43 pm
Хм..может и работает, только сайт почему-то не грузится. Адрес точно такой?
15 Dec 2009 в 6:09 pm
Сайт судя по всему в дауне
17 Dec 2009 в 6:51 pm
>>В Lazarus работа с таблицами организована, можно сказать, на высоте. Хочешь – заполняй в дизайнтайме, хочешь – задавай свойства каждого столбца в отдельности. Надо сделать, чтоб в ячейке был CheckBox – не проблема.
Хм… Я от стандартных StringGrid/DrawGrid отказался, как только узнал о VirtualTreeView. Последний в самой Delphi используется ;).
20 Dec 2009 в 10:56 am
+1 для Synapse.
После того как я только один раз просмотрел список юнитов и функций в файле справке, я перестал использовать Indy вообще. (впрочем, я и до этого с ним работал нечасто :D).
StringGrid в Delphi – тьфу-тьфу-тьфу – намучался с ним когда только учил Delphi. С тех пор как стал писать DB-приложения, использую только DbGrid-ы. Даже если необходимо работать с локальными данными беру ClientDataset + DbGrid.
20 Dec 2009 в 11:02 am
Посмотрел LazReport (nice prefix, btw:D ) и первое что бросилось в глаза – лицензия LGPL. И тут я вспомнил в чём засада компонентов для Lazarus-а. Они в большинстве своём либо GPL либо LGPL. :(
20 Dec 2009 в 11:23 am
По лицензиям да, есть такая заморочка. Но с другой стороны я особо ни от кого исходники никогда не прятал. Надо будет умыкнуть чего – так Delphi всегда под рукой :)
А в Lazarus’e кстати по функциональности DBGrid и StringGrid одинаковы, поэтому никаких ClientDataset не требуется.