powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Проблема с выводом на печать
104 сообщений из 104, показаны все 5 страниц
Проблема с выводом на печать
    #40043991
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!
Прикупила наша контора классный принтер, который может печатать с дух сторон, решил переделать базу, под двухстороннюю печать. Да не тут то было, печатает первый лист нормально, а второй переворачивает по ВЕРТИКАЛИ, а надо по ГОРИЗОНТАЛИ.
По сему нужна помощь гуру, код прилагаю

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Private Sub Кн_Печать_1_Click()
 With Forms(Договор_ГСК_2х).Printer
 .Copies = 2
 .Orientation = acPRORLandscape
 .Duplex = vbPRDPHorizontal
 .PaperBin = acPRBNAuto
 .PaperSize = acPRPSA4
 .PrintQuality = acPRPQMedium
 End With
     DoCmd.PrintOut acPages, 1, 2, acHigh, , True
End Sub



P.S.: Причём на ".Copies = 2" реагирует, а на основное из за чего вся заморока ".Duplex = vbPRDPHorizontal" нет, и ещё если я в нвстройках принтера делаю переворот п огоризонтали то тогда печатает, но надо сразу жёстко прописать, ибо - НАДО.
...
Рейтинг: 0 / 0
Проблема с выводом на печать
    #40044055
alecko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Wawan2005, если не реагирует, значит принтер по умолчанию другой.
...
Рейтинг: 0 / 0
Проблема с выводом на печать
    #40044063
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alecko,

на печать отправляет, количество копий тоже реагирует, размер бумаги реагирует, а разварачивать не хочет, принтер "HP LaserJet Pro M428f-M429f UPD PS"
...
Рейтинг: 0 / 0
Проблема с выводом на печать
    #40044069
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пробовал ещё вот так:

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
Private Sub Кн_Печать_1_Click()
 DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
    Dim stDocName As String
    stDocName = "Договор_ГСК_2х"
    DoCmd.OpenReport stDocName, acNormal, Printer.Duplex = 2
    DoCmd.PrintOut acPages, 1, 2, acHigh, 1, True
End Sub


ругается на "DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70", если выкидываю эту строчку то ругается на "DoCmd.OpenReport stDocName, acNormal ', Printer.Duplex = 2"
То есть этот метод вообще не печатает-(
...
Рейтинг: 0 / 0
Проблема с выводом на печать
    #40044073
Eugene-LS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Wawan2005
Пробовал ещё вот так:

Тут смотрели?
...
И по умолчанию тот принтер - точно ?
...
Рейтинг: 0 / 0
Проблема с выводом на печать
    #40044087
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Eugene-LS,

Смотрел, но ничего там не понял, там зачем то считают количество страниц и т.д., а по поводу принтера у меня в коде прописано Me.Printer - то принтер по умолчанию, как я понимаю.

И к стати тот кусок кода печати я выдернул из другой своей базы, там изумительно печатает, а в этой не хочет, проверил "Reference" все DLLшки одинаковые.
...
Рейтинг: 0 / 0
Проблема с выводом на печать
    #40044126
alecko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Wawan2005, vb PRDPHorizontal(?) acPRDPHorizontal
...
Рейтинг: 0 / 0
Проблема с выводом на печать
    #40044168
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alecko,

ни так ни так не работает
...
Рейтинг: 0 / 0
Проблема с выводом на печать
    #40044192
alecko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Wawan2005, давненько не настраивал принтеры, посмотрел код, пример выбора ниже
Код: vbnet
1.
2.
 If prtDuplex = acPRDPVertical Then .Orientation = acPRORLandscape Else .Orientation = acPRORPortrait
.Duplex = prtDuplex
...
Рейтинг: 0 / 0
Проблема с выводом на печать
    #40044293
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alecko,

Ругается не работает.
...
Рейтинг: 0 / 0
Проблема с выводом на печать
    #40044327
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ругается на ".Orientation ="
...
Рейтинг: 0 / 0
Проблема с выводом на печать
    #40044378
alecko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Wawan2005,
это ж пример - его нужно самостоятельно адаптировать к своей программев примере при
.Orientation = acPRORLandscape
использовалось
.Duplex = acPRDPVertical

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Private Sub Кн_Печать_1_Click()
 With Forms(Договор_ГСК_2х).Printer
 .Copies = 2
 .Orientation = acPRORLandscape
 .Duplex = acPRDPVertical ' предполагалось что поменяете здесь
 .PaperBin = acPRBNAuto
 .PaperSize = acPRPSA4
 .PrintQuality = acPRPQMedium
 End With
     DoCmd.PrintOut acPages, 1, 2, acHigh, , True
End Sub


у меня там программа универсальная - приходилось в одной пачке из 250 листов печатать и дуплексом и в альбомной ориентации и из разных лотков, учитывается и поле для подшивки и пр.
...
Рейтинг: 0 / 0
Проблема с выводом на печать
    #40044421
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alecko,

Попробовал.
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Private Sub Кн_Печать_1_Click()
 With Forms(Договор_ГСК_2х).Printer
 .Copies = 2                           ''К стати это тоже перестало работать, печатает по одной копии
 .Orientation = acPRORLandscape
 .Duplex = acPRDPHorizontal            ''acPRDPVertical  предполагалось что поменяете здесь поменял и туда и суда, не помогло
 .PaperBin = acPRBNAuto
 .PaperSize = acPRPSA4
 .PrintQuality = acPRPQMedium
 End With
     DoCmd.PrintOut acPages, 1, 2, acHigh, , True
End Sub



Такое ощущение, что на With вообще не реагирует -(
А из-за принтера "HP LaserJet Pro M428f-M429f UPD PS" может быть данный геморрой?

Попробовал:
Код: sql
1.
With Me.Form.Printer

не помогло
...
Рейтинг: 0 / 0
Проблема с выводом на печать
    #40044422
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alecko,

И вот ещё не понятно почему форма "Пустая" может ещё в этом причина? или это так и должно быть?
...
Рейтинг: 0 / 0
Проблема с выводом на печать
    #40044428
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Wawan2005
Код: sql
1.
With Forms("Договор_ГСК_2х").Printer

отакота надо
...
Рейтинг: 0 / 0
Проблема с выводом на печать
    #40044432
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Панург
отакота надо
это же коллекция. объекты получаем либо по ключу (текстовый), либо по порядковому номеру

в целях повышения образованности - а кто такой будет этот Иван Фёдорович Крузенштерн Объект Forms (Access) ? (с)
...
Рейтинг: 0 / 0
Проблема с выводом на печать
    #40044463
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Панург,

Ковычки поставил, показывать "Empty" перестало, но всё равно на копии и дуплекс не реагирует

P.S.:
Код: vbnet
1.
.Orientation = acPRORLandscape   '  acPRORPortrait   acPRORLandscape 


работает переворачивает страницу, остальное не хотит-(
...
Рейтинг: 0 / 0
Проблема с выводом на печать
    #40044474
alecko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Wawan2005, копии Вы в Docmd.PrintOut задаете
...
Рейтинг: 0 / 0
Проблема с выводом на печать
    #40044476
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alecko,
Вот так

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Private Sub Кн_Печать_1_Click()

 With Forms("Договор_ГСК_2х").Printer
 .Copies = 2
 .Orientation = acPRORLandscape   '  acPRORPortrait   acPRORLandscape
 .PrintQuality = acPRPQMedium
 .PaperBin = acPRBNAuto
 .PaperSize = acPRPSA4
 .Duplex = acPRDPHorizontal  ' acPRDPHorizontal  acPRDPVertical

 End With
     
     DoCmd.PrintOut ' acPages, 1, 2, acHigh, , True

End Sub



и вот так пробовал

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Private Sub Кн_Печать_1_Click()

 With Forms("Договор_ГСК_2х").Printer
 .Copies = 2
 .Orientation = acPRORLandscape   '  acPRORPortrait   acPRORLandscape
 .PrintQuality = acPRPQMedium
 .PaperBin = acPRBNAuto
 .PaperSize = acPRPSA4
 .Duplex = acPRDPHorizontal  ' acPRDPHorizontal  acPRDPVertical

 End With
     
     DoCmd.PrintOut acPages, 1, 2, acHigh, , True

End Sub

...
Рейтинг: 0 / 0
Проблема с выводом на печать
    #40044515
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Попробовал на другой принтер (тоже поддерживает двустороннюю печать Canon IP7240), результат тот же-(
...
Рейтинг: 0 / 0
Проблема с выводом на печать
    #40044529
alecko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а так?
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Private Sub Кн_Печать_1_Click()
dim i as long
 With Me.Printer
 .Orientation =acPRORPortrait
 .PrintQuality = acPRPQMedium
 .Duplex = acPRDPHorizontal 
 End With
    for i=1 to 2 
     DoCmd.PrintOut acPrintAll
next i
End Sub


или так?
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
Private Sub Кн_Печать_1_Click()
const i as long=2
 With Me.Printer
 .Orientation =acPRORPortrait
 .PrintQuality = acPRPQMedium
 .Duplex = acPRDPHorizontal 
 End With
     DoCmd.PrintOut acPrintAll, , , , i
End Sub


с docmd.Printout - были проблемы ,в том числе и с копиями, но что там было - не помню уже, однако копии печатал по первому способу, когда не удавалось отказаться от использования этой функции.
все настройки у меня для отчетов - формы не печатал, может у них какая-то особенность есть-типа печать формы из формы нельзя... тут не смогу помочь в эту тему не влезал.
...
Рейтинг: 0 / 0
Проблема с выводом на печать
    #40044548
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alecko,

Количество копий печатает (теперь) но это не решило основную проблему ".Duplex = acPRDPHorizontal"
...
Рейтинг: 0 / 0
Проблема с выводом на печать
    #40044562
alecko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Wawan2005, да, забыл поправить
Код: vbnet
1.
.duplex=acPRDPVertical 


у меня только такая версия.
...
Рейтинг: 0 / 0
Проблема с выводом на печать
    #40044647
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alecko,

попробую в отчёт переделать, и на нём проверить, будет работать или нет, мож правда это на форме не работает
...
Рейтинг: 0 / 0
Проблема с выводом на печать
    #40044719
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Проверил в Отчёте, тоже самое.
Мож у Вас какие ещё библиотеки подцеплены, а у меня нет поэтому и не хочет?
Если не трудно свою киньте.
...
Рейтинг: 0 / 0
Проблема с выводом на печать
    #40044733
alecko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Wawan2005,
проект большой и старый только модулей класса в районе 50 - у вас все нормально, эти модули печати у меня в модуле класса , вот здесь 2 программки для печати и для иллюстрации одна программка печатающая, в зависимости от отчета настройки меняются
ничего не редактировал - представляю по принципу как есть
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
Private v1d%, Otb0r%, Rep0rtName$

Private Sub PrtSv(rptname As String, prtDuplex As Long, Kiosk As Integer, LefM As Integer, TopM As Integer, vibor As Boolean, Lotok As Long, ByVal PrintQ As Long, Argument%, Optional fltr$ = "[Kiosk]=")
  If vibor Then DoCmd.OpenREport rptname, acViewPreview, , fltr & Kiosk, , Argument Else DoCmd.OpenREport rptname, acViewPreview, , , acHidden, Argument
With Reports(rptname).Printer
    If prtDuplex = acPRDPVertical Then .Orientation = acPRORLandscape Else .Orientation = acPRORPortrait
        .PaperSize = acPRPSA4
        .LeftMargin = LefM
        .TopMargin = TopM
        .Duplex = prtDuplex
        .PrintQuality = PrintQ
        .PaperBin = Lotok
End With
DoCmd.OpenREport rptname, acViewNormal
DoCmd.Close acReport, rptname, acSaveNo
End Sub
Private Sub CommonPrint()
Dim x%, i%, z%, prt As Report
x = frm.Copyes
    Set prt = Reports.Item(Rep0rtName)
    With prt.Printer
        .Orientation = acPRORPortrait
        .PaperSize = acPRPSA4
        .PrintQuality = acPRPQHigh
    End With
     For z = 1 To x
        prt.Application.DoCmd.PrintOut acPrintAll
    Next z
     DoCmd.Close acReport, Rep0rtName
Set prt = Nothing

End Sub

Private Sub bPrint_Click()
Dim Lotok&, Dupl&, Dup As Boolean
 Lotok = frm.fldSpis1: Dup = frm.dflg1

If Otb0r = 1 Then frm.Dirty = False
Select Case Rep0rtName
Case "RepRaspr4_Igr", "rptActGroup"
    If Otb0r = 1 Then PrintInvoices Else CommonPrint
Case "RptRev1", "rptPriceKiosks2"
'  DoCmd.Close acReport, rptname
  If Dup Then Dupl = acPRDPHorizontal Else Dupl = acPRDPSimplex
    Call PrtSv(Rep0rtName, Dupl, 1, 0, 0, False, Lotok, acPRPQDraft, v1d)
Case "RptRasklad"
  Dupl = acPRDPVertical ' пока нет необходимости такой печатать альбомы на одной стороне, а когда надо, то придется ориентацию указывать явно
    Call PrtSv(Rep0rtName, Dupl, 1, 150, 100, False, Lotok, acPRPQDraft, v1d)
Case "RptRev2"
  If Dup Then Dupl = acPRDPHorizontal Else Dupl = acPRDPSimplex
    Call PrtSv(Rep0rtName, Dupl, 0, 2200, 300, False, Lotok, acPRPQMedium, v1d)
Case Else
    CommonPrint
End Select
End Sub


как видно Docmd.Printout используется только для печати в обычном виде - даже копии ему не доверяются, хотя настройка такая в нем есть, а печать с настройками происходит по другому (вызов отчета в нормальном виде).
...
Рейтинг: 0 / 0
Проблема с выводом на печать
    #40044764
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alecko,

ругается на строчку "If Otb0r = 1 Then PrintInvoices Else CommonPrint" точнее "PrintInvoices"

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
Private Sub Кн_Печать_1_От_Click()
Dim Lotok&, Dupl&, Dup As Boolean
 Lotok = frm.fldSpis1: Dup = frm.dflg1

If Otb0r = 1 Then frm.Dirty = False
Select Case Rep0rtName
Case "RepRaspr4_Igr", "rptActGroup"
    If Otb0r = 1 Then PrintInvoices Else CommonPrint
Case "RptRev1", "rptPriceKiosks2"
'  DoCmd.Close acReport, rptname
  If Dup Then Dupl = acPRDPHorizontal Else Dupl = acPRDPSimplex
    Call PrtSv(Rep0rtName, Dupl, 1, 0, 0, False, Lotok, acPRPQDraft, v1d)
Case "RptRasklad"
  Dupl = acPRDPVertical ' пока нет необходимости такой печатать альбомы на одной стороне, а когда надо, то придется ориентацию указывать явно
    Call PrtSv(Rep0rtName, Dupl, 1, 150, 100, False, Lotok, acPRPQDraft, v1d)
Case "RptRev2"
  If Dup Then Dupl = acPRDPHorizontal Else Dupl = acPRDPSimplex
    Call PrtSv(Rep0rtName, Dupl, 0, 2200, 300, False, Lotok, acPRPQMedium, v1d)
Case Else
    CommonPrint
End Select
End Sub

...
Рейтинг: 0 / 0
Проблема с выводом на печать
    #40044783
alecko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Wawan2005, этой функции в примере нет.
как может быть и ещё чего - показан работающий в проекте, пример - для того чтоб сделали по подобию, взяв то, что понравится.
...
Рейтинг: 0 / 0
Проблема с выводом на печать
    #40044805
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alecko,

нееее
я его воткнул полностью. как Вы выложили так и вставил, только имя кнопки поменял
...
Рейтинг: 0 / 0
Проблема с выводом на печать
    #40044914
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alecko,

А какие у Вас библиотеки включены, как у меня или ещё что-то, может в них дело?!
...
Рейтинг: 0 / 0
Проблема с выводом на печать
    #40044958
alecko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Wawan2005, такие.
ну блин! давненько скрины не вытаскивал
...
Рейтинг: 0 / 0
Проблема с выводом на печать
    #40044987
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alecko,

А У Вас какой офис, а то чёт у меня не все библиотеки в наборе есть, а некоторые старой версии (12)
...
Рейтинг: 0 / 0
Проблема с выводом на печать
    #40044989
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот что ещё обнаружил
...
Рейтинг: 0 / 0
Проблема с выводом на печать
    #40044990
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Что бы это значило?
Причём это относится ко всем строчкам "With"
...
Рейтинг: 0 / 0
Проблема с выводом на печать
    #40045039
alecko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
программа писалась в Аксесс 2007, но сейчас у меня 13-й - поэтому библиотеки подхватились другой версии.
Wawan2005
Что бы это значило?
Причём это относится ко всем строчкам "With"

сделайте останов на End with-увидите что все нормально.
...
Рейтинг: 0 / 0
Проблема с выводом на печать
    #40045079
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alecko,

Ну да, но почему тогда не принимается системой во внимание?
а печатает с настройками "по умолчанию" принтера ?
Попробовал изменить настройки по умолчанию напечатал как надо, но нужно другие доки печатать тогда там геморрой-(
...
Рейтинг: 0 / 0
Проблема с выводом на печать
    #40045081
alecko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Wawan2005, у Гетца есть утилитка, в которой можно посмотреть что принтер поддерживает. очень помогает в самом начале знакомства с принтером.
...
Рейтинг: 0 / 0
Проблема с выводом на печать
    #40045084
Eugene-LS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Wawan2005
а печатает с настройками "по умолчанию" принтера ?

не совсем понимаю что у вас там происходит, но может вам поможет такая штука :
Модуль переустановки "принтерных" настроек всех отчетов под текущий принтер по умолчанию
авторСитуация:
.... у разработчика (отчетов), допустим был:
HP LaserJet с EconoMode = OFF, а у пользователя некий: Epson Stylus COLOR и уже EconoMode = ON
...и не смотря на это "ON" - отчеты все равно расходуют чернила "На полную катушку". (параметры печати сохраняются в отчете)

На эту тему сочинилось такое решение:

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
'--------------------------------------------------------------------
' Module    : modReportsPrinterReset
' Author    : es
' Date      : 17.01.2004
'--------------------------------------------------------------------
'Модуль ПЕРЕУСТАНОВКИ "принтерных" настроек всех отчетов
'под текущий принтер по умолчанию т.е. с настроек принтера разработчика
'на настройки принтера пользователя
'--------------------------------------------------------------------
Option Compare Database
Option Explicit

Private Type str_DEVMODE
    RGB As String * 94
End Type
'--------------------------------------------------------------------
Private Type type_DEVMODE
    strDeviceName As String * 16
    intSpecVersion As Integer
    intDriverVersion As Integer
    intSize As Integer
    intDriverExtra As Integer
    lngFields As Long
    intOrientation As Integer
End Type

Public Sub esResetAllReportsToDefPrinter()
'Смена у всех отчетов настроек принтера с "зашитых внутри отчета"
' на текущий принтер по умолчанию и его настройки
' затирает только данные по принтеру - поля и ориентация остаются прежними
'--------------------------------------------------------------------
Dim dbs As Database, ctr As Container, doc As Document
Dim objReport As Report
Dim OldOrientation As Integer 'Для запоминания старой ориентации _
   т.к. она (ориентация) входит в Свойство PrtDevMode отчета _
   кое собираемся переписывать по новой
    
On Error GoTo esResetAllReportsToDefPrinterErr
'Выключ. отображение процесса
    Application.Echo False
    Set dbs = CurrentDb
    Set ctr = dbs.Containers!Reports
    'цикл по всем отчетам
    For Each doc In ctr.Documents
        'открытие отчета в режиме редакции
        DoCmd.OpenReport doc.name, acViewDesign
        Set objReport = Reports(doc.name)
        
        'отображение инфы о тек. отчете в Status Bar
        SysCmd acSysCmdSetStatus, "Обрабатываю Отчет - " & doc.name
        
        'Запоминаем старую ориентацию для последующего восстановления (см. функцию ниже)...
        OldOrientation = esReportOrientationSetGet(objReport, True)
        'Зачистка данных о принтере в отчете
        objReport.PrtDevMode = Null
        objReport.PrtDevNames = Null
        'Закрытие отчета с сохранением "пустого принтера"
        DoCmd.Close acReport, doc.name, acSaveYes

        'Если до этого у отчета была ориентация LandsCape
        '   то восстанавливаем ее, причем отчет уже "берет"
        '   принтер по умолчанию, при повторном открытии
        If OldOrientation = 2 Then
            'открытие отчета в режиме редакции
            DoCmd.OpenReport doc.name, acViewDesign
            Set objReport = Reports(doc.name)
            
            'Debug.Print objReport.Name
            'Восстанавливаем LandsCape ориентацию (см. функцию ниже)
            '   если была Portrait то восстанавливать нет необходимости
            '   т.к. она уже установлена по умолчанию
            esReportOrientationSetGet objReport
            'Закрытие отчета с сохранением
            DoCmd.Close acReport, doc.name, acSaveYes
        End If
    Next doc
    SysCmd (acSysCmdClearStatus)
'Включаем отображение процесса на экране обратно
    Application.Echo True
    Exit Sub
esResetAllReportsToDefPrinterErr:
    Application.Echo True
    MsgBox "Процедура [esResetAllReportsToDefPrinter] привела к ошибке:" & vbCrLf & _
    Err.Description & vbCrLf & " Err#" & Err.Number & vbCrLf & _
    "При обработке Отчета - " & doc.name, vbCritical
End Sub

'--------------------------------------------------------------------
Private Function esReportOrientationSetGet(objCurReport As Report, _
                    Optional GetOnly As Boolean) As Integer
'Вспомогательная функция ,в зависимости от параметра GetOnly,
'ИЛИ :
'Возвращает код ориентации отчета
'   Portrait = 1
'   LandsCape= 2
'ИЛИ если GetOnly=False (по умолчанию):
'   делает ориентацию открытого отчета = LandsCape
'--------------------------------------------------------------------

Dim DevString As str_DEVMODE
Dim DM As type_DEVMODE
Dim strDevModeExtra As String

On Error GoTo esReportOrientationSetGetErr
    If Not IsNull(objCurReport.PrtDevMode) Then
        strDevModeExtra = objCurReport.PrtDevMode
        DevString.RGB = strDevModeExtra
        LSet DM = DevString
        esReportOrientationSetGet = DM.intOrientation
        'Если только задано параметром то вносим изменения в отчет
        If GetOnly = False Then
            'Меняем ориентацию  = LandsCape
            DM.intOrientation = 2
            LSet DevString = DM
            Mid(strDevModeExtra, 1, 94) = DevString.RGB
            objCurReport.PrtDevMode = strDevModeExtra
        End If
    End If
    Exit Function
esReportOrientationSetGetErr:
    If GetOnly = True Then
        strDevModeExtra = "При определении ориентации Отчета - " & _
        objCurReport.name
    Else
        strDevModeExtra = "При установке ориентации Отчета - " & _
        objCurReport.name
    End If
    MsgBox "Процедура [esReportOrientationSetGet] привела к ошибке:" & vbCrLf & _
    Err.Description & vbCrLf & " Err#" & Err.Number & vbCrLf & _
    strDevModeExtra, vbCritical
End Function



...
Рейтинг: 0 / 0
Проблема с выводом на печать
    #40045123
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Eugene-LS,

Спасибо, за вариант, выйду на работу попробую.

P.S.: А как суда при необходимости, добавить "Duplex = acPRDPHorizontal", но это после проверки.
...
Рейтинг: 0 / 0
Проблема с выводом на печать
    #40045143
Eugene-LS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Wawan2005
А как суда при необходимости, добавить "Duplex = acPRDPHorizontal", но это после проверки.

Резервную копию приложения сделать предварительно не забудьте - модуль старый.
...
Модуль "обнулит" настройки на конкретный принтер в отчётах, и перепишет на тек. принтер по умолчанию.
А нужное - потом добавите ...

Надеюсь поможет, но не факт.
Что то у вас там "не так", ни как ни пойму что ...
Бывает ...
...
Рейтинг: 0 / 0
Проблема с выводом на печать
    #40045299
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alecko,

А что за утилитка, не подскажите имя, я бы её пошукал по просторам инета!
...
Рейтинг: 0 / 0
Проблема с выводом на печать
    #40045379
alecko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Wawan2005,
у гетца - 9-я глава 1-й том.
приложение к главе 9
...
Рейтинг: 0 / 0
Проблема с выводом на печать
    #40045645
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alecko,

Спасибо, бегло глянул, там ППЦ-))), попробую разобраться.
P.S.:Пока нет времени, пульт охраны лёг, подымаем, как всё восстановим так продолжу.
...
Рейтинг: 0 / 0
Проблема с выводом на печать
    #40079635
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alecko,

Добрался я таки до базы и ка всегда не без приключений.

Во первЫх строках своего письма хочу сказать спасибо, так как выбирать принтер по умолчанию у меня получилось, вот кусок кода:

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
'Принтер
Private Sub П_Выбор_Принт_AfterUpdate()
    Set Application.Printer = _
     Application.Printers.Item(Me.П_Выбор_Принт.Value)
    MsgBox "Принтер по умолчанию: " & Me.П_Выбор_Принт
End Sub
Private Sub Form_Load()
    Dim prt As Printer
    For Each prt In Printers
        Me.П_Выбор_Принт.AddItem prt.DeviceName
    Next prt
    Me.П_Выбор_Принт = Application.Printer.DeviceName
End Sub



А вот конкретно двухстороннюю печать выдернуть у Гетца ника не получается, вот попробовал кусок но он матерится на строчку:
Код: sql
1.
Set rpt = Reports(mstrName)

но по правде говоря он и в оригинале на неё матерился я так и не понял что такое
Код: sql
1.
Reports(mstrName)

а точнее
Код: vbnet
1.
(mstrName)

получилось вот так:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Private Sub П_Выбор_Печать_AfterUpdate()
    Dim rpt As Report
    Set rpt = Reports(mstrName)
    If П_Выбор_Печать = "Односторонняя" Then
        With rpt.Printer
            .Duplex = acPRDPSimplex
        End With
    Else
        With rpt.Printer
            .Duplex = acPRDPHorizontal 
        End With
    End If
End Sub


подскажите, пожалуйста, что у меня не так (намёки на голову не писать я это и сам знаю).
...
Рейтинг: 0 / 0
Проблема с выводом на печать
    #40079637
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Wawan2005
mstrName
тут по идее имя твоего отчета, который ты хочешь распечатать
...
Рейтинг: 0 / 0
Проблема с выводом на печать
    #40079638
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vmag,

Упсссс.
А мне печать отчёта не нужна, мне нужно чтобы установки применились ко всем, в последствии, открываемым формам, ну и может быть когда ни-будь к отчётам.

Не подскажите как поправить?
...
Рейтинг: 0 / 0
Проблема с выводом на печать
    #40079644
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vmag,

Попробовал вот так:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
Private Sub П_Выбор_Печать_AfterUpdate()
    Dim rpt As Forms
    Set rpt = Forms
    If П_Выбор_Печать = "Односторонняя" Then
       Printer.Duplex = acPRDPSimplex
    Else
       Printer.Duplex = acPRDPHorizontal ' - acPRDPVertical rpt.
    End If
End Sub


материться перестал но и не ставит двухстороннюю печать принтера -(
...
Рейтинг: 0 / 0
Проблема с выводом на печать
    #40079648
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Wawan2005,

ну, во-первых я формы никогда не печатал, суп ем ложкой а котлеты вилкой...
Во-вторых все проблемы с двусторонней печатью решал на уровне принтера, файл, печать, выбираешь принтер и в его свойствах ставил галочку двусторонняя печать...
Если это частая операция, то можно установить еще один экземпляр принтера, обозвать его типа Canon_Duplex и включить на нем галочку двусторонняя печать на постоянку...
Послал на Canon - односторонняя печать
Послал на Canon_Duplex - двусторонняя печать
...
Рейтинг: 0 / 0
Проблема с выводом на печать
    #40079655
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vmag,

не совсем подходит, так как эта база уже в 6 районах, а у нас у всех разные принтеры, у некоторых вообще двухсторонку не поддерживают
по этому я сделал уже выбор принтера он работает, выбирает нужный принтер, осталось только с дуплексом разобраться
Я вот так попробовал, вставить
Код: vbnet
1.
Application.Printer.Duplex = acPRDPHorizontal 

тоже не реагирует

Код: vbnet
1.
2.
3.
4.
5.
6.
Private Sub П_Выбор_Принт_AfterUpdate()
    Set Application.Printer = _
     Application.Printers.Item(Me.П_Выбор_Принт.Value)
     Application.Printer.Duplex = acPRDPHorizontal
    MsgBox "Принтер по умолчанию: " & Me.П_Выбор_Принт
End Sub
...
Рейтинг: 0 / 0
Проблема с выводом на печать
    #40079688
alecko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Wawan2005,
если отправите на печать конкретный отчет(форму) по имени mstrName, для которых вы создаете объект принтер- в этой же процедуре - дуплекс должен быть (если принтер поддерживает и он есть физически и готов к работе)
...
Рейтинг: 0 / 0
Проблема с выводом на печать
    #40079711
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alecko,

А это я ещё не пробовал, попробую прописать для конкретной формы, мо заработает.
...
Рейтинг: 0 / 0
Проблема с выводом на печать
    #40079712
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
завтра
...
Рейтинг: 0 / 0
Проблема с выводом на печать
    #40079736
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вставил в кнопку формы


Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
Private Sub Кн_Таб_Дебет_Click()
    Dim stDocName As String
    Dim stLinkCriteria As String
    
    Dim rpt As Forms
    Set rpt = Me.Ф_Увед_Конверт_Должн
    If П_Выбор_Печать = "Односторонняя" Then
       Printer.Duplex = acPRDPSimplex
    Else
       Printer.Duplex = acPRDPHorizontal 
    End If

    stDocName = "Ф_Дебиторка"
    DoCmd.OpenForm stDocName, acFormDS
Exit_Кн_Таб_Дебет:
    Exit Sub
Err_Кн_Таб_Дебет_Click:
    MsgBox Err.Description
End Sub


не помогло
...
Рейтинг: 0 / 0
Проблема с выводом на печать
    #40079859
alecko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Wawan2005,
нужно что-то типа такого
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
Private Sub Кн_Таб_Дебет_Click()
On Error GoTo Кн_Таб_Дебет_Click_ERROR
    With Me.Printer
    If П_Выбор_Печать = "Односторонняя" Then
       .Duplex = acPRDPSimplex
    Else
       .Duplex = acPRDPHorizontal
    End If
   End With
    DoCmd.OpenForm "Ф_Дебиторка", acFormDS' сомневаюсь что такой формат, может DoCmd.PrintOut ...?

Exithere:

Exit Sub
Кн_Таб_Дебет_Click_ERROR:
If RejDevel00pers Then Debug.Print err.Number; Tab; err.Description: Stop: Resume ' RejDevel00pers =true 
Resume Exithere

End Sub

...
Рейтинг: 0 / 0
Проблема с выводом на печать
    #40079868
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alecko,

Не помогло -(
...
Рейтинг: 0 / 0
Проблема с выводом на печать
    #40079878
alecko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Wawan2005, такой способ вывода на печать это про отчеты.
...
Рейтинг: 0 / 0
Проблема с выводом на печать
    #40079901
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alecko,

Таааак, уже интереснее, у меня то форма-(
Могу выслать саму базу (просто она в РАРе и то 16 мег, меньше ужать не могу)
...
Рейтинг: 0 / 0
Проблема с выводом на печать
    #40079903
alecko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Wawan2005, способ вывода с помощью открытия - так печатаются отчеты - у них есть такое свойство при открытии 2-й раз в нормальном режиме отчет идет на печать - у форм такого нет,
acFormDS - вывод формы в виде таблицы - с таким не работал, но сомневаюсь что такой способ вывода формы автоматом отправит на принтер её. поэтому либо пробовать вывод на печать printout, либо как все - отчеты :)
...
Рейтинг: 0 / 0
Проблема с выводом на печать
    #40079908
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alecko,

отчёт тоже не реагирует на дуплекс-(
только что переделал форму в отчёт, не помогло (по большому счёту мне пофигу форма это будет или отчёт)
...
Рейтинг: 0 / 0
Проблема с выводом на печать
    #40079922
alecko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Wawan2005, в отчете кнопку нажать не получится - его нужно открыть в 1-й раз в режиме предварительного просмотра - отформатировать как надо. кнопку нажимать в форме :). ну скиньте че уж, раз влез в эту тему.
...
Рейтинг: 0 / 0
Проблема с выводом на печать
    #40080229
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alecko,

Спасибо, за ответ, завтра буду на работе попробую (дома нет принтера с двухсторонней печатью)
...
Рейтинг: 0 / 0
Проблема с выводом на печать
    #40080404
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alecko,

Всё равно не работает-(
...
Рейтинг: 0 / 0
Проблема с выводом на печать
    #40080423
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот этот код принимает как родной всё работает:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
'Смена принтера
Private Sub П_Выбор_Принт_AfterUpdate()
    Set Application.Printer = _
        Application.Printers.Item(Me.П_Выбор_Принт.Value)
    MsgBox "Принтер по умолчанию: " & Me.П_Выбор_Принт
End Sub
Private Sub Form_Load()
    Dim prt As Printer
    For Each prt In Printers
        Me.П_Выбор_Принт.AddItem prt.DeviceName
    Next prt
    Me.П_Выбор_Принт = Application.Printer.DeviceName
End Sub


Меняет принтер всё без проблем

А вот со сменой одно- двух- сторонней печати проблема
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
Private Sub П_Выбор_Печать_AfterUpdate()
    Dim rpt1 As Forms
    Set rpt1 = Forms
    If П_Выбор_Печать = "Односторонняя" Then
       Printer.Duplex = acPRDPSimplex
    Else
       Printer.Duplex = acPRDPHorizontal ' - acPRDPVertical rpt.Ф_Увед_Конверт_Должн
    End If
End Sub


Как будто этого куска кода не существует.

Попробовал печатать отчётом, вот такой код прислал "alecko" тоже не помогло
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
  Private Sub Кн_Конверт_Должн_ОТЧ_Click()
    Dim stLinkCriteria As String
    Dim stDocName As String
stDocName = "О_Увед_Конверт_Должн"
   With Me
    If .OpenArgs = "Односторонняя" Then
       .Printer.Duplex = acPRDPSimplex
    Else
       .Printer.Duplex = acPRDPHorizontal ' - acPRDPVertical rpt.Ф_Увед_Конверт_Должн
    End If
    End With
    DoCmd.OpenReport stDocName, acViewPreview
    DoCmd.OpenReport stDocName, acViewNormal
    DoCmd.Close acReport, stDocName
    DoCmd.Close acForm, Me.Name
    End Sub


Тоже работать не хочет.

Нашёл вот кусок кода, но не могу адаптировать под себя, может кто помочь?
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
Sub mm160224()           '''запускается при закрытом отчете
CheckCustomPage "query1"
End Sub
Public Sub CheckCustomPage(ByVal rptName As String)
 
    Dim DevString As str_DEVMODE
    Dim DM As type_DEVMODE
    Dim strDevModeExtra As String
    Dim rpt As Report
    Dim intResponse As Integer
    
    ' Opens report in Design view.
    DoCmd.OpenReport rptName, acDesign
    Set rpt = Reports(rptName)
    
    If Not IsNull(rpt.PrtDevMode) Then
        strDevModeExtra = rpt.PrtDevMode
        
        ' Gets current DEVMODE structure.
        DevString.RGB = strDevModeExtra
        LSet DM = DevString
        
        
            intResponse = MsgBox("d=" & DM.intDuplex, vbDefaultButton1)
        
        If intResponse = vbYes Then
 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
DM.intDuplex = 2
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
 
''попробовать не могу, у меня нет такого принтера
''An Integer. For a printer capable of duplex printing, specifies whether the output is printed on both sides of the paper. The values are
''1 (simplex), 2 (horizontal), and 3 (vertical).
           
'' Для принтера, способного двусторонней печати,
''указывает ли печатается выходной на обеих сторонах бумаги. Значения
'' 1 (симплекс), 2 (по горизонтали), а 3 (по вертикали).
           
            ' Update property.
            LSet DevString = DM
            Mid(strDevModeExtra, 1, 94) = DevString.RGB
            rpt.PrtDevMode = strDevModeExtra
        End If
    End If
    
    Set rpt = Nothing
    
End Sub


В идеале хочу, что бы установки принтера выбирались в главной форме и действовали на все документы отправляемые на печать.
Такое возможно???
Кто нибудь подскажет???
...
Рейтинг: 0 / 0
Проблема с выводом на печать
    #40080426
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alecko
у гетца - 9-я глава 1-й том.
приложение к главе 9


Здесь был, разобраться не смог
...
Рейтинг: 0 / 0
Проблема с выводом на печать
    #40080430
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alecko,

А у вас нет этой книги, а то чёт в инете на русском найти так и не смог , может по этому и разобраться с приложением не получилось?
...
Рейтинг: 0 / 0
Проблема с выводом на печать
    #40080459
alecko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Wawan2005,
в коде у меня ошибка
план действий:
- открываем отчет
настраиваем дуплекс
печатаем
все закрываем, возвращаемся на форму

исправлено
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
  Private Sub Кн_Конверт_Должн_ОТЧ_Click()
    Dim stLinkCriteria As String
    Dim stDocName As String
stDocName = "О_Увед_Конверт_Должн"
    DoCmd.OpenReport stDocName, acViewPreview, , , acHidden' открыли отчет скрыто
    If not  Me.OpenArgs = "Односторонняя" Then
       Reports(stDocName).Printer.Duplex = acPRDPHorizontal ' настроили дуплекс
    End If
    DoCmd.OpenReport stDocName, acViewNormal' печать 
    DoCmd.Close acReport, stDocName ' все закрываем
    DoCmd.Close acForm, Me.Name
    End Sub


1-й том
...
Рейтинг: 0 / 0
Проблема с выводом на печать
    #40080468
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alecko,

Не сработало-(
...
Рейтинг: 0 / 0
Проблема с выводом на печать
    #40080485
alecko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Wawan2005,
у меня это (похожая процедура-там и выбор лотка, и ориентация, поля) работала на HP-4350, HP-4250.
прога Гетца, которая дает всю информацию о принтерах что показывает?
принтер должен быть по умолчанию установлен тот, который поддерживает дуплекс, либо его нужно назначить таковым перед печатью.
...
Рейтинг: 0 / 0
Проблема с выводом на печать
    #40080520
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alecko,

У меня 2 принтера с дуплексом HP LaserJet Pro M428f-M429f UPD PS и Canon IP7240, ни один не хочет печатать двухсторонку, оба показывают наличие дуплекса в проге геца, и принтер сначала выбираю один из этих
...
Рейтинг: 0 / 0
Проблема с выводом на печать
    #40080552
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alecko,

Попробовал с Геца
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Private Sub Кн_Конверт_Должн_ФОР_Click()
    Const conReport As String = "О_Увед_Конверт_Должн"
    DoCmd.OpenReport conReport, _
     View:=acViewPreview, WindowMode:=acHidden
    With Reports(conReport).Printer
        .Duplex = acPRDPHorizontal
    End With
    DoCmd.OpenReport conReport
    DoCmd.Close acReport, conReport
End Sub


нифика не работает
Мож какая ДЛЛеха не подключена???
...
Рейтинг: 0 / 0
Проблема с выводом на печать
    #40080555
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alecko,

К стати за книгу спасибо.
...
Рейтинг: 0 / 0
Проблема с выводом на печать
    #40080557
alecko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Wawan2005,чет не посмотрел - там у вас превышение ширины страницы (откройте отчет в режиме конструктора -увидите слева вверху зеленый треугольник), т.е. он печатает вторым листом на обороте пустой небольшой кусочек - поэтому может быть не видно - страницу поменьше сделайте (либо поля).
на всякий, для проверки в параметрах страницы есть возможность выбрать принтер вручную попробуйте назначьте его "жестко".
...
Рейтинг: 0 / 0
Проблема с выводом на печать
    #40080563
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alecko,

Да и ещё оказывается пример геца "frmPrinterSettings" при попытке напечатать двухсторонний документ выдаёт ошибку

ругается на " Set rpt = Reports(mstrName) "

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Private Sub cmdPrint_Click()
    Dim rpt As Report
    
    Set rpt = Reports(mstrName)
    With rpt.Printer
        .ColorMode = cboColorMode.Value
        .Copies = txtCopies.Value
        .Duplex = cboDuplex.Value
        .Orientation = cboOrientation.Value
        .PaperBin = cboPaperBin.Value
        .PaperSize = cboPaperSize.Value
        .PrintQuality = cboPrintQuality.Value
    End With
End Sub


прямо в файле Ch09
...
Рейтинг: 0 / 0
Проблема с выводом на печать
    #40080565
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alecko
Wawan2005,чет не посмотрел - там у вас превышение ширины страницы (откройте отчет в режиме конструктора.

Попробовал не помогло.
Принтер не прописывал "жёстко", так как выбор принтера по умолчанию выбирается изначально адекватно, какой выбрал туда и летит.
...
Рейтинг: 0 / 0
Проблема с выводом на печать
    #40080567
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alecko,

Может что-то у меня с Офисом, есть какие нибудь мысли?
как вариант (чисто поржать) могу переустановить (у меня 2007) , или поставить другой : есть 2010; 2013; 2016; 2019, даже 2003 есть но он изначально половину моей базы не поймёт-)
Сборка Beloff_20.10
...
Рейтинг: 0 / 0
Проблема с выводом на печать
    #40080570
alecko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Wawan2005, сделайте 1 столбец (вместо 2) станет нормально.
...
Рейтинг: 0 / 0
Проблема с выводом на печать
    #40080574
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alecko,

А у меня один столбец
Или я не о том подумал, весь отчёт построен как один столбец, страницы одна под другой.
...
Рейтинг: 0 / 0
Проблема с выводом на печать
    #40080577
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У этих принтеров ещё такая фишка, что когда задаёшь печать двухстороннюю, они начинают печатать с последнего листа, и если он чётный, то они его просто переворачивают, то есть всё равно видно что задана двусторонняя печать, также и если будет один лист, а в установках двусторонка будет стоять, то принтер его перевернёт (по крайней мере IP7240 это точно).
...
Рейтинг: 0 / 0
Проблема с выводом на печать
    #40080583
alecko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Wawan2005, про пример Гетца писал.
может принтеры не позволяют извне изменять настройки. сложно сказать.
...
Рейтинг: 0 / 0
Проблема с выводом на печать
    #40080668
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alecko,

вот этого я и боюсь
...
Рейтинг: 0 / 0
Проблема с выводом на печать
    #40080806
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alecko,

А точно ни каких дополнительных библиотек не надо включать?
...
Рейтинг: 0 / 0
Проблема с выводом на печать
    #40080808
alecko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Wawan2005, печатало без допбиблиотек, но вполне возможно, что может быть какая то библиотека "облегчит страдания" - не знаю.
в этих принтерах вроде PCL нет, только PostScript - может быть в этом причина.
...
Рейтинг: 0 / 0
Проблема с выводом на печать
    #40080836
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alecko
только PostScript

А это в VBA прописать можно?
...
Рейтинг: 0 / 0
Проблема с выводом на печать
    #40080845
alecko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Wawan2005,
честно говоря не вникал так глубоко, может вот для этого PS (лицензируемый Adobe) и нужна какая нить либа, поскольку кажется (ключевое слово) что VBA "говорит" с принтером на PCL (бесплатный).
в инструкции прописано, что по умолчанию стоит двухсторонняя печать - нужно что на одной стороне печатало? - просто у меня в коде прописано именно установка дуплекса, а simple как бы по умолчанию.
...
Рейтинг: 0 / 0
Проблема с выводом на печать
    #40081250
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
народ, ну мож хоть у кого нибудь есть мысли как не через
Код: vbnet
1.
  .Duplex = acPRDPHorizontal


или как вообще HP и Cаnonы заставить делать двухстороннюю печать
...
Рейтинг: 0 / 0
Проблема с выводом на печать
    #40081268
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот ещё вариант нашёл, тоже не работает

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Private Sub Кн_Конверт_Должн_Click()
    Dim rpt As Report
    Dim prtOld As Printer
    Dim prtNew As Printer
    Dim stDocName As String
    stDocName = "О_Увед_Конверт_Должн"
    DoCmd.OpenReport ReportName:="О_Увед_Конверт_Должн", View:=acViewPreview
    Set rpt = Reports!О_Увед_Конверт_Должн
    Set prtOld = rpt.Printer
    Set prtNew = rpt.Printer
    prtNew.Duplex = acPRDPHorizontal
    Set rpt.Printer = prtOld
    DoCmd.Close ObjectType:=acReport, ObjectName:=stDocName, Save:=acSaveYes
    DoCmd.OpenReport stDocName, , , , , acViewPreview
End Sub
...
Рейтинг: 0 / 0
Проблема с выводом на печать
    #40081711
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Eugene-LS
На эту тему сочинилось такое решение:


Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
'--------------------------------------------------------------------
' Module    : modReportsPrinterReset
' Author    : es
' Date      : 17.01.2004
'--------------------------------------------------------------------
'Модуль ПЕРЕУСТАНОВКИ "принтерных" настроек всех отчетов
'под текущий принтер по умолчанию т.е. с настроек принтера разработчика
'на настройки принтера пользователя
'--------------------------------------------------------------------
Option Compare Database
Option Explicit

Private Type str_DEVMODE
    RGB As String * 94
End Type
'--------------------------------------------------------------------
Private Type type_DEVMODE
    strDeviceName As String * 16
    intSpecVersion As Integer
    intDriverVersion As Integer
    intSize As Integer
    intDriverExtra As Integer
    lngFields As Long
    intOrientation As Integer
End Type

Public Sub esResetAllReportsToDefPrinter()
'Смена у всех отчетов настроек принтера с "зашитых внутри отчета"
' на текущий принтер по умолчанию и его настройки
' затирает только данные по принтеру - поля и ориентация остаются прежними
'--------------------------------------------------------------------
Dim dbs As Database, ctr As Container, doc As Document
Dim objReport As Report
Dim OldOrientation As Integer 'Для запоминания старой ориентации _
   т.к. она (ориентация) входит в Свойство PrtDevMode отчета _
   кое собираемся переписывать по новой
    
On Error GoTo esResetAllReportsToDefPrinterErr
'Выключ. отображение процесса
    Application.Echo False
    Set dbs = CurrentDb
    Set ctr = dbs.Containers!Reports
    'цикл по всем отчетам
    For Each doc In ctr.Documents
        'открытие отчета в режиме редакции
        DoCmd.OpenReport doc.name, acViewDesign
        Set objReport = Reports(doc.name)
        
        'отображение инфы о тек. отчете в Status Bar
        SysCmd acSysCmdSetStatus, "Обрабатываю Отчет - " & doc.name
        
        'Запоминаем старую ориентацию для последующего восстановления (см. функцию ниже)...
        OldOrientation = esReportOrientationSetGet(objReport, True)
        'Зачистка данных о принтере в отчете
        objReport.PrtDevMode = Null
        objReport.PrtDevNames = Null
        'Закрытие отчета с сохранением "пустого принтера"
        DoCmd.Close acReport, doc.name, acSaveYes

        'Если до этого у отчета была ориентация LandsCape
        '   то восстанавливаем ее, причем отчет уже "берет"
        '   принтер по умолчанию, при повторном открытии
        If OldOrientation = 2 Then
            'открытие отчета в режиме редакции
            DoCmd.OpenReport doc.name, acViewDesign
            Set objReport = Reports(doc.name)
            
            'Debug.Print objReport.Name
            'Восстанавливаем LandsCape ориентацию (см. функцию ниже)
            '   если была Portrait то восстанавливать нет необходимости
            '   т.к. она уже установлена по умолчанию
            esReportOrientationSetGet objReport
            'Закрытие отчета с сохранением
            DoCmd.Close acReport, doc.name, acSaveYes
        End If
    Next doc
    SysCmd (acSysCmdClearStatus)
'Включаем отображение процесса на экране обратно
    Application.Echo True
    Exit Sub
esResetAllReportsToDefPrinterErr:
    Application.Echo True
    MsgBox "Процедура [esResetAllReportsToDefPrinter] привела к ошибке:" & vbCrLf & _
    Err.Description & vbCrLf & " Err#" & Err.Number & vbCrLf & _
    "При обработке Отчета - " & doc.name, vbCritical
End Sub

'--------------------------------------------------------------------
Private Function esReportOrientationSetGet(objCurReport As Report, _
                    Optional GetOnly As Boolean) As Integer
'Вспомогательная функция ,в зависимости от параметра GetOnly,
'ИЛИ :
'Возвращает код ориентации отчета
'   Portrait = 1
'   LandsCape= 2
'ИЛИ если GetOnly=False (по умолчанию):
'   делает ориентацию открытого отчета = LandsCape
'--------------------------------------------------------------------

Dim DevString As str_DEVMODE
Dim DM As type_DEVMODE
Dim strDevModeExtra As String

On Error GoTo esReportOrientationSetGetErr
    If Not IsNull(objCurReport.PrtDevMode) Then
        strDevModeExtra = objCurReport.PrtDevMode
        DevString.RGB = strDevModeExtra
        LSet DM = DevString
        esReportOrientationSetGet = DM.intOrientation
        'Если только задано параметром то вносим изменения в отчет
        If GetOnly = False Then
            'Меняем ориентацию  = LandsCape
            DM.intOrientation = 2
            LSet DevString = DM
            Mid(strDevModeExtra, 1, 94) = DevString.RGB
            objCurReport.PrtDevMode = strDevModeExtra
        End If
    End If
    Exit Function
esReportOrientationSetGetErr:
    If GetOnly = True Then
        strDevModeExtra = "При определении ориентации Отчета - " & _
        objCurReport.name
    Else
        strDevModeExtra = "При установке ориентации Отчета - " & _
        objCurReport.name
    End If
    MsgBox "Процедура [esReportOrientationSetGet] привела к ошибке:" & vbCrLf & _
    Err.Description & vbCrLf & " Err#" & Err.Number & vbCrLf & _
    strDevModeExtra, vbCritical
End Function



У меня не скромный вопрос, а если я вам вышлю базу сможете адаптировать этот кусок под неё, а то я даже не берусь, ввиду скудных знаний VBA
...
Рейтинг: 0 / 0
Проблема с выводом на печать
    #40082000
Eugene-LS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Wawan2005
У меня не скромный вопрос, а если я вам вышлю базу сможете адаптировать этот кусок под неё

Там всё просто:
01. Делаете резервную копию БД
02. Создаёте внешний модуль с произвольным названием и вставляете весь код туда
03. На машине где ваш HP установлен как принтер по умолчанию - Запускаете процедуру esResetAllReportsToDefPrinter и ждёте окончания её работы.
04. Пробуете настроить двухстороннюю печать.
... не факт что поможет - но попробовать стоит.
...
Рейтинг: 0 / 0
Проблема с выводом на печать
    #40082002
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Eugene-LS,

хорошо
попробую
P.S.: Я там Вам письмо на почту кидал, пока не надо попробую сам, коль уж так просто, только вот ещё вопрос, HP он сетевой принт сервер и но умолчанию на всех компах (включая и мой), прокатит?
...
Рейтинг: 0 / 0
Проблема с выводом на печать
    #40082091
Eugene-LS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Wawan2005
HP он сетевой принт сервер и но умолчанию на всех компах (включая и мой), прокатит?

Да! (если вы по код и если установлен как принтер умолчанию)
...
Рейтинг: 0 / 0
Проблема с выводом на печать
    #40082095
Eugene-LS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Wawan2005
только вот ещё вопрос

Посмотрите еще тут:
https://www.sql.ru/forum/940849/kak-zastavit-druzhit-printreport-i-duplex
и тут:
https://www.sql.ru/forum/940849-2/kak-zastavit-druzhit-printreport-i-duplex
... там вроде получилось.
...
Рейтинг: 0 / 0
Проблема с выводом на печать
    #40082587
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Eugene-LS,


Eugene-LS


Ну там пишут, что получилось, но у меня не получилось. вот что изобрёл


Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
  Private Sub Кн_Конверт_Должн_Click()
On Error GoTo Err_Кн_Конверт_Должн_Click
DoCmd.RunMacro "МакроРазвернуть.ВосстановитьОкно"
    Dim stDocName As String
    Reports.Printer.Duplex = acPRDPVertical
    stDocName = "Ф_Увед_Конверт_Должн"
    DoCmd.OpenReport stDocName, , , , , acViewPreview
Exit_Кн_Конверт_Должн_Click:
    Exit Sub
Err_Кн_Конверт_Должн_Click:
    MsgBox Err.Description
    Resume Exit_Кн_Конверт_Должн_Click
    End Sub


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

Ругается
Код: vbnet
1.
 DoCmd.RunMacro "МакроРазвернуть.ВосстановитьОкно"


создал ему оба макроса, пишет что
Код: java
1.
"Невозможно открыть или выполнить макрос "МакроРазвернуть", так как он не действителен.


Я опять в тупике-(

P.S.: если оставляю строчку
Код: vbnet
1.
Reports(rpt).Printer.Duplex = acPRDPVertical 

как в примере, ругается (rpt)
Убираю (rpt)
Код: vbnet
1.
Reports.Printer.Duplex = acPRDPVertical 


ругается на макрос.
...
Рейтинг: 0 / 0
Проблема с выводом на печать
    #40082601
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
К стати что такое - (rpt)? Он у многих встречается.

И вот сам модуль как я его вколотил
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
Sub PrintReport(rpt, copies)
Dim TotPages, x, i1, i2
'Приостанавливаем вывод на экран (не обязательно)
Application.Echo False

'Открываем первый отчет Счета Фактуры
DoCmd.OpenReport rpt, acPreview
DoCmd.Minimize
'скрываем окно отчета (не обязательно)
Reports(rpt).Visible = False
Reports(rpt).Me.Printer.Duplex = acPRDPVertical
'Включаем вывод на экран
Application.Echo True

'Проверка на наличие данных в открытом отчете (только в одном)
'т.к. подразумевается что набор зап. второго полностью аналогичен
If Reports(rpt).HasData = 0 Then
   MsgBox "Нечего печатать!!! " & vbCrLf & _
   "отчеты:" & vbCrLf & "[" & rpt & "]" & vbCrLf & _
   "не имеeт данных", vbCritical
   'переход на метку закрытия отчетов
   GoTo jsPipeLinePrintExit
End If

'Подсчет необходимых листов бумаги и установка концовки цикла
TotPages = Reports(rpt).Pages
x = TotPages
TotPages = TotPages * copies

'If MsgBox("Вставьте в принтер " & TotPages & " листов !", vbOKCancel) = vbOK Then
   'For i = 1 To x
   DoCmd.SelectObject acReport, rpt

   'печатаем со стр. i по стр. i с высоким разрешением заданное к-во копий
   DoCmd.PrintOut acAll, , , , copies, True
   'Next
'End If

jsPipeLinePrintExit:
On Error Resume Next
DoCmd.Close acReport, rpt

Exit Sub

jsPipeLinePrintErr:
Application.Echo True
MsgBox Err.Description & ""
'Debug.Print Err.Description & vbCrLf & "Ощибка №" & Err.Number
Err.Clear
Resume jsPipeLinePrintExit

End Sub

...
Рейтинг: 0 / 0
Проблема с выводом на печать
    #40082690
Eugene-LS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Wawan2005
К стати что такое - (rpt)?

судя по коду: Это название отчёта
...
Рейтинг: 0 / 0
Проблема с выводом на печать
    #40084361
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Eugene-LS,

Попробовал вписать имя своего отчёта терь пишет "Type mismatch"
Есть ещё какие идеи???
...
Рейтинг: 0 / 0
Проблема с выводом на печать
    #40084362
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот как сейчас выглядит код


Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Private Sub Кн_Конверт_Должн_Click()
On Error GoTo Err_Кн_Конверт_Должн_Click
'DoCmd.RunMacro "МакроРазвернуть.ВосстановитьОкно"
    Dim О_Увед_Конверт_Должн As Report
    Dim stDocName As String, КолСтрок
    stDocName = "О_Увед_Конверт_Должн"
    Reports(О_Увед_Конверт_Должн).Printer.Duplex = acPRDPVertical
    DoCmd.OpenReport stDocName, , , , , acViewPreview
Exit_Кн_Конверт_Должн_Click:
    Exit Sub
Err_Кн_Конверт_Должн_Click:
    MsgBox Err.Description
    Resume Exit_Кн_Конверт_Должн_Click
    End Sub



Ещё не получается создать макрос "МакроРазвернуть.ВосстановитьОкно" их нет в списке создаваемых макросов, а если тупо прописываю, то не выполняет.
...
Рейтинг: 0 / 0
Проблема с выводом на печать
    #40084587
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Тема рекордсмен по просмотрам,
но не одной светлой идеи,
народ, ну помогите кто чем может,
проверю любую "безумную идею" (в пределах кода).
...
Рейтинг: 0 / 0
Проблема с выводом на печать
    #40084771
ROI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Wawan2005
Тема рекордсмен по просмотрам,
но не одной светлой идеи,
народ, ну помогите кто чем может,
проверю любую "безумную идею" (в пределах кода).

А чего вы вообще хотите?(я потерял нить ваших хотелок)
...
Рейтинг: 0 / 0
Проблема с выводом на печать
    #40084777
DarkMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Wawan2005
Да не тут то было, печатает первый лист нормально, а второй переворачивает по ВЕРТИКАЛИ, а надо по ГОРИЗОНТАЛИ.

Этой фразы я не понял . А когда Вы печатаете на принтере вручную , он нормально печатает.
В установках есть такая фигня , если выбрать Short то мой принтер печатает нормально , а ели Long , первая страница идет нормально , а вторая вверх ногами. Это так , к слову пришлось. :))
...
Рейтинг: 0 / 0
Проблема с выводом на печать
    #40084951
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DarkMan,

В том то и фишка, пользовать программу будут дикие юзвери, и чем меньше у них возможности накосячат тем лучше, а косячат они профессионально, в следствии чего я и хочу прописывать настройки прямо в приложении, а в идеале тупо жёстко прописать, без права выбора, ибо нех.
...
Рейтинг: 0 / 0
Проблема с выводом на печать
    #40084962
ROI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Wawan2005
DarkMan,

В том то и фишка, пользовать программу будут дикие юзвери, и чем меньше у них возможности накосячат тем лучше, а косячат они профессионально, в следствии чего я и хочу прописывать настройки прямо в приложении, а в идеале тупо жёстко прописать, без права выбора, ибо нех.

Да, не забудьте, что есть разница в доступе к настройкам локального и сетевого принтера
...
Рейтинг: 0 / 0
Проблема с выводом на печать
    #40085108
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ROI,

Настройка проходит пока на локальном, Canon iP7240, всё равно не работает.
...
Рейтинг: 0 / 0
Проблема с выводом на печать
    #40085147
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите пожалуйста как адаптировать данный пример под дуплек

https://docs.microsoft.com/ru-ru/office/vba/api/access.form.prtdevmode
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Свойство Printer.Duplex (Доступ)
23.03.2019
Чтение занимает 2 мин

Возвращает или задает констант AcPrintDuplex, указывающее, как указанный принтер обрабатывает двуплексную печать. Для чтения и записи.

Синтаксис
выражения. Duplex

выражение Переменная, представляюная объект Принтер.

Пример
В следующем примере заданы различные параметры принтера для формы, указанной в аргументе strFormname процедуры.


Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
Sub SetPrinter(strFormname As String) 
 
 DoCmd.OpenForm FormName:=strFormname, view:=acDesign, _ 
 datamode:=acFormEdit, windowmode:=acHidden 
 
 With Forms(form1).Printer 
 
 .TopMargin = 1440 
 .BottomMargin = 1440 
 .LeftMargin = 1440 
 .RightMargin = 1440 
 
 .ColumnSpacing = 360 
 .RowSpacing = 360 
 
 .ColorMode = acPRCMColor 
 .DataOnly = False 
 .DefaultSize = False 
 .ItemSizeHeight = 2880 
 .ItemSizeWidth = 2880 
 .ItemLayout = acPRVerticalColumnLayout 
 .ItemsAcross = 6 
 
 .Copies = 1 
 .Orientation = acPRORLandscape 
 .Duplex = acPRDPVertical 
 .PaperBin = acPRBNAuto 
 .PaperSize = acPRPSLetter 
 .PrintQuality = acPRPQMedium 
 
 End With 
 
 DoCmd.Close objecttype:=acForm, objectname:=strFormname, _ 
 Save:=acSaveYes 
 
 
End Sub
...
Рейтинг: 0 / 0
Проблема с выводом на печать
    #40103057
FeelYou
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Wawan2005,

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Dim CurrRep As Report
On Error Resume Next
Set CurrRep = Screen.ActiveReport
If Err.Number = 0 Then
   If Left$(CurrRep.Printer.DeviceName, 3) <> "PDF" Then
      Select Case CurrRep.Name
         Case "ФАКТУРА", "НАКЛАДНАЯ" ' и тп с ландшафтной ориентацией
            CurrRep.Printer.Duplex = acPRDPHorizontal ' 2 Double-sided printing using a horizontal page turn
         Case Else
            CurrRep.Printer.Duplex = acPRDPVertical ' 3 Double-sided printing using a vertical page turn
      End Select
   End If
   'DoCmd.OpenReport CurrRep.Name, acViewNormal
Else
   ' смена настроек доступна только для отчетов
End If



и еще было припоминаю, что на МФУ HP M426 если настройки дуплекса заданы через вэб-морду сетевого принтера, то на программное изменение на терминальном клиенте не реагировало (2008R2 + A2003 если что)
...
Рейтинг: 0 / 0
104 сообщений из 104, показаны все 5 страниц
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Проблема с выводом на печать
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]