это ГЛОБАЛЬНЫЕ массивы и все функции их используют.
Просто при старте программы приведи их содержимое к нужно кодировке.
Я сам именно так делаю.
Модератор: Модераторы
alexs писал(а):это ГЛОБАЛЬНЫЕ массивы и все функции их используют.
Просто при старте программы приведи их содержимое к нужно кодировке.
Я сам именно так делаю.
{$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}
devICE писал(а):Правильно ли мое подозрение что LazReport базируется на FastReport?
devICE писал(а):Есть ли решение для LazReport с экспортом отчетов в PDF, XLS, DOC и OpenOffice?
Правильно ли мое подозрение что LazReport базируется на FastReport?
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;
TheReport.OnEnterRect := @DSEnterRect;
Sagrer писал(а):Если кому-то надо - сегодня вымучал извращенский способ выводить графики в LazReport. См. код:
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;
khvalera писал(а):Сегодня перегнал проектик в Линакс и столкнулся с багом LazReport: дизайнер и сам отчет выводится в маленьком окошке, изменить размер нельзя и перетащить за шапку можно только в низ.Ребята кто уже сталкивался подскажите?
micbasov писал(а):для PDF есть реализация в самом LazReport-е см папку ..\lazreport\source\addons\pdfexport\ но кирилица экспортируется как ??? пока не разобрался что с этим делать, про остальное готовых рабочих решений видимо пока нет.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 28