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

"Почему условное выделение не работает в Delphi-FastReport VCL 5 и как его исправить"

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

В статье мы рассмотрим проблему, с которой сталкиваются пользователи Delphi-FastReport VCL 5 при использовании условного выделения. Мы разберемся, почему оно не работает и как исправить эту проблему.

Пользователь создал новое приложение VCL, добавил на форму компоненты TEdit и TButton для передачи значения, а также TfrxReport. В режиме дизайна отчета он добавил полосу отчета и TfrxMemoView в эту полосу. Он также добавил условия для выделения:

  1. Значение <= 0 -> Красный цвет
  2. Значение > 0 -> Зеленый цвет

Однако, несмотря на эти условия, цвет заполнения memo оставался черным, даже если значение было больше или меньше нуля.

Вопрос пользователя заключался в том, почему эти условия не работают и как сделать их рабочими.

Ответ на этот вопрос заключается в том, что свойство Value компонента TfrxMemoView оставалось NULL. Чтобы назначить постоянное значение из кода Delphi, вы можете либо написать выражение, например:

procedure TForm1.Button1Click(Sender: TObject);
var
  Memo: TfrxMemoView;
begin
  Memo := frxReport1.FindObject('Memo1') as TfrxMemoView;
  Memo.Text := Format('[%s]', [Edit1.Text]);
  frxReport1.ShowReport;
end;

В приведенном выше коде я опустил проверку, найден ли контроль. И вы должны быть осторожны с вводным текстом. Он принимает только значения с плавающей запятой в формате, который не будет конфликтовать с разделителями десятичных знаков, определенными в свойстве ExpressionDelimiters.

Или просто установите свойство Value:

procedure TForm1.Button1Click(Sender: TObject);
var
  Memo: TfrxMemoView;
begin
  Memo := frxReport1.FindObject('Memo1') as TfrxMemoView;
  Memo.Text := Edit1.Text;
  Memo.Value := StrToFloat(Edit1.Text);
  frxReport1.ShowReport;
end;

В этом случае проверка, найден ли контроль, отсутствует. И преобразование в float не является обязательным здесь. Значение может быть просто строкой, преобразованной в float.

Использование выражения также не является плохой идеей. Вам просто нужно быть осторожным с разделителями десятичных знаков и выражения. Обновлено.

Надеюсь, эта статья поможет вам решить проблему с условным выделением в Delphi-FastReport VCL 5. Если у вас есть другие вопросы или проблемы, не стесняйтесь спрашивать!

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

В статье рассматривается проблема с неработающим условным выделением в Delphi-FastReport VCL 5, при которой цвет заполнения memo не меняется согласно заданным условиям, и предлагаются решения, основанные на назначении постоянного значения компоненту TfrxM


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

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




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


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


реклама


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

Время компиляции файла: 2024-08-19 13:29:56
2024-11-21 13:27:49/0.0053198337554932/1