LazReport

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

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

Re: LazReport

Сообщение alexs » 09.10.2014 09:27:46

lazarus/components/lazreport/source/addons/pdfexport/lazreportpdfexport.lpk не рабочий. Не умеет работать с крилическими кодировками.
Он вообще не умеет работать с не латинскими буквами.
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: LazReport

Сообщение Axi » 23.10.2014 22:21:16

Добрый день. Подскажите можно как можно форматировать текст в отчете, например в блоке, чтобы был обычный текст и выделенный.
Спасибо.
Axi
новенький
 
Сообщения: 15
Зарегистрирован: 23.10.2014 22:18:41

Re: LazReport

Сообщение alexs » 24.10.2014 19:03:14

Пока никак
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: LazReport

Сообщение *Rik* » 09.12.2014 18:05:52

1. Походу группировка для Detail Data не работает...?

2. Пытаюсь при формировании табличной части выделить строки, в которых количество более чем N жирным.
Скрипт
Код: Выделить всё
if [DM.TABLE."KOLVO"] > 1 then
  Memo22.Font.Style.fsBold := True
else
  Memo22.Font.Style.fsBold := False;

Ни чего не происходит. Как правильно?
Аватара пользователя
*Rik*
постоялец
 
Сообщения: 451
Зарегистрирован: 19.04.2011 12:18:51
Откуда: Урал

Re: LazReport

Сообщение Tango » 28.02.2015 20:32:15

alexs писал(а):Как и обещал - выкладываю ковертер файлов FastReport 2.5 - .fr3 в формат LazReport-а.
Для тех кто не в курсе - FR 2.5 сохраняет в fr3 формат для последующей загрузки в FR3 и выше.

http://w7site.ru/fpc/fr2lr_cnv.rar - скомпилированный модуль для windows.
http://w7site.ru/fpc/fr2lr.rar - Исходные тексты.


Не качается, битая ссылка. Можно перезалить.
Аватара пользователя
Tango
постоялец
 
Сообщения: 162
Зарегистрирован: 31.05.2012 17:07:30

Re: LazReport

Сообщение alexs » 02.03.2015 14:49:21

Готово
*Rik* писал(а):2. Пытаюсь при формировании табличной части выделить строки, в которых количество более чем N жирным.


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

Re: LazReport

Сообщение Axi » 02.04.2015 11:51:12

Добрый день.
Получаю данные из БД FB (поле числовое) в Lazreporte выбирают формат число с разделителями разрядов, т.е. что бы выводилось 1 523,55 р.. Но при выводе получаю 1?523,55 р. где разделитель разрядов пробел выводиться знак вопроса "?". Как правильно выводить число с разрядами.
Спасибо.
Axi
новенький
 
Сообщения: 15
Зарегистрирован: 23.10.2014 22:18:41

Re: LazReport

Сообщение alexs » 03.04.2015 09:39:25

Код: Выделить всё
procedure ConvetToUTF8LocalConst;
var
  i:integer;
begin
  DefaultFormatSettings.ShortMonthNames[1]:='Январь';
  DefaultFormatSettings.ShortMonthNames[2]:='Февраль';
  DefaultFormatSettings.ShortMonthNames[3]:='Март';
  DefaultFormatSettings.ShortMonthNames[4]:='Апрель';
  DefaultFormatSettings.ShortMonthNames[5]:='Май';
  DefaultFormatSettings.ShortMonthNames[6]:='Июнь';
  DefaultFormatSettings.ShortMonthNames[7]:='Июль';
  DefaultFormatSettings.ShortMonthNames[8]:='Август';
  DefaultFormatSettings.ShortMonthNames[9]:='Сентябрь';
  DefaultFormatSettings.ShortMonthNames[10]:='Октябрь';
  DefaultFormatSettings.ShortMonthNames[11]:='Ноябрь';
  DefaultFormatSettings.ShortMonthNames[12]:='Декабрь';

  for i:=1 to 12 do
    DefaultFormatSettings.LongMonthNames[i] := DefaultFormatSettings.ShortMonthNames[i];

  DefaultFormatSettings.LongDayNames[1]:='Воскресенье';
  DefaultFormatSettings.LongDayNames[2]:='Понедельник';
  DefaultFormatSettings.LongDayNames[3]:='Вторник';
  DefaultFormatSettings.LongDayNames[4]:='Среда';
  DefaultFormatSettings.LongDayNames[5]:='Четверг';
  DefaultFormatSettings.LongDayNames[6]:='Пятница';
  DefaultFormatSettings.LongDayNames[7]:='Суббота';

  DefaultFormatSettings.ShortDayNames[1]:='Вс';
  DefaultFormatSettings.ShortDayNames[2]:='Пн';
  DefaultFormatSettings.ShortDayNames[3]:='Вт';
  DefaultFormatSettings.ShortDayNames[4]:='Ср';
  DefaultFormatSettings.ShortDayNames[5]:='Чт';
  DefaultFormatSettings.ShortDayNames[6]:='Пт';
  DefaultFormatSettings.ShortDayNames[7]:='Сб';
end;

procedure InitLocale;
begin
  DefaultFormatSettings.LongDateFormat:='dd.mm.yyyy';
  DefaultFormatSettings.ShortDateFormat:=DefaultFormatSettings.LongDateFormat;
  DefaultFormatSettings.DateSeparator:='.';
  DefaultFormatSettings.TimeSeparator:=':';
  DefaultFormatSettings.ThousandSeparator:=' ';
  DefaultFormatSettings.CurrencyString:='р.';

  ConvetToUTF8LocalConst;
end;



При запуске программы вызови функцию InitLocale;

Ещё полезно сделать вызов
Application.UpdateFormatSettings:=false;

после
Application.Initialize;

в главном файле проекта (*.lpr)

Всё вышенаписанное относится к винде. В линуксе оно не нужно. Но код будет работать везде правильно.
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: LazReport

Сообщение slyubez » 12.04.2015 23:10:52

Добрый день!

Уже несколько дней бьюсь с непонятной проблемой. Lazarus 1.2.6 + Win32. Пытаюсь заставить LR сгенерить отчет из файла по данным из IBQuery (использую последнюю версию IBX от *Rik*). При выполнении ShowReport пробегает прогрессбар препарации, и окно превью не показывается. Сваял простейший тестовый проект на базе EMPLOYEE.FDB, идущей в комплекте с Firebird. Интересно, что когда свойства задаются в DesignTime на подцепленной БД, отчет в превью, вызываемом из дизайнера, показывается нормально. А в RunTime - хрень. Прошу помощи. Тестовый проект прилагаю (там понадобятся мелкие правки путей к БД и к клиентской либе).

Добавлено спустя 1 минуту 57 секунд:
Да, дело именно в LR, а не в IBX, так как в первой версии моего проекта я сначала копировал данные из IBSQL в MemDataset и четко видел, что заполнение датасета шло правильно.

Добавлено спустя 13 минут 28 секунд:
UPD. Нашел, что я не один такой, но вопрос до сих пор не решили.
http://lists.lazarus.freepascal.org/pip ... 58236.html
У вас нет необходимых прав для просмотра вложений в этом сообщении.
slyubez
постоялец
 
Сообщения: 174
Зарегистрирован: 31.03.2015 08:44:07

Re: LazReport

Сообщение *Rik* » 13.04.2015 00:24:44

slyubez писал(а):Добрый день!

Уже несколько дней бьюсь с непонятной проблемой. Lazarus 1.2.6 + Win32. Пытаюсь заставить LR сгенерить отчет из файла по данным из IBQuery (использую последнюю версию IBX от *Rik*). При выполнении ShowReport пробегает прогрессбар препарации, и окно превью не показывается. Сваял простейший тестовый проект на базе EMPLOYEE.FDB, идущей в комплекте с Firebird. Интересно, что когда свойства задаются в DesignTime на подцепленной БД, отчет в превью, вызываемом из дизайнера, показывается нормально. А в RunTime - хрень. Прошу помощи. Тестовый проект прилагаю (там понадобятся мелкие правки путей к БД и к клиентской либе).

Добавлено спустя 1 минуту 57 секунд:
Да, дело именно в LR, а не в IBX, так как в первой версии моего проекта я сначала копировал данные из IBSQL в MemDataset и четко видел, что заполнение датасета шло правильно.

Добавлено спустя 13 минут 28 секунд:
UPD. Нашел, что я не один такой, но вопрос до сих пор не решили.
http://lists.lazarus.freepascal.org/pip ... 58236.html


На линуксе завелось. Только я в Вашем примере в TForm1.FormShow оставил:
Код: Выделить всё
with IBDatabase1
  do begin
      Connected:=True;
     end;
IBTransaction1.StartTransaction;

остальное в IBDatabase прописал, и из SQL запроса убрал ';'

ps:
Вы используете FileExists а не FileExistsUTF8, у Вас случайно русских букв в путях нет?
Аватара пользователя
*Rik*
постоялец
 
Сообщения: 451
Зарегистрирован: 19.04.2011 12:18:51
Откуда: Урал

Re: LazReport

Сообщение slyubez » 13.04.2015 01:20:20

В Линуксе я пока не проверял - после попытки установки FastReport Lazarus перестал запускаться, придется переставлять. Завтра попробую, но вполне вероятно, что глюк только в виндовой версии. По результатам отпишусь.
FileExists тут ни при чем. Эта функция взята из исходного проекта, но для этого теста переделана под EMPLOYEE.FDB и слегка подрезана, чтобы упростить поиск проблемы: в том проекте при отсутствии файла работа функции завершается, и выдается сообщение об ошибке. Да и отладчик легко проскакивал эту функцию. Русские символы в пути есть.
slyubez
постоялец
 
Сообщения: 174
Зарегистрирован: 31.03.2015 08:44:07

Re: LazReport

Сообщение *Rik* » 13.04.2015 10:07:39

slyubez
В отладчике хорошо видно, что Application.ExeName при наличии русских букв, требует перекодировки пути в UTF8, иначе LazReport просто не может найти файл с болванкой для отчета.
Процедура запуска отчета должна в Windows выглядеть так:
Код: Выделить всё
function FormMaterialMovingReport: Integer;
const
SELSQL = 'SELECT COUNTRY, CURRENCY FROM COUNTRY;';
var  s, EName: String;
begin
Result:=0;
EName := UTF8Encode( Application.ExeName );
s:=ExtractFilePath (EName)+'Test.lrf';
if not FileExistsUTF8 (s)
  then begin
        Result:=DS_EXCEPTION;
        Exit;
       end;
with Form1.ReportDS
  do try
      SQL.Text:=SELSQL;
      with Form1.frReport1
       do begin
           LoadFromFile (s);
           ShowReport;
          end;
     except
      on E: Exception
       do begin
           Result:=DS_EXCEPTION;
           Exit;
          end;
     end;
end;
Аватара пользователя
*Rik*
постоялец
 
Сообщения: 451
Зарегистрирован: 19.04.2011 12:18:51
Откуда: Урал

Re: LazReport

Сообщение slyubez » 13.04.2015 11:28:08

*Rik*, огромное спасибо. Тестовый проект завелся, сейчас буду корректировать основной проект. Крайне странно, что LazReport при ненахождении файла не выкидывает исключение. А в Линуксе можно оставить конструкцию в таком виде (среду с FPC еще не переставлял)? И как считаете, может быть, правильнее для кроссплатформенного кода использовать функцию SysToUTF8?
slyubez
постоялец
 
Сообщения: 174
Зарегистрирован: 31.03.2015 08:44:07

Re: LazReport

Сообщение Снег Север » 13.04.2015 13:07:26

slyubez писал(а):Крайне странно, что LazReport при ненахождении файла не выкидывает исключение.
Не холивара ради - а какое исключение должен выкидывать именно LazReport? Проверять, находится ли файл по указанному пути - обязанность программиста. Я, например, всегда пишу в коде
Код: Выделить всё
if FileExists(...) then ...
Аватара пользователя
Снег Север
долгожитель
 
Сообщения: 3039
Зарегистрирован: 27.11.2007 16:14:47

Re: LazReport

Сообщение *Rik* » 13.04.2015 14:21:43

slyubez писал(а):*Rik*, огромное спасибо. Тестовый проект завелся, сейчас буду корректировать основной проект. Крайне странно, что LazReport при ненахождении файла не выкидывает исключение. А в Линуксе можно оставить конструкцию в таком виде (среду с FPC еще не переставлял)? И как считаете, может быть, правильнее для кроссплатформенного кода использовать функцию SysToUTF8?

Да, используйте SysToUTF8, она в Linux просто игнорируется (я почему-то напортачил и прописал UTF8Encode)..
Аватара пользователя
*Rik*
постоялец
 
Сообщения: 451
Зарегистрирован: 19.04.2011 12:18:51
Откуда: Урал

Пред.След.

Вернуться в Lazarus

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

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

Рейтинг@Mail.ru