нужно передать управление процедуре печати после остановки отчета пользователем по ESC.
это связано в длительностью выполнения. пользователь хочет посмотреть часть выполненного отчета, а потом запустить отчет полностью.
(0) Вываливай результат запроса в таблицу значений частями по N строк. Но нажатию ESC - прекращай формировать отчет, но таблица-то заполнена - ее и печатай. Думаю, что пользователю не влом будет жмакнуть кнопку Печать.
(5) Странная у тебя логика. Пользователь запустил отчет, и ты думаешь, что каждое его нажатие ESC - желание пользователя увидеть что-то напечатанное?
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс