передача значения в переменную LazReport'а - РЕШЕНО
Модератор: Модераторы
передача значения в переменную LazReport'а - РЕШЕНО
Я создал в репорте переменную kategorii через меню File->Variables List
Хочу перед вызовом MyReport ShowReport присвоить этой переменой значение. Как это сделать?
Lazarus 1.0.14
FPC 2.6.2
Win 7 32-bit
Хочу перед вызовом MyReport ShowReport присвоить этой переменой значение. Как это сделать?
Lazarus 1.0.14
FPC 2.6.2
Win 7 32-bit
Последний раз редактировалось zozuliar 22.02.2014 12:06:56, всего редактировалось 1 раз.
спасибо! Помогло.
А у меня проблема появилась с передачей параметров, я бы сказа больше - шарабашка.
Ситуация в следующем: есть отчет, в котором определены две переменные (наподобие таких отчетов несколько). Параметры передаю через событие OnGetValue:
Во все других отчетах это проходит, а в данной TForm в этом отчете - нет. Я не зря сказал "в данной TForm", т.к. этот отчет выполнял из другой формы - все нормально.
Смотрел значение ParName из процедуры frReportGetValue. Какая то фигня. Такое впечатление что чтение имени переменной происходит со смещением и равно: "ITLE" ... далее идет набор символов. Соответственно переменная DATE_TXT: "ATE_TXT"...
Где косяк? Всю голову сломал...
Ситуация в следующем: есть отчет, в котором определены две переменные (наподобие таких отчетов несколько). Параметры передаю через событие OnGetValue:
Код: Выделить всё
procedure TForm.frReportGetValue(const ParName: String; var ParValue: Variant);
begin
if ParName = 'TITLE' then ParValue := tmp_Report;
if ParName = 'DATE_TXT' then ParValue := 'на ' + tmp_DateToText(Date) + ' года.';
end;
Во все других отчетах это проходит, а в данной TForm в этом отчете - нет. Я не зря сказал "в данной TForm", т.к. этот отчет выполнял из другой формы - все нормально.
Смотрел значение ParName из процедуры frReportGetValue. Какая то фигня. Такое впечатление что чтение имени переменной происходит со смещением и равно: "ITLE" ... далее идет набор символов. Соответственно переменная DATE_TXT: "ATE_TXT"...
Где косяк? Всю голову сломал...
1. "Надо тестовый проект" - т.е. что конкретно?
2. Привычка с FastReport`а осталась. Пробовал frVariables['kategorii']:='bla-bla-bla'; - у меня не работает, может порядок вызова не тот.
Собственно делаю так (через frVariables):
2. Привычка с FastReport`а осталась. Пробовал frVariables['kategorii']:='bla-bla-bla'; - у меня не работает, может порядок вызова не тот.
Собственно делаю так (через frVariables):
Код: Выделить всё
tmp_Shablon := tmp_Path + 'TechnReport.lrf';
if not SysUtils.FileExists(tmp_Shablon) then
begin
_my_MessageDLG('Шаблон не найден:'#13#10 + String(tmp_Shablon), mtError, [mbOK]);
Exit;
end;
with frReport do
begin
LoadFromFile(tmp_Shablon);
frVariables['TITLE'] := tmp_Report;
ShowReport;
end;
Подниму тему.
Не получается передать переменную в отчет. С запросом из БД все получается, а вот передать, как пишет alexs, статичную не получается. Ни через frVariables, ни через процедуру frReportGetValue. Поскольку мне достался проект на Lazarus 0.9.28, то я и продолжаю сопровождать на нём же. Сделал тестовый пример в Simply Linux 7.0.4 от Altlinux, Lazarus 1.2.0, FPC 2.6.2. Результат тот же. Чего-то я упускаю, а вот что?
Не получается передать переменную в отчет. С запросом из БД все получается, а вот передать, как пишет alexs, статичную не получается. Ни через frVariables, ни через процедуру frReportGetValue. Поскольку мне достался проект на Lazarus 0.9.28, то я и продолжаю сопровождать на нём же. Сделал тестовый пример в Simply Linux 7.0.4 от Altlinux, Lazarus 1.2.0, FPC 2.6.2. Результат тот же. Чего-то я упускаю, а вот что?
Код: Выделить всё
unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, LR_Class, Forms, Controls, Graphics, Dialogs,
StdCtrls;
type
{ TForm1 }
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
frReport1: TfrReport;
procedure Button1Click(Sender: TObject);
procedure FormShow(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.lfm}
{ TForm1 }
procedure TForm1.Button1Click(Sender: TObject);
begin
frVariables['kateg']:=Edit1.Text;
frReport1.ShowReport;
end;
procedure TForm1.FormShow(Sender: TObject);
begin
frReport1.LoadFromFile('rep.lrf');
end;
end.
Примеры из Lazreport'a работают как и задумано и в старой (0.9.28 на Windovs7) и в достаточно свежей (1.2.0 на Simply Linux 7.0.3 от Altlinux). Компы тоже разные. Не знаю, можно-ли и как прикреплять файлы к сообщениям
Может кому пригодиться:
http://forum.altlinux.org/index.php?topic=34351.0
Проверил - работает (решение в предполедней записи).
http://forum.altlinux.org/index.php?topic=34351.0
Проверил - работает (решение в предполедней записи).
