Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Access Новый топик    Ответить
 Странное поведение при печати...  [new]
re500c
Member

Откуда: Москва
Сообщений: 54
Здравствуйте.
Весьма странное поведение Access наблюдаю уже второй день подряд (и видимо буду наблюдать дальше если ничего не предпринять) при выводе печати отчета на печать.

Для этого я пользуюсь следующим методом:
DoCmd.SelectObject acReport, <имя_моего_отчета>
DoCmd.Printout all

(такой метод используется для того чтобы отчет сформировался в фоне и вывелся на печать, не моргая окнами)

До недавнего времени все работало на ура, пока однажды вместо отчета на печать стали выводиться формы (причем не обязательно текущая) а какие то несуществующие, которые были когда-то но их уже нет физически :)
Такое ощущение что SelectObj или PrintOut что-то где то запомнили и жестко пытаются реализовать любыми методами.
Вопрос: Как это что-то и где-то обнулить, чтобы все таки на печать выводился отчет выбранный в SelectObj?

Сейчас как workaround использую метод открытие отчета на предварительный просмотр и далее через кнопки печать отправляю задание на печать.
Спасибо.
26 янв 06, 14:12    [2290412]     Ответить | Цитировать Сообщить модератору
 Re: Странное поведение при печати...  [new]
Владимир Саныч
Member

Откуда: Израиль (причем это 1 человек, а не 2 => прошу на ты)
Сообщений: 40414
Похоже, что база испортилась. Если сделать Repair & Compact, то как минимум исчезнут призраки стертых объектов.
26 янв 06, 14:42    [2290558]     Ответить | Цитировать Сообщить модератору
 Re: Странное поведение при печати...  [new]
Alexus12
Member

Откуда:
Сообщений: 2868
вам нужна печать БЕЗ предпросмотра?
так посмотрите внимательно параметры команды, которая выводит отчет на предпросмотр!

сравните:

DoCmd.OpenReport stDocName, acNormal

DoCmd.OpenReport stDocName, acPreview
26 янв 06, 14:46    [2290585]     Ответить | Цитировать Сообщить модератору
 Re: Странное поведение при печати...  [new]
re500c
Member

Откуда: Москва
Сообщений: 54
дело в том что
DoCmd.OpenReport stDocName, acNormal
вызовет диалоговое окно принтера о выборе принтера, количества копий и тд, а функция PrintOut выполняет все сама. То есть я сам задал ей уже заренее чего и сколько чтоб пользователя не отвлекать на это.

Чем еще меня привлекает такая инструкция
DoCmd.SelectObject acReport, <имя_моего_отчета>
DoCmd.Printout all
так это тем, что у меня главная форма открыта в развернутом виде, и при вызове данного кода форма остается не тронутой, а все остальные методы обязательно форму заденут и она уже не будет в развернутом состоянии, что нежелательно, тк форма правильно выглядит только в развернутом виде!

А с чего это так базу переклинило?
все что я сделал, так это сначала открыл отчет на preview а потом закрыл открывшийся отчет и нажал на кнопку с кодом который написан выше... все - еачлись такие глюки, и причем эта ситуация вопроизвелась на другом компе один в один...

попробую repair сделать, но что то это не к добру :)
26 янв 06, 15:17    [2290741]     Ответить | Цитировать Сообщить модератору
 Re: Странное поведение при печати...  [new]
Владимир Саныч
Member

Откуда: Израиль (причем это 1 человек, а не 2 => прошу на ты)
Сообщений: 40414
re500c
А с чего это так базу переклинило?

Microsoft, sir!
26 янв 06, 16:15    [2291002]     Ответить | Цитировать Сообщить модератору
 Re: Странное поведение при печати...  [new]
re500c
Member

Откуда: Москва
Сообщений: 54
Repair & Compact не помогает...
есть еще мысли?
26 янв 06, 19:34    [2292037]     Ответить | Цитировать Сообщить модератору
 Re: Странное поведение при печати...  [new]
Владимир Саныч
Member

Откуда: Израиль (причем это 1 человек, а не 2 => прошу на ты)
Сообщений: 40414
Импорт всех объектов в новую базу.
26 янв 06, 19:50    [2292083]     Ответить | Цитировать Сообщить модератору
 Re: Странное поведение при печати...  [new]
re500c
Member

Откуда: Москва
Сообщений: 54
импортировал все в новую базу
та же петрушка...


PrintOut чего-то вытворяет не то... чего то ему нужно. Даже с таким синтаксисом он печатает те формы, которые были недавно открыты
DoCmd.SelectObject acReport, "nakladnaya_rur"
DoCmd.PrintOut acPages, , , , nakl_rub_nds_kol
DoCmd.close acReport, "nakladnaya_rur", acSaveNo


Я в шоке...
26 янв 06, 21:41    [2292330]     Ответить | Цитировать Сообщить модератору
 Re: Странное поведение при печати...  [new]
Karfaqen
Member

Откуда:
Сообщений: 7010
re500c
DoCmd.PrintOut acPages, , , , nakl_rub_nds_kol
Может ваша "петрушка" из-за того, что вы задаете режим печати по страницам, а номера страниц при этом не указываете? Сам не пробовал, но в справке вообще-то про второй и третий аргумент сказано:
MS Help - PrintOut
Данный аргумент является обязательным, если в аргументе распечатать задана константа acPages.
26 янв 06, 21:54    [2292360]     Ответить | Цитировать Сообщить модератору
 Re: Странное поведение при печати...  [new]
re500c
Member

Откуда: Москва
Сообщений: 54
Karfaqen
re500c
DoCmd.PrintOut acPages, , , , nakl_rub_nds_kol


я пробовал и параметр acPrintAll - такой же эффект
26 янв 06, 22:54    [2292488]     Ответить | Цитировать Сообщить модератору
 Re: Странное поведение при печати...  [new]
Karfaqen
Member

Откуда:
Сообщений: 7010
re500c
стали выводиться формы ... какие то несуществующие, которые были когда-то но их уже нет физически :) ... импортировал все в новую базу та же петрушка...
То есть, выходит, теперь печатает даже не "формы, которые были когда-то", а и те, которых никогда не было в базе? Окаянные сусеки генетической памяти дисковых кластеров и фантомные боли безвинно убиенных форм... У вас там не петрушка, а бесовщина прям какая-то ;)
27 янв 06, 08:29    [2292936]     Ответить | Цитировать Сообщить модератору
 Re: Странное поведение при печати...  [new]
re500c
Member

Откуда: Москва
Сообщений: 54
не... печатает какие то снапшоты с форм которые были...
ну например у меня на форме есть выбор месяца и года.. так вот я когда то выбирал конкретный месяц и год - так вот теперь прога постоянно печатает эту форму с выбранным месяцем и годом, который я уже давно не выбираю...

мистика и только.
27 янв 06, 09:43    [2293110]     Ответить | Цитировать Сообщить модератору
 Re: Странное поведение при печати...  [new]
ТеньОтцаГамлета
Guest
Никакой мистики. :-)
Просто команда PrintOut печатает тот объект на котором фокус!
Вы скрыли, например, окно БД - и теперь ваш СелектОбжект бесполезен, ибо действителен только в окне БД - хоть выделяйте, хоть нет. А команда ПринтАут будет печатать фокусную форму, т.е. ту, которая была выделена в окошке БД давным-давно или находится на экране с текущим фокусом. Вот таким макаром, понимаешь...

Я лично открываю отчёт в скрытом режиме (иногда свёрнутом в иконку, ибо при команде печати эта редиска всё равно моргает на вест экран), печатаю с параметрами, закрываю. Т.е. просто подскакивают иконки в окне проги.

А вообще удивительно, как некоторые элементарные вещи в Аксе надо делать через одно место.

имхо.
27 янв 06, 13:34    [2294527]     Ответить | Цитировать Сообщить модератору
 Re: Странное поведение при печати...  [new]
Karfaqen
Member

Откуда:
Сообщений: 7010
ТеньОтцаГамлета
Вы скрыли, например, окно БД - и теперь ваш СелектОбжект бесполезен, ибо действителен только в окне БД - хоть выделяйте, хоть нет.
Почему же бесполезен? Автор ведь выделяет свой отчет не в окне БД:
re500c
DoCmd.SelectObject acReport, "nakladnaya_rur"
Тут параметр InDatabaseWindow не задан - очевидно, автор ставит таким образом фокус на отчет, который у него уже был открыт ранее. И делает он это именно затем, чтоб PrintOut напечатал его, как объект на котором стоит фокус. Вот только фокус у него получается круче чем у Копперфильда... :)
27 янв 06, 13:52    [2294668]     Ответить | Цитировать Сообщить модератору
 Re: Странное поведение при печати...  [new]
ТеньОтцаГамлета
Guest
2 Karfaqen:

Замечание верное! :-) InDatabaseWindow (по умолчанию, кажется False) проморгал...

InDatabaseWindow Optional Variant. Use True to select the object in the Database window. Use False (0) to select an object that's already open. If you leave this argument blank, the default (False) is assumed.

Может всё дело в этом? Отчёт не открыт!

Но в целом у меня была та же петрушка с печатанием фиг знает чего по тому-же принципу. Пробовал задержки, DoEvents... Плюнул. Переделал на явное открытие отчёта acIcon, передачу ему фокуса, выгон на принтер, закрытие и т.п. А до этого боролся с мусором на принтере - то форма вылезет, то ещё чего...
27 янв 06, 14:17    [2294816]     Ответить | Цитировать Сообщить модератору
 Re: Странное поведение при печати...  [new]
re500c
Member

Откуда: Москва
Сообщений: 54
ТеньОтцаГамлета
Переделал на явное открытие отчёта acIcon, передачу ему фокуса, выгон на принтер, закрытие и т.п. А до этого боролся с мусором на принтере - то форма вылезет, то ещё чего...

как переделал - можно взглянуть?


Karfaqen
Тут параметр InDatabaseWindow не задан - очевидно, автор ставит таким образом фокус на отчет, который у него уже был открыт ранее. И делает он это именно затем, чтоб PrintOut напечатал его, как объект на котором стоит фокус. Вот только фокус у него получается круче чем у Копперфильда... :)

ага, и самое смешное что иногда появляются формы которые открывал вчера или позавчера и компьютер после этого выключался и вроде как память должна была очиститься...
27 янв 06, 14:36    [2294943]     Ответить | Цитировать Сообщить модератору
 Re: Странное поведение при печати...  [new]
ТеньОтцаГамлета
Guest
Можно, гляди. :-)
Снапшот не очень, но копипастить в кашу и тем более писать руками не хотелось.
27 янв 06, 14:56    [2295098]     Ответить | Цитировать Сообщить модератору
 Re: Странное поведение при печати...  [new]
ТеньОтцаГамлета
Guest
вах, и где же картинка?

К сообщению приложен файл. Размер - 0Kb
27 янв 06, 14:57    [2295112]     Ответить | Цитировать Сообщить модератору
 Re: Странное поведение при печати...  [new]
Karfaqen
Member

Откуда:
Сообщений: 7010
re500c
ага, и самое смешное что иногда появляются формы которые открывал вчера или позавчера и компьютер после этого выключался и вроде как память должна была очиститься...
Может, это принтер себе тайный буфер завел? ;) А когда просто из окна БД открываете отчет в Preview, а потом на принтер его посылаете - сразу все хорошо и то что надо?
27 янв 06, 14:58    [2295120]     Ответить | Цитировать Сообщить модератору
 Re: Странное поведение при печати...  [new]
re500c
Member

Откуда: Москва
Сообщений: 54
Karfaqen
re500c
ага, и самое смешное что иногда появляются формы которые открывал вчера или позавчера и компьютер после этого выключался и вроде как память должна была очиститься...
Может, это принтер себе тайный буфер завел? ;) А когда просто из окна БД открываете отчет в Preview, а потом на принтер его посылаете - сразу все хорошо и то что надо?

если через Preview - то все печатается как нужно, я в принципе и пользуюсь пока этим методом пока не разберусь что случилось с предыдущим методом. И ведь раньше пару дней он проработал, и тут бах и все..



ТеньОтцаГамлета
Можно, гляди. :-)

Спасибо. Какие то навороченные у тебя процедуры для печати :) . Я пока до таких не дорос, но видимо придется теперь надстраивать проверки всяческие типа загрузилось или нет, сформировалось или нет... брррр. Может в Office12 будет немного полегче с энтим делом...
27 янв 06, 15:07    [2295171]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft Access Ответить