Переменные в LAZREPORT

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

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

Ответить
Luxor
новенький
Сообщения: 72
Зарегистрирован: 10.06.2010 19:30:43

Переменные в LAZREPORT

Сообщение Luxor »

Как мне программно создать переменную в lazreport?
Есть массив в виде [имя переменной, значение переменной]
Надо, чтобы я отобразив поле в отчете - мог вывести в него значение переменной. (по такому же принципу, как отображение поля базы данных). Как правильно создавать переменные программно?
SeZuka
постоялец
Сообщения: 209
Зарегистрирован: 05.09.2012 14:58:05

Сообщение SeZuka »

Используй событие OnGetValue, в него передается имя переменной, обратно возвращаешь ее значение.
Аватара пользователя
alexs
долгожитель
Сообщения: 4069
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

frValues['имя переменной']:=значение переменной.
Luxor
новенький
Сообщения: 72
Зарегистрирован: 10.06.2010 19:30:43

Сообщение Luxor »

alexs писал(а):frValues['имя переменной']:=значение переменной.

Чего-то не получается...
Делаю так:

Код: Выделить всё

 DM.frReport1.Variables.Add('CAT_01');

затем

Код: Выделить всё

 if FrmEnterParamsReport.Components[m] is TDateEdit then
                begin
                  Params.Items[j].Value :=
                    (FrmEnterParamsReport.Components[m] as TDateEdit).Text;
                  DM.frReport1.Variables.Add(' '+Params.Items[j].Name);
//? здесь присваивать значение?
                end;

Получается список переменных
Теперь надо присвоить значения этим переменным. Я так понимаю это надо делать после того, как добавили переменную.
Как присвоить значение?
У вас нет необходимых прав для просмотра вложений в этом сообщении.
SeZuka
постоялец
Сообщения: 209
Зарегистрирован: 05.09.2012 14:58:05

Сообщение SeZuka »

Код: Выделить всё

procedure TDM.frReport1GetValue(const ParName: String; var ParValue: Variant);
begin
  ParValue := Params.Values[ParName];
end;
Luxor
новенький
Сообщения: 72
Зарегистрирован: 10.06.2010 19:30:43

Сообщение Luxor »

Спасибо. Всё заработало.
Ответить