Отбор записей по условию

отредактировано 16:32 Раздел: FastReport 3.0
Добрый день!

Возник вопрос. На MasterBand стоит условие, если дата в БД не попадает в указанный диапазон, введенный пользователем, тогда MasterBand невидим и наоборот. В PageFooter'е подсчитывается количество записей в MasterBand. И вот что интересно, число записей, показанное в PageFooter'е верное, а в MasterBand некоторых записей нет, просто пропущенные строки. С чем это связано?
Условие на MasterBand такое:
if (<MySet."Data">>=StartDate) and (<MySet."Data"><=EndDate) then MasterBand1.Visible:=True else MasterBand1.Visible:=False

Комментарии

  • отредактировано 16:32
    Разобрался. FR нумерует строки сквозным образом, т.е. видим MasterBand или невидим, порядковый номер он имеет. Получается следующее:
    Строка 1
    Строка 2
    Строка 4

    Строка 3 невидима, так и должно быть, но порядковый номер ей почему-то дан. Как этого избежать?
  • LexLex
    отредактировано 16:32
    Добавь скриптовую переменнцю и в событии MasterBand1OnAfterPrint инкреминтируй её по томуже условию что и видимость бенда а в футере выводи ее.

    Либо поставь where в запросе
  • отредактировано 16:32
    Так и делаю, но почему-то нумерация начинается не с 1, а с 18.
    Хотя явно обнуляю переменную.
    Set('LineNumber',0); Делаю трассировку, переменная обнуляется, затем правильно инкрементируется, а в просмотре отчета нумерация с 18.
  • LexLex
    отредактировано 16:32
    а у тебя случайно не двухпроходный отчет?

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

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