07.05.2009, 21:08 | #1 |
Участник
|
Добрый день.
У меня есть вопрос о функции CurrReport.Break. Я пишу утилиту, которая работает с отчетами навижена. Проблема в том, что CurrReport.BREAK, в отличии от официального описания в хэлпе, не полностью прерывает датаайтем, а выполняет OnPre(Post)Section триггеры его футера. Не знаю причину этого, но, оно не страшно и вполне управляемо. Но, по каким-то причинам ИНОГДА он печатает эти футеры, а иногда нет. И это уже большая проблема. потому что я не могу предсказать когда футер прерванного датаайтема будет напечатан, а когда нет. Например - отчеты 106 и 108 (3.60 и 4.0) Для начала я проверил все свойства объектов, ничего необычного. Потом я поместил дамми код в OnPreSection и OnPostSection футеров перываемого датаайтема и продебажил репорт. Результат удручающий. После вызова брейк код всегда джампает в ОнПре триггер, выполняет его содержимое, затем джампает в ОнПост и выполяет его содержимое. И без какой-либо разницы в ходе выполнения, иногда печатает футер, а иногда нет. При этом, разработчики отчета явно умышленно использовали эту особенность, потому что оба отчета стройные и всегда выполняются одинаково, значит, определяющий фактор есть, но я просто никак не могу его найти. Собственно, все что нужно, это способ определения из кода - напечатается этот футер или нет. Если точнее, то необходимо знать правило по которому навижен выбирает когда печатать, а когда нет эти футеры. Буду благодарен за любую помощь, будь то ответ или хотябы зацепка для поиска. Да, чуть не забыл, на CurrReport.Showoutput брейк не влияет, он может быть тру, а футер не напечатается. |
|