lazarus/components/lazreport/source/addons/pdfexport/lazreportpdfexport.lpk не рабочий. Не умеет работать с крилическими кодировками.
Он вообще не умеет работать с не латинскими буквами.
Модератор: Модераторы
if [DM.TABLE."KOLVO"] > 1 then
Memo22.Font.Style.fsBold := True
else
Memo22.Font.Style.fsBold := False;
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 - Исходные тексты.
*Rik* писал(а):2. Пытаюсь при формировании табличной части выделить строки, в которых количество более чем N жирным.
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;
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
with IBDatabase1
do begin
Connected:=True;
end;
IBTransaction1.StartTransaction;
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;
Не холивара ради - а какое исключение должен выкидывать именно LazReport? Проверять, находится ли файл по указанному пути - обязанность программиста. Я, например, всегда пишу в кодеslyubez писал(а):Крайне странно, что LazReport при ненахождении файла не выкидывает исключение.
if FileExists(...) then ...
slyubez писал(а):*Rik*, огромное спасибо. Тестовый проект завелся, сейчас буду корректировать основной проект. Крайне странно, что LazReport при ненахождении файла не выкидывает исключение. А в Линуксе можно оставить конструкцию в таком виде (среду с FPC еще не переставлял)? И как считаете, может быть, правильнее для кроссплатформенного кода использовать функцию SysToUTF8?
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 9