Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Cleiton Ribeiro_113969

CommonDialog não seta impressora como deveria

Recommended Posts

Olá pessoal!

 

 

Estou com um probleminha bem chato, pois tenho uma api de relatórios que é responsável por construir os relatorios e ao final imprimi-los com printer.print.

 

Ao imprimir o usuário deve escolher uma impressora através do CommonDialog.showPrinter entretanto, ao selecionar uma impressora X e imprimir um relatorio, ele imprime na impressora selecionada mas ao tentar imprimir novamente e escolher uma impressora Y, o programa continua imprimindo na X. Como se o commonDialog.showPrinter tivesse efeito apenas 1 vez.

 

A unica vez que ele é chamado é no evento de click do botao de impressao.

 

 

CommonDialog1.PrinterDefault = false
CommonDialog1.showPrinter

 

Toda vez que eu clico no botao, o commonDialog abre na seleção de impressoras para setar uma nova impressora.

 

Alguma vez ja aconteceu isso com os senhores?

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

O ideal seria você criar este objeto dentro do evento click, porque se ele é um componente global ele vai armazenar o valor padrão até o fim da aplicação...

 

Tente declarar o Commondialog como uma variável dentro do seu código.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Achei o problema!

 

Se usar o Printer.Orientation, acaba causando isso... ele prende a primeira impressora que vc escolher.

 

Mas e agora? o que posso colocar no lugar do Printer.orientation para mudar a orientacao para landscape/paisagem?

 

Ja tentei alterar Printer.Height/Printer.ScaleHeight e Printer.Width/Printer.ScaleWidth

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pior que eu ja tentei...

 

Tentei destruir o objeto printer(Por ele ter justamente a configuração que da pau no commonDialog), mas o vb6 reclama e dispara um erro, me informando que preciso associar um objeto a ele.

 

Set Printer = Nothing

'ou

Set Printer = empty

 

Ou até mesmo, ja tentei destruir o objeto commonDialog, mas o problema foi o mesmo... o vb nao aceita sua destruicao.

 

Set CommonDialog1 = nothing

'ou

Set CommonDialog1 = empty

 

 

Alguma sugestão?

 

-----------------------------------------------------------------

 

Editado :P

 

 

Problema resolvido....

 

 

 

Quem estiver com o mesmo problema, pode solucionar isto de uma forma muito simples.

 

Sempre que usar o Printer.trackDefault o objeto tem suas configurações resetadas e portanto, o CommonDialog não é afetado pela configuracao do objeto printer.

 

Bastar usar um Printer.TrackDefault antes de usar o objeto CommonDialog!

 

Obrigado a todos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.