LazReport: баги и вопросы...

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

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

Re: LazReport: баги и вопросы...

Сообщение alexs » 27.11.2009 22:32:23

это ГЛОБАЛЬНЫЕ массивы и все функции их используют.
Просто при старте программы приведи их содержимое к нужно кодировке.
Я сам именно так делаю.
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4053
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: LazReport: баги и вопросы...

Сообщение Ustas » 30.11.2009 20:10:16

alexs писал(а):это ГЛОБАЛЬНЫЕ массивы и все функции их используют.
Просто при старте программы приведи их содержимое к нужно кодировке.
Я сам именно так делаю.


А можно по подробнее: что это за массивы, где находятся, и как "привести" их к нужной кодировке (здесь интересно не использование функций, типа AnsiToUTF8, а сам принцип).
Ustas
постоялец
 
Сообщения: 146
Зарегистрирован: 19.10.2009 14:58:10
Откуда: г.Муром

Re: LazReport: баги и вопросы...

Сообщение alexs » 30.11.2009 20:42:16

Код: Выделить всё
{$IFDEF WINDOWS}
procedure ConvetToUTF8LocalConst;
var
  i:integer;
begin
  for i:=1 to 12 do
  begin
    LongMonthNames[i]:=UTF8Encode(LongMonthNames[i]);
    ShortMonthNames[i]:=UTF8Encode(ShortMonthNames[i]);
  end;
 
  for i:=1 to 7 do
  begin
    ShortDayNames[i]:=UTF8Encode(ShortDayNames[i]);
    LongDayNames[i]:=UTF8Encode(LongDayNames[i]);
  end;
end;
{$ENDIF}

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

Re: LazReport: баги и вопросы...

Сообщение devICE » 25.02.2010 16:32:04

Есть ли решение для LazReport с экспортом отчетов в PDF, XLS, DOC и OpenOffice?
Правильно ли мое подозрение что LazReport базируется на FastReport?
Аватара пользователя
devICE
новенький
 
Сообщения: 14
Зарегистрирован: 20.02.2010 20:24:05

Re: LazReport: баги и вопросы...

Сообщение v-t-l » 25.02.2010 17:10:16

devICE писал(а):Правильно ли мое подозрение что LazReport базируется на FastReport?

Точнее, на его древнем предке FreeReport.
v-t-l
энтузиаст
 
Сообщения: 727
Зарегистрирован: 13.05.2007 16:27:22
Откуда: Belarus

Re: LazReport: баги и вопросы...

Сообщение micbasov » 03.03.2010 01:34:13

devICE писал(а):Есть ли решение для LazReport с экспортом отчетов в PDF, XLS, DOC и OpenOffice?
Правильно ли мое подозрение что LazReport базируется на FastReport?

для PDF есть реализация в самом LazReport-е см папку ..\lazreport\source\addons\pdfexport\ но кирилица экспортируется как ??? пока не разобрался что с этим делать, про остальное готовых рабочих решений видимо пока нет.
micbasov
незнакомец
 
Сообщения: 3
Зарегистрирован: 03.03.2010 00:31:01

Re: LazReport: баги и вопросы...

Сообщение AnacRon » 21.04.2010 21:48:10

У меня вопрос такой: как бороться с косяком lazreporta?
в win32 работает все не без упреков, но все же, а под linux не хочет вообще:
- шрифты на привью в гноме крупнее чем винде и из-за этого некоторые строчки переносятся, а при печати размер шрифта как положено, но перенос строки все же не забывает и получается, что строка печатается до середине страницы и переносится
- шрифты на привью в кде так же не маленькие и видимо кодировка путается на печати, только знаки препинания и цифры

может я отстаю от жизни и люди уже нашли другой нормальный генератор отчетов? или вариант печати без ООо и html через браузер?
сижу на calculate(gentoo) gnome(gtk2) и kde4(qt4), fpc 2.4.0, lazarus 0.9.29
Аватара пользователя
AnacRon
новенький
 
Сообщения: 47
Зарегистрирован: 16.12.2009 11:09:09
Откуда: Караганда

Re: LazReport: баги и вопросы...

Сообщение Sagrer » 14.05.2010 16:23:51

Если кому-то надо - сегодня вымучал извращенский способ выводить графики в LazReport. См. код:

Код: Выделить всё
procedure TSuppReport.DSEnterRect(Memo: TStringList; View: TfrView);
//При подготовке отчёта нужно среагировать на объект картинки и нарисовать туды чего-нить.
var
  AsPicture : TfrPictureView;
  TheChart : TChart;
  TheSeries : TLineSeries;
  TheStream : TMemoryStream;

begin
  //Проверяем, если это то самое поле, какое надо - ставим туды картинку %).
  if (Memo[0] = '[SRGraphic]') and (View is TfrPictureView) then begin
    //Картинка графика. В принципе, сюды можно напрямик злобно нарисовать график из TChart %).

    //Далее следует извращенский код с множеством шаманских пассов, мучалось это дело
    //двое суток методом научного и не очень тыка, ковыряния гугла и исходников LCL, RTL
    //и прочей лазарусной требухи, ибо документация по этому делу отсутствует напрочь,
    //а графику в LazReport, судя по всему, мало кто из пишущих на лазарусе вообще
    //разобрался как делать - в нете на эту тему встречаются только вопросы без ответов.

    //Сформируем картинку графика с помощью TChart.
    TheChart := TChart.Create(nil);
    TheChart.Parent := Application.MainForm;
    TheSeries := TLineSeries.Create(nil);
    TheChart.Visible := false;
    TheChart.AddSeries(TheSeries);
    Self.FillErrorsChartSerie(TheSeries);
    //Готовим поток для передачи данных.
    TheStream := TMemoryStream.Create;
    //Настроим размеры и цвета для графика...
    TheChart.Height := 222;
    TheChart.Width := 568;
    TheChart.Color := clWhite;
    TheChart.BackColor := clWhite;
    //... и пишем картинку в поток.
    TheChart.SaveToImage(TBitmap).SaveToStream(TheStream);
    //Получим Picture картинки отчёта.
    AsPicture := (View as TfrPictureView);
    //Загрузим в неё изображение графика из потока.
    TheStream.Position := 0;
    AsPicture.Picture.LoadFromStreamWithFileExt(TheStream,'bmp');

    //Уборка мусора.
    TheStream.Free;
    TheSeries.Free;
    TheChart.Free;

    //Нуу, в общем, как-то так...
  end;
end;


DSEnterRect надо привязать на событие объекту-отчёту.

Код: Выделить всё
TheReport.OnEnterRect := @DSEnterRect;


В самом отчёте надо добавить элемент типа картинка, открыть редактор Memo-ы и вписать туды [SRGraphic] или любой другой идентификатор, какой вам нравится %).

Метод FillErrorsChartSerie просто заполняет объект класса TLineSeries моими данными, делается это так же как и обычно при работе с TChart.
Sagrer
незнакомец
 
Сообщения: 4
Зарегистрирован: 30.06.2008 18:00:51

Re: LazReport: баги и вопросы...

Сообщение Lyolys » 18.05.2010 03:41:12

http://fastreport.free.fr/Fr%20english/Frp5_en.html
тут человек делал TeeChart для FastReport 2.2
Lyolys
незнакомец
 
Сообщения: 1
Зарегистрирован: 18.05.2010 03:31:55

Re: LazReport: баги и вопросы...

Сообщение VAshot » 01.06.2010 08:30:36

Sagrer писал(а):Если кому-то надо - сегодня вымучал извращенский способ выводить графики в LazReport. См. код:


Что то Вы как-то заумно)

Мой фрагмент кода (событие frReport):
Код: Выделить всё
var
    Pic : TPicture;
    Chart : TChart;
    BarSeries1 : TBarSeries;
    tempBitmap: TBitmap;

procedure TFStandartQuery.frReport1EnterRect(Memo: TStringList; View: TfrView);
begin
  if Memo.Count > 0 then begin
     
    if (Memo[0] = '[Chart1]') and (View is TfrPictureView) then begin
      tempBitmap.Width  := 250;
      tempBitmap.Height := 187;
      tempBitmap.Canvas.Clear;
      Chart.Series.Clear;

      Chart.AddSerie(BarSeries1);
      Chart.Width := tempBitmap.Width;
      Chart.Height := tempBitmap.Height;

      Chart.PaintOnCanvas(tempBitmap.Canvas, Rect(0,0,tempBitmap.Width,tempBitmap.Height));
      Pic.Bitmap.Assign(tempBitmap);

      (View as TfrPictureView).Picture.Assign(Pic);
    end;

    if (Memo[0] = '[Chart2]') and (View is TfrPictureView) then begin
    end;
   
    if (Memo[0] = '[Chart3]') and (View is TfrPictureView) then begin
    end;

  end;
end;


Т.е. при сформированном нужного размера и стиля графике, код в три строки.

Минус такой реализации: если печатать на виртуальный PDF принтер, то весь документ векторный, а графики растровые.
Вот бы найти способ размещать в отчете векторную графику... мечты мечты.
Аватара пользователя
VAshot
постоялец
 
Сообщения: 128
Зарегистрирован: 01.11.2007 12:31:21
Откуда: Пермь

Re: LazReport: баги и вопросы...

Сообщение Ask » 03.06.2010 05:54:10

Я давно подозревал, что хорошо бы реализовать интеграцию TAChart и LazReport.
К сожалению, в LazReport не разбираюсь.
Но если для этого будут нужны/полезны какие-то изменения в TAChart -- готов внести.
Ask
постоялец
 
Сообщения: 163
Зарегистрирован: 25.12.2008 03:51:37

Re: LazReport: баги и вопросы...

Сообщение VAshot » 03.06.2010 13:55:55

TAChart для одного из своих проектов сильно видоизменил, добавил вторую вертикальную ось (правую), причем хитрую, подбирает шаг и максимальное значение так, чтобы сетка совпадала с первой осью (левой), и шаг был целочисленный и "красивый" по величине, при необходимости, меняет и максимальное значение (естественно, не меньше, чем значения данных) для первой оси, для красивости всего графика. Ни в одной навороченной платной компоненте такого не видел.
В другом временную шкалу сделал.
И эти модификации сейчас никак не совместимы с практически новым TAChart :((( В добавок, код такой, что сам сейчас разберусь с большим большим трудом (не профессиональный программист я), во многом методом тыка делал.

Есть еще потребности выводить в отчет просто векторную графику.

Исходя из вышесказанного, логичнее как-то доработать LazReport так, чтобы можно было рисовать на нем как на канве (по типу вывода на принтер) или вставлять вместо растровой графики кусок другой канвы. Тогда и векторную графику можно выводить через рисование на канве простейших фигур и, естественно, графики.

Вот как-то так, сумбурно.
Аватара пользователя
VAshot
постоялец
 
Сообщения: 128
Зарегистрирован: 01.11.2007 12:31:21
Откуда: Пермь

Re: LazReport: баги и вопросы...

Сообщение khvalera » 19.09.2010 03:38:51

Сегодня перегнал проектик в Линакс и столкнулся с багом LazReport: дизайнер и сам отчет выводится в маленьком окошке, изменить размер нельзя и перетащить за шапку можно только в низ. :( Ребята кто уже сталкивался подскажите?
Аватара пользователя
khvalera
новенький
 
Сообщения: 57
Зарегистрирован: 29.06.2010 00:49:43

Re: LazReport: баги и вопросы...

Сообщение khvalera » 15.05.2011 22:35:09

khvalera писал(а):Сегодня перегнал проектик в Линакс и столкнулся с багом LazReport: дизайнер и сам отчет выводится в маленьком окошке, изменить размер нельзя и перетащить за шапку можно только в низ. :( Ребята кто уже сталкивался подскажите?

... лечится установкой новой версии Lazarus :)
Аватара пользователя
khvalera
новенький
 
Сообщения: 57
Зарегистрирован: 29.06.2010 00:49:43

Re: LazReport: баги и вопросы...

Сообщение Zeleniy » 25.05.2011 07:12:59

micbasov писал(а):для PDF есть реализация в самом LazReport-е см папку ..\lazreport\source\addons\pdfexport\ но кирилица экспортируется как ??? пока не разобрался что с этим делать, про остальное готовых рабочих решений видимо пока нет.


Никто не знает как такую проблему решить? Поковырялся в коде, пробовал настраивать раскладку через PReport.pas в PowerPDF и lr_e_pdf в PdfExport, результат - нулевой. Может кто посоветует альтернативные решения? Хороший pdf эмулятор принтера, не задающий лишних вопросов:)
Zeleniy
незнакомец
 
Сообщения: 1
Зарегистрирован: 25.05.2011 07:03:30

Пред.След.

Вернуться в Lazarus

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

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

Рейтинг@Mail.ru