IMPRIMIR CRYSTAL EM IMPRESSORA DIFERENTE DA PADRÃO

ALVAROVB2009 02/05/2024 17:25:00
#503298
Alterado em 02/05/2024 17:32:46 Pessoal boa tarde, me apareceu um problema em vb6, onde o cliente esta trocando a impressora e o sistema não esta aceitando, esta mandando na padrão e tem horas que ele aceita normalmente.
Sempre utilizei o comando abaixo e nunca tinha dado problema e estou usando o Crystal 9


Pesquisando achei pouca coisa para resolver, a única coisa que achei foi colocar um 0 no lugar do Me.hwnd ( tanto no vb6 quanto para outras linguagens )

Comando Me.hwnd era o que estava no lugar do 0, que coloquei hoje para tentar resolver, más também não resolveu

A caixa com as impressoras é aberta normalmente, porém não esta acatando a seleção do usuário



Private Sub CRViewer91_PrintButtonClicked(UseDefault As Boolean)
UseDefault = False 'Cancela a ação padrão do evento

FrmQteImpressao.Tag = "OP - Vacum Forming" 'Isso é um form simples que eu abro para o usuário colocar quantas cópias que ele quer
FrmQteImpressao.Show 1

If QteImpressao > 0 Then
Dim i As Integer
If NOpcaoSelecao = 1 Then
Report.PrinterSetup 0 'Me.hwnd 'Abre Print Setup, para selecionar a impressora
For i = 1 To QteImpressao
Report.PrintOut False, 1, True
Next
ElseIf NOpcaoSelecao = 2 Then ' Embalagem
Report1.PrinterSetup 0 'Me.hwnd 'Abre Print Setup, para selecionar a impressora
For i = 1 To QteImpressao
Report1.PrintOut False, 1, True
Next
End If
End If
End Sub


Alguém poderia me dar uma força, no que pode estar acontecendo ?
Desde já agradeço
ALVAROVB2009 06/05/2024 09:49:40
#503314
Pessoal na tentativa de trocar a impressora , eu criei um pequeno form onde troco a impressora padrão pelo sistema

Option Explicit
Private Sub CmdConfirma_Click()
If IsNumeric(TxtQuantCopia.Text) = False Then
MsgBox "Digite uma quantidade de nº de cópias válidas", vbInformation, "Atenção"
Else
For Each ImpressoraSelecionada In Printers
If ImpressoraSelecionada.DeviceName = CboImpressoras.Text Then
Set Printer = ImpressoraSelecionada

DriveImpressoraSelecionada = ImpressoraSelecionada.DriverName
NomeImpressoraSelecionada = ImpressoraSelecionada.DeviceName
PortaImpressoraSelecionada = ImpressoraSelecionada.Port
QuantCopiaImpressoraSelecionada = TxtQuantCopia.Text

Exit For
End If
Next
Unload Me
End If
End Sub

Private Sub Command1_Click()
DriveImpressoraSelecionada = ""
NomeImpressoraSelecionada = ""
PortaImpressoraSelecionada = ""
QuantCopiaImpressoraSelecionada = 0
Unload Me
End Sub

Private Sub Form_Load()
DriveImpressoraSelecionada = ""
NomeImpressoraSelecionada = ""
PortaImpressoraSelecionada = ""

CboImpressoras.Clear
CboImpressoras.Text = Printer.DeviceName
For Each ImpressoraSelecionada In Printers
CboImpressoras.AddItem ImpressoraSelecionada.DeviceName
Next
End Sub



No form aonde chamei a impressão
Dim i As Integer
For i = 1 To QuantCopiaImpressoraSelecionada 'QteImpressao
Report.SelectPrinter DriveImpressoraSelecionada, NomeImpressoraSelecionada, PortaImpressoraSelecionada
Report.PrintOut False, 1, True
Next

Porém quando mandei imprimir na impressora não imprimiu nada, porém quando fiz uma impressão para diversas impressoras de pdf, foi feita perfeitamente

Alguém poderia ver dar uma luz no que pode estar acontecendo ?
Faça seu login para responder