Обрезание строк в Lazreport

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Обрезание строк в Lazreport

Сообщение Sleepwalker » 29.06.2009 09:29:47

Доброго времени суток.

Проблема такова: в Лазрепорте отрезается последняя строка в поле, когда оно "растягивается" автоматически. Поле находится на бэнде Master Data, который тоже "растягивается" автоматом.
Подскажите, пожалуйста, это баг или я где-то неправ?
-----------------------
M$WinXPsp2
Lazarus 0.9.24
FPC 2.2.0
LazReport 0.9.5 (взят из папки components)
Sleepwalker
незнакомец
 
Сообщения: 6
Зарегистрирован: 29.06.2009 08:44:59
Откуда: г.Владимир

Re: Обрезание строк в Lazreport

Сообщение Sleepwalker » 23.07.2009 11:57:52

Вопрос все еще более чем актуален.

Пробовал перетащить проект на Lazarus 0.9.26.2
Там LazReport отрисовывает все нормально, но возникли глюки с RxMemoryData и с компонентами ZEOS 6.6.5 (видимо, они под UTF8 не адаптированы).

Отсюда вопрос:
куда смотреть, чтобы в LazReport глюк поправить?
Либо:
где можно взять самый свежий Rx?

Буду очень признателен за любую помощь.
-----------------------
M$WinXPsp2
Lazarus 0.9.24
FPC 2.2.0
Sleepwalker
незнакомец
 
Сообщения: 6
Зарегистрирован: 29.06.2009 08:44:59
Откуда: г.Владимир

Re: Обрезание строк в Lazreport

Сообщение Vadim » 23.07.2009 14:03:21

Sleepwalker
Для ZEOSа адаптация к UTF8 ни к чему, он с этой кодировкой и так работал, если только Вы не изобрели нечто новое, например называть таблицы в БД русскими матерными словами. :)
Rx надо взять на сайте sourceforge в разделе lazarus-ccr. Ссылку я выкладывал уже наверное с десяток раз - никто поиском воспользоваться не хочет, хоть ты тресни...
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Обрезание строк в Lazreport

Сообщение Sleepwalker » 23.07.2009 17:52:34

Vadim, спасибо, что отозвались.
Rx взял отсюдаhttp://lazarus-ccr.svn.sourceforge.net/viewvc/lazarus-ccr/components/rx.tar.gz?view=tar. Только что скачал еще раз, проблемы остались. Если это самая свежая версия, то жаль...
Просто в модуле db.pas (который и в ZEOS используется) не реализованы некоторые методы (например, AppendRecord), а в RxMemoryData они есть. Но в 26-х Лазарусах из RxMemoryData получаю бурду какую-то вместо числовых данных, а строки и вовсе пустые возвращаются. :(
В пакете ZEOS тоже глюки были, причем именно с Lazarus 0.9.26.х
Поковырявшись в модуле ZDbcOracleUtils.pas, на угад (почти :) ) нашел выделение памяти под строки, увеличил в 2 раза. Без этого получал ошибку драйвера БД (Oracle10gXE) о том, что выбранная строка усечена. Это касается строк, которые длиннее половины максимально допустимой длины строки в таблице БД (тип varchar2), где длина задана в символах. Причем, теперь эти строки показываются, но чуть больше, чем на половину (например, поле в БД 150 символов, строка 140, а на экране около 80-ти).
Вот такие траблы. Тот же проект в 24-м лазарусе работает "на ура", проблема только в отчетах. Потому вопрос изначально и поставил про LazReport из Lazarus 0.9.24
Sleepwalker
незнакомец
 
Сообщения: 6
Зарегистрирован: 29.06.2009 08:44:59
Откуда: г.Владимир

Re: Обрезание строк в Lazreport

Сообщение v-t-l » 23.07.2009 18:31:24

ДБ-приложения, собранные в нынешних версиях лазаруса не могут работать нормально, потому что лазарус LCL стал юникодным (UTF8), а базовые классы, описанные в FCL остались "однобайтовыми". По крайней мере, мне не удалось организовать нормальный ввод-вывод в БД ни с SQLdb, ни с ZEOS. Строки обрезаются либо при чтении, либо при отображении, либо при сохранении в БД. Может проблема в классе TDataLink?
Если кто победил эту проблему, может поделитесь?
v-t-l
энтузиаст
 
Сообщения: 735
Зарегистрирован: 13.05.2007 16:27:22
Откуда: Belarus

Re: Обрезание строк в Lazreport

Сообщение Vadim » 23.07.2009 19:05:27

Sleepwalker
Да, это и есть самая свежая Rx. Если там в таблице посмотреть на даты, то видно, что Alexs 2 дня назад что-то правил. :)
В общем у меня работа с данными построена по такому принципу:
- все строковые данные хранятся либо в win1251, либо в koi8-r (наследие прошлого :) )
- FireBird и MySQL без проблем перекодируют их там у себя в UTF-8 и эти данные у меня уже получает ZEOS.
Проблем никаких не было ни с пакетной обработкой данных, ни при отображении их в DbGrid'ах и прочих визуальных компонентах.
Единственная база, которая у меня хранит строки в UTF-8 - это SQLite, она локальная. Данные тоже беру через ZEOS, и тоже никаких обрезаний никогда не наблюдал. Правда все отчёты я стряпаю через генератор HTML, с LazReport'oм никогда не работал. А браузеры все отчёты отображают в безупречном виде, именно в таком, каком я их и проектировал.

Добавлено спустя 5 минут 57 секунд:
У меня Lazarus 0.9.27. С 0.9.26 я практически не работал, она мне чем-то не понравилась и я её сразу снёс. :)
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Обрезание строк в Lazreport

Сообщение Sleepwalker » 24.07.2009 14:39:06

Спасибо всем, кто ответил.
Видимо, Alexs до RxMemoryData еще не добрался. Потому глючит в 26-й версии.
А мне, к сожалению, квалификация пока не позволяет внести свой вклад в исправление и доработку Лазаруса :(
Буду дальше "тыкаться"... Сомневаюсь, что 27-м Лазаре DB.pas готов...
Вобщем, еще раз спасибо.

Если кто-нибудь что-то еще сможет посоветовать, буду очень благодарен. :)
Sleepwalker
незнакомец
 
Сообщения: 6
Зарегистрирован: 29.06.2009 08:44:59
Откуда: г.Владимир

Re: Обрезание строк в Lazreport

Сообщение Vadim » 24.07.2009 15:33:57

Sleepwalker
db.pas - это часть fpc, а не Lazarus'а...
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Обрезание строк в Lazreport

Сообщение alexs » 24.07.2009 17:43:07

Sleepwalker
Внятный пример давай - чтобы я мог повторить. Желательно с использованием DBF, либо FB. MySQL и постгрес не юзаю - такой пример не устроит.
Я ничего не правлю, потому что там всё для меня работает.
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: Обрезание строк в Lazreport

Сообщение Sleepwalker » 04.08.2009 09:28:01

alexs
спасибо, проблему решил установкой Лазарус 0.9.27 + ФПЦ 2.2.4 - там RxMemoryData замечательно работает.
Могу привести инструкцию, как в Лазарус 0.9.26.2 получить вышеозначенную проблему. Если, конечно, нужно. :)

Еще раз всем огромное спасибо!
Sleepwalker
незнакомец
 
Сообщения: 6
Зарегистрирован: 29.06.2009 08:44:59
Откуда: г.Владимир

Re: Обрезание строк в Lazreport

Сообщение grigoreo » 04.08.2009 10:43:18

Sleepwalker писал(а):alexs
спасибо, проблему решил установкой Лазарус 0.9.27 + ФПЦ 2.2.4 - там RxMemoryData замечательно работает.
Могу привести инструкцию, как в Лазарус 0.9.26.2 получить вышеозначенную проблему. Если, конечно, нужно. :)

Еще раз всем огромное спасибо!


проект активно развивается поэтому ставь все самое свежее а то ты расказываешь всем про старые грабли, у меня зеос прекрасно работает и с RX я проблем не знаю ну таких чтобы жить с ними невозможно было)),а еще лудше освой работу с SVN, тогда будешь говорить всегда об актуальных багах...
Аватара пользователя
grigoreo
постоялец
 
Сообщения: 195
Зарегистрирован: 10.03.2009 15:43:43
Откуда: С нашей Раши


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 45

Рейтинг@Mail.ru
cron