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

Решение проблемы с отображением символов '%2.2m' при печати отформатированного значения валюты в TfrxMemoView отчета в FastReport VCL 5

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

При работе с отчетами в FastReport VCL 5 вы столкнулись с проблемой отображения символов '%2.2m' вместо фактического значения валюты в TfrxMemoView. В данной статье мы рассмотрим, как решить эту проблему и отобразить отформатированное значение валюты в отчете.

Причина проблемы

Проблема заключается в неверном использовании функции FormatFloat в скрипте, который обрабатывает событие OnBeforePrint для TfrxMemoView. Функция FormatFloat в FastReport работает аналогично функции FormatFloat в Delphi, но пользовательский формат не распознается корректно.

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

Чтобы отобразить отформатированное значение валюты в TfrxMemoView, вам необходимо изменить формат в функции FormatFloat на подходящий для валюты. В данном случае можно использовать формат '#,##0.00 €'. Ниже представлен исправленный скрипт:

procedure txCreditLimitOnBeforePrint(Sender: TfrxComponent);
begin
  if <TRAN."CREDITAPPROVED"> = 1 then
    txCreditLimit.Text := 'Credit Limit: ' + FormatFloat('#,##0.00 €', <TRAN."CREDITLIMIT">)
  else
    txCreditLimit.Text := '';
end;

Если вы хотите использовать формат, указанный в Object Inspector для TfrxMemoView, можно связать TfrxMemoView с выражением из вашего набора данных и отформатировать его в Object Inspector. В этом случае скрипт будет выглядеть следующим образом:

procedure txCreditLimitOnBeforePrint(Sender: TfrxComponent);
begin
  txCreditLimit.Visible := <TRAN."CREDITAPPROVED"> = 1;
end

При этом TfrxMemoView должен содержать выражение вроде 'Credit Limit: [TRAN."CREDITLIMIT"]' и быть отформатированным в Object Inspector с помощью синтаксиса '%2.2m'.

Объяснение использования <> и []

В выражениях, используемых в скриптах FastReport, <> и [] служат для обозначения полей набора данных. <> используется для доступа к полям набора данных, а [] служит для обозначения выражений, которые должны быть вычислены и отформатированы в TfrxMemoView.

Например, если выражение в TfrxMemoView установлено как 'Credit Limit: ', оно не будет отображать фактическое значение валюты, так как <> не является допустимым синтаксисом для выражений в TfrxMemoView. Однако, если выражение будет установлено как 'Credit Limit: []', то TfrxMemoView распознает выражение в скобках [] как выражение, которое нужно вычислить и отформатировать.

В приведенном выше примере, где не используется <> в скрипте, TfrxMemoView все равно связывается с выражением из набора данных, которое отображается в Object Inspector.

Заключение

В данной статье мы рассмотрели проблему отображения символов '%2.2m' вместо фактического значения валюты в TfrxMemoView отчета в FastReport VCL 5 и предложили два решения: изменение формата в функции FormatFloat или использование формата, указанного в Object Inspector для TfrxMemoView. Также мы объяснили, как использовать <> и [] в выражениях, используемых в скриптах FastReport.

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

Статья описывает решение проблемы отображения символов '%2.2m' вместо фактического значения валюты в TfrxMemoView отчета в FastReport VCL 5, предлагая два способа решения этой проблемы и объясняя использование <> и [] в выражениях, используемых в скриптах


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

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




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


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


реклама


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

Время компиляции файла: 2024-12-22 20:14:06
2025-01-29 01:50:52/0.0033500194549561/0