Вывод выделенных записей

отредактировано 06:24 Раздел: FastReport 3.0
Есть отчет. Данные берутся из датасета. Есть ли возможность вывода части записей (например выделенных записей). Т.е. контроль попадания записи в отчет. Или только через userdataset с организацией навигации ongetvalue и т.п.

Комментарии

  • отредактировано April 2005
    Понятие "выделенные записи" существует для таблицы (DBGrid). FR работает с датасетами.
  • отредактировано April 2005
    Я понимаю, потому и пишу контроль попадания записи в отчет, или формирование отчета "вручную". Т.е. пробег по нужным записям например.
    Если такого способа нет ИМХО необходимо его добавить ;) что-то типа свойства OnReportRecordAdd.
    А то приходится сначала пробегать по выделенным записям, формировать новый запрос с in (PK) переоткрывать датасет с данным условием, формировать отчет по всем записям, возвращать датасет в исходное состояние.
  • отредактировано 06:24
    Событие OnBeforePrint не устраивает?
  • отредактировано 06:24
    Onbeforeprint возникает при перед формированием каждой записи? тогда устраивает. Я думал перед формированием отчета.
  • отредактировано 06:24
    Перед формирование каждого компонента отчета.
    Вам, например, нужно перехватывать только определенный бенд и по условию делать его видимым или невидимым.
  • отредактировано April 2005
    Т.е. тогда получается что для моего датабэнда событие вызовется N раз по числу записей?
    Да нет вроде при работе с бэндом (visible true/false)
    записи вообще не выводятся.
  • отредактировано April 2005
    Значит пишем в beforePrint отчета:
     function findbookmark(BM:string):boolean;
       var i:integer;
      begin
        result:=Fbookmarklist.IndexOf(BM)<>-1;
      end;
    begin
     if Fbookmarklist.count>0 then
      if (sender is Tfrxdataband) then
       Tfrxdataband(sender).Visible:=
       findbookmark(TfrxDBdataset(Tfrxdataband(sender).dataset).DataSource. DataSet.Bookmark);
    end;
    
    Если выделена первая запись и любое количество последующих в любом порядке - все ок.
    Если первая не выделена - не выводится ни одного датабэнда
    такое впечатление, что FR если первый датабэнд с первой строкой данных не виден остальные тоже не показывает. ;)
    ЗЫ отчет стандартный простой - один датабэнд и несколько header/footer

Оставить комментарий

Многофункциональный текстовый редактор. Чтобы отредактировать стиль параграфа, нажмите TAB, чтобы перейти к меню абзаца. Там вы можете выбрать стиль. По умолчанию не выбран ни один стиль. Когда вы выберете текст, появится встроенное меню форматирования. Нажмите TAB, чтобы войти в него. Некоторые элементы, такие как многофункциональные вставки ссылок, картинок, индикаторов загрузки и сообщений об ошибок могут быть вставлены в редактор. Вы можете перемещаться по ним, используя стрелки внутри редактора и удалять с помощью клавиш delete или backspace.