Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Решение ошибки "Expression expected" в Delphi с FastReport

Delphi , Базы данных , Отчеты

Заголовок:

Вопрос: При работе с FastReport в Delphi пользователь столкнулся с ошибкой "Expression expected" при попытке напечатать отчет. Ошибка возникает при использовании процедуры Sendparams для передачи параметров отчета.

Решение проблемы:

  1. Ошибка может возникнуть, если категория, используемая в AddVariable, не определена в отчете. Чтобы решить эту проблему, убедитесь, что категория, в данном случае "Bez", определена в отчете.
  2. Присваивание переменных в отчете должно выполняться в формате "Memo1.Lines.Text := ;".
  3. Значения переменных должны быть заключены в кавычки. Например, Sendparams(['buyer','delivery'], [QuotedStr('buyer address'), QuotedStr('delivery address')]).

Пример кода:

procedure Sendparams(const Pparams, pparvalues: array of string);
begin
  for I := 0 to Length(Pparams) - 1 do
  begin
    lpar_name := Pparams[i];
    lpar_val := pparvalues[i];
    FfrxReport.Variables.AddVariable('Bez', lpar_name, lpar_val);
  end;
end;

Sendparams(['buyer','delivery'], [QuotedStr('buyer address'), QuotedStr('delivery address')]);

Memo1.memo := '[buyer]';
Memo2.memo := '[delivery]';

Альтернативное решение:

Если вы хотите избежать использования открытых массивов строк, жесткой ссылки на отчет в Sendparams и обрабатывать переменные, уже определенные в отчете, вы можете использовать функцию PrepareReport. Пример кода:

Function PrepareReport(Report: TfrxReport; Variables: TfrxVariables; ReportName: String): Boolean;
var
  i, k: Integer;
begin
  // ....... other initializations

  if Assigned(Variables) then
    for i := 0 to Variables.Count - 1 do
    begin
      k := Report.Variables.IndexOf(Variables.Items[i].Name);
      if k > -1 then
        Report.Variables.Items[k].Value := Variables.Items[i].Value
      else
      begin
        with Report.Variables.Add do
        begin
          Name := Variables.Items[i].Name;
          Value := Variables.Items[i].Value;
        end;
      end;
    end;
end;

Заключение:

При работе с FastReport в Delphi пользователь может столкнуться с ошибкой "Expression expected". Решением проблемы может быть правильная настройка категорий в отчете, корректное присваивание переменных и заключение значений переменных в кавычки. Альтернативным решением может быть использование функции PrepareReport для обработки переменных в отчете.

Создано по материалам из источника по ссылке.

Пользователь столкнулся с ошибкой 'Expression expected' при работе с FastReport в Delphi и ищет решение для корректной передачи параметров отчета.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Отчеты ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-08-15 09:50:01/0.0060210227966309/0