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

Скрывать/показывать значения в столбце при клике в FastReport с Delphi

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

Скрывать/показывать значения в столбце при клике в FastReport с Delphi

При работе с отчетами в FastReport sometimes бывает необходимо скрывать или показывать значения в определенном столбце при клике на них. В этом материале мы рассмотрим, как реализовать подобное поведение с помощью Delphi и Object Pascal.

Описание проблемы

Рассмотрим ситуацию, когда при клике на значение в одной из ячеек столбца нужно скрыть все значения в этом столбце, а при повторном клике вернуть их обратно. Например, в отчете отображаются данные о продажах, и при клике на значение в столбце "Цена" все цены в отчете должны стать невидимыми, а при повторном клике вернуться на свои места.

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

Для реализации подобного поведения можно воспользоваться событием OnPreviewClick поля, на котором происходит клик. В этом событии можно менять значение поля на пустое или на исходное, в зависимости от текущего состояния.

Пример кода на Object Pascal, который реализует это поведение, приведен ниже:

procedure frxDBDataset1Field1OnPreviewClick(Sender: TfrxView; Button: TMouseButton; Shift: Integer; var Modified: Boolean);
begin
  if frxDBDataset1Field1.text = '' then
    frxDBDataset1Field1.text := '[frxDBDataset1."Field1"]'
  else
    frxDBDataset1Field1.text := '';
  Report.ShowReport;  // это обновит отчет
end;

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

Альтернативный ответ

Также можно реализовать подобное поведение с помощью скриптов на VCL, встроенных в FastReport. Для этого нужно добавить скрипт к полю, на котором происходит клик, и в скрипте изменить значение поля в зависимости от текущего состояния. Пример скрипта на VCL:

procedure TfrxDBDataset1Field1Click(Sender: TObject);
begin
  if frxDBDataset1Field1.Text = '' then
    frxDBDataset1Field1.Text := '[frxDBDataset1."Field1"]'
  else
    frxDBDataset1Field1.Text := '';
  Report.ShowReport;
end;

В этом примере используется событие Click поля, а не OnPreviewClick, как в предыдущем примере. Однако, суть остается той же: при клике на поле значение поля меняется на противоположное текущему состоянию.

Вывод

Реализовать скрытие/показ значений в столбце при клике в FastReport с Delphi можно с помощью события OnPreviewClick поля, на котором происходит клик, или с помощью скриптов на VCL, встроенных в FastReport. В обоих случаях нужно менять значение поля в зависимости от текущего состояния и обновлять отчет после изменения значения.

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

Материал описывает, как в FastReport с помощью Delphi и Object Pascal скрывать или показывать значения в столбце при клике на них.


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

Получайте свежие новости и обновления по 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:25:58/0.0035991668701172/0