кодировка в отчетах

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

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

кодировка в отчетах

Сообщение NewUser » 14.05.2007 13:49:41

при формировании отчета в lazreport вместо русских букв показывается всякая чушь. на латинице все нормально, с криллицей проблемы.

у IBConnection указана кодировка win1251, такая же была при создании БД

кто может, подскажите как решить задачу
NewUser
новенький
 
Сообщения: 97
Зарегистрирован: 08.05.2007 13:28:40

Сообщение alexs » 15.05.2007 01:13:44

У шрифтов CharSet - правильно установил?
в контекстном меню объекта с текстом выбери "Шрифт" - и там проверь
по умолчанию ставится латиница
эта фича ещё с FastReport 2.3 была известна - в 2.4 Цыганенко её обошёл - а вот в FreeReport это не попало
а вобще лечится просто
где нибудь у себя в коде при запуске приложения пропиши следующее
frCharset:=204;
эта переменная объявлена в lr_class.pas и обозначает по умолчанию используемы набор символов
а 204 - это в винде именно русский charset.
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Сообщение NewUser » 15.05.2007 09:58:56

спасибо, с кодировкой проблема решена. но не получается вывести просмотр отчета из программы (до этого работал из дизайнера). код кнопки показа отчета
Код: Выделить всё
procedure TForm1.Button1Click(Sender: TObject);
begin

  frReport1.ShowReport;

end;
NewUser
новенький
 
Сообщения: 97
Зарегистрирован: 08.05.2007 13:28:40

Сообщение alexs » 15.05.2007 12:07:11

обычно надо сначала сделать
frReport1.LoadFromFile(Имя твоего файла-шаблона)
или укажи в параметрах frReport1 чтобы он отчёт сохранял в dfm
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Сообщение NewUser » 15.05.2007 13:48:49

спасибо, все заработало. только вот такой недостаток - нажимаю на кнопку в программе "отчет" - вываливается окошко, что идет процесс построения отчета и пока не двишешь мышью оно горит, только тронул мышь - исчезает. интересно с чем это связано?
NewUser
новенький
 
Сообщения: 97
Зарегистрирован: 08.05.2007 13:28:40

Сообщение alexs » 16.05.2007 00:37:35

я обычно это отключаю - у frReport1 - ShowProgres = false
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: кодировка в отчетах

Сообщение ViTality » 19.05.2008 11:48:57

блин. уже год прошел а эти косяки не пофиксены :(
Причем с "кривозябликами" вообще странность какаято...
Начал добавлять возможность печати в проект дома (WinXP SP2 rus) все нормално отображалось. создал отчет, сохранил.
сегодня принес проект на работу (тоже WinXP, тоже SP2, тоже русский), решил продолжить - "кривозяблики"...
причем в предпросмотре и дизаене лазрепорта, но когда отрываешь текстовое поле на редактирование то в окне редактирования все норм отображается.
ViTality
постоялец
 
Сообщения: 308
Зарегистрирован: 05.10.2007 15:12:02

Re: кодировка в отчетах

Сообщение alexs » 19.05.2008 14:00:12

Ты шрифт по умолчанию установил русский?
переменную
frCharset:=204;
инициализируеш?
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: кодировка в отчетах

Сообщение ViTality » 19.05.2008 14:13:08

да я воспользовался твоими рекомендациями и установил шрифт по у молчанию русский(набор символов: Кириличекий). стало все нормально.

Но писал я о том что дома все и без этих манипуляций нормально работает и отображается, а на работе косяк. при том что ситемы практически одинаковые.
ViTality
постоялец
 
Сообщения: 308
Зарегистрирован: 05.10.2007 15:12:02

Re: кодировка в отчетах

Сообщение alexs » 19.05.2008 19:17:32

Это особенности винды - что если не используются виндовые юникоды - то надо указывать явно кодовую страницу для шрифтов. Цыганенко с этим ещё в FastReport-e бился.
А системы наверное всёж различаются :-) настройками.
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: кодировка в отчетах

Сообщение Attid » 19.05.2008 21:48:38

alexs
а у тя сейчас же лазарь в юникоде ? как в нем фрирепорт живет ?
Аватара пользователя
Attid
долгожитель
 
Сообщения: 2585
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E

Re: кодировка в отчетах

Сообщение alexs » 19.05.2008 22:14:31

погано живёт
засада в чтении xml - после чтения объекты xml (текстовые строки) находятся в win1251 кодировке. Поэтому пока извращаюсь.
Привязку frCharset:=204; всё равно надо делать.
P.S.
Под gtk2 начал пробоавть делать нативную печать через gtk2 функции - но времени нет.
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: кодировка в отчетах

Сообщение ViTality » 20.05.2008 08:59:13

может стоит предложить автору лазрепорта ввести свойство Charset у TfrReport. и добавить в файлы(.lrf) запись с глобальной Charset для всего отчета?
ViTality
постоялец
 
Сообщения: 308
Зарегистрирован: 05.10.2007 15:12:02

Re: кодировка в отчетах

Сообщение alexs » 20.05.2008 09:51:21

Цыгененко в FastReport-е 2.4 просто эту инициализацию воткнул в модули языковых ресурсов. Там необходимо было чтобы FR заговорил по руски подменить два (кажется) pas файла. Вот в них и было присовение для этой переменной.
В принципе это не напрягает. 1 раз прописал в начале исходника и всё. Просто этот вопрос слабо освещён в документации.
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: кодировка в отчетах

Сообщение ViTality » 20.05.2008 10:23:15

frCharset:=204;

а она вообще работает? вставлял в разные места:
- в lpr
- в модуль в которм вызываю репорт (инициализировал в FormCreate)
- в модуль главной формы (инициализировал в FormCreate)
ноль реакции. после запуска программы и вызова отчета, у полей, в отчете, у которых не установлен руский шрифт все также кривозяблики...
а если всем полям всеравно нужно ставить руский шрифт вручную, то зачем она нужна...
ViTality
постоялец
 
Сообщения: 308
Зарегистрирован: 05.10.2007 15:12:02

След.

Вернуться в Lazarus

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

Сейчас этот форум просматривают: Yandex [Bot] и гости: 45

Рейтинг@Mail.ru