|
Как "отловить" печать отчёта
|
|||
---|---|---|---|
#18+
Собственно вопрос: как (например, через тот же RL) узнать, что отчёт отправлен на печать? Неважно, на виртуальный или реальный принтер, неважно (хоть и желательно), сколько копий - но хоть сам факт посыла его на печать определить? Смотрел OutputPage, но так и не дошло, возможно ли вообще (и если да, то как - не через nDeviceType случаем?) определить, посылает он страницу на превью или на принтер. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2009, 18:32 |
|
Как "отловить" печать отчёта
|
|||
---|---|---|---|
#18+
tanglirСобственно вопрос: как (например, через тот же RL) узнать, что отчёт отправлен на печать? Неважно, на виртуальный или реальный принтер, неважно (хоть и желательно), сколько копий - но хоть сам факт посыла его на печать определить? Смотрел OutputPage, но так и не дошло, возможно ли вообще (и если да, то как - не через nDeviceType случаем?) определить, посылает он страницу на превью или на принтер. Самое простое, это запретить из Preview печатать! Тогда у вас будет полный контроль над этим процессом. С уважением, Алексей ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2009, 18:59 |
|
Как "отловить" печать отчёта
|
|||
---|---|---|---|
#18+
tanglir, Сначала нужно убрать кнопку принтера из REPORT PREVIEW. Как это сделать, смотри, например, здесь: http://support.microsoft.com/kb/317466/ В программе сначала пишем REPORT FORM PRINREPORT PREVIEW Затем через MESSAGEBOX() или как еще, определяемся с выводом на печать. Если да, то пишем REPORT FORM PRINREPORT TO PRINTER PROMPT NOCONSOLE Число копий задайте сами, и зациклите последнюю команду через FOR - ENDFOR В коде вместо PRINREPORT ввести имя своего репорта PROMPT использовать если принтеров много, и нужно его выбрать ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2009, 13:05 |
|
Как "отловить" печать отчёта
|
|||
---|---|---|---|
#18+
igorbik, Здесь http://www.tek-tips.com/viewthread.cfm?qid=1575325&page=1 и в ссылке внутри этой страницы есть еще несколько неплохих методов решения проблемы, в том числе и для 9-ки. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2009, 13:35 |
|
Как "отловить" печать отчёта
|
|||
---|---|---|---|
#18+
igorbik, Спасибо, буду смотреть. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2009, 18:25 |
|
Как "отловить" печать отчёта
|
|||
---|---|---|---|
#18+
Все гораздо проще. Вот кусок из рабочей проги. Идея не моя, кто то подсказал. Где то создаем функцию Код: plaintext 1. 2. 3. 4. 5. 6.
потом при печати делаем так Код: plaintext 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2009, 09:57 |
|
Как "отловить" печать отчёта
|
|||
---|---|---|---|
#18+
Прежде всего следует понять, что факт отправки отчета на печать вовсе не означает, что отчет будет распечатан. Может принтер не включен, может бумагу зажевало, может чернила (тонер) кончились... Да мало ли... Другими словами, Вы всего-лишь отслеживаете только и исключительно факт отправки на печать, но не собственно печать. Для отслеживания этого факта есть функция SYS(2040). Она введена в версии VFP8. Для ранних версий FoxPro следует опираться на тот факт, что при отправки отчета на печать обязательно появится окно "Printing...". Вот факт его появления и можно отловить, как показал asphalt . В версии VFP9 вывод этого окна может быть подавлен при печати отчета. В обоих случаях, анализ SYS(2040) или появление окна "Printing..." необходимо отлавливать изнутри самого отчета. В его методах или выражениях. Поскольку анализ будет производится по окончании работы отчета, но надо озаботиться передачей полученного значения во вне отчета. Для этого можно использовать переменные с областью видимости Private Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8.
В самой первой (сверху в дизайнере отчета) полосе отчета дважды щелкаем мышкой по серой полосе обозначающей границу этой полосы и в окошке "On entry" пишем такой код Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2009, 18:55 |
|
Как "отловить" печать отчёта
|
|||
---|---|---|---|
#18+
ВладимирМ, 10x за детальный ответ! PS. Половину из вышенаписанного я знал, только вот как применить, не дотумкал. PPS. "факт отправки отчета на печать вовсе не означает, что отчет будет распечатан." Да меня, собственно, такие "тонкости" :) и не интересуют. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2009, 22:29 |
|
|
start [/forum/topic.php?fid=41&fpage=112&tid=1585869]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
73ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
71ms |
get tp. blocked users: |
2ms |
others: | 12ms |
total: | 205ms |
0 / 0 |