printersetup, cancelar impressão?
amigos, mais um problema
na execução do relatório faço isso
Fimpchequesolto.QuickRepchequesolto.Prepare;
Fimpchequesolto.QuickRepchequesolto.printersetup;
Fimpchequesolto.QuickRepchequesolto.Print;
só que nao da pra cancelar a impressão depois de executado o printersetup, ja tentei tambem com o printdialog e tambem não deu certo, alguem sera que tem alguma solução pra isto???
desde ja agradeço.....
quickReport
delphi 7.0
firebird
na execução do relatório faço isso
Fimpchequesolto.QuickRepchequesolto.Prepare;
Fimpchequesolto.QuickRepchequesolto.printersetup;
Fimpchequesolto.QuickRepchequesolto.Print;
só que nao da pra cancelar a impressão depois de executado o printersetup, ja tentei tambem com o printdialog e tambem não deu certo, alguem sera que tem alguma solução pra isto???
desde ja agradeço.....
quickReport
delphi 7.0
firebird
Marcusbraga
Curtidas 0
Respostas
Vinicius2k
18/12/2004
Colega,
O que ocorre é que em nenhum momento vc está orientando para que a impressão seja cancelada... O dialogo de setup da impressora no QuickReport não é uma função com retorno e sim uma procedure, logo, vc não pode testar retorno.
Não sei se seria possível para vc utilizar os dialogos da própria VCL, pq com estes vc poderia trabalhar como deseja. Por exemplo:
ou
Talvez vc possa adaptar seu código (se é que é necessária alguma adaptação -- não sei pq não trabalho com o QR) para deixar de usar os diálogos do QR.
Espero ter ajudado...
T+
O que ocorre é que em nenhum momento vc está orientando para que a impressão seja cancelada... O dialogo de setup da impressora no QuickReport não é uma função com retorno e sim uma procedure, logo, vc não pode testar retorno.
Não sei se seria possível para vc utilizar os dialogos da própria VCL, pq com estes vc poderia trabalhar como deseja. Por exemplo:
Fimpchequesolto.QuickRepchequesolto.Prepare; if PrinterDialog1.Execute then Fimpchequesolto.QuickRepchequesolto.Print;
ou
Fimpchequesolto.QuickRepchequesolto.Prepare; if PrinterSetupDialog1.Execute then Fimpchequesolto.QuickRepchequesolto.Print;
Talvez vc possa adaptar seu código (se é que é necessária alguma adaptação -- não sei pq não trabalho com o QR) para deixar de usar os diálogos do QR.
Espero ter ajudado...
T+
GOSTEI 0
Marcusbraga
18/12/2004
Obrigado pela resposta mas ainda não entendi uma coisa,
no exemplo acima é testado, para quando a caixa de dialogo for aberta ele começa a imprimir,
mas onde coloco o
printdialog.execute
ja tentei no evento beforeprint, afterpreview
e nos dois eventos se dou um preview antes ele ja mostra a caixa de dialogo e neste caso ele ja iria imprimir no comando preview
no exemplo acima é testado, para quando a caixa de dialogo for aberta ele começa a imprimir,
mas onde coloco o
printdialog.execute
ja tentei no evento beforeprint, afterpreview
e nos dois eventos se dou um preview antes ele ja mostra a caixa de dialogo e neste caso ele ja iria imprimir no comando preview
GOSTEI 0
Marcusbraga
18/12/2004
Obrigado pela resposta mas ainda não entendi uma coisa,
no exemplo acima é testado, para quando a caixa de dialogo for aberta ele começa a imprimir,
mas onde coloco o
printdialog.execute
ja tentei no evento beforeprint, afterpreview
e nos dois eventos se dou um preview antes ele ja mostra a caixa de dialogo e neste caso ele ja iria imprimir no comando preview
no exemplo acima é testado, para quando a caixa de dialogo for aberta ele começa a imprimir,
mas onde coloco o
printdialog.execute
ja tentei no evento beforeprint, afterpreview
e nos dois eventos se dou um preview antes ele ja mostra a caixa de dialogo e neste caso ele ja iria imprimir no comando preview
GOSTEI 0
Marcusbraga
18/12/2004
Obrigado pela resposta mas ainda não entendi uma coisa,
no exemplo acima é testado, para quando a caixa de dialogo for aberta ele começa a imprimir,
mas onde coloco o
printdialog.execute
ja tentei no evento beforeprint, afterpreview
e nos dois eventos se dou um preview antes ele ja mostra a caixa de dialogo e neste caso ele ja iria imprimir no comando preview
no exemplo acima é testado, para quando a caixa de dialogo for aberta ele começa a imprimir,
mas onde coloco o
printdialog.execute
ja tentei no evento beforeprint, afterpreview
e nos dois eventos se dou um preview antes ele ja mostra a caixa de dialogo e neste caso ele ja iria imprimir no comando preview
GOSTEI 0
Vinicius2k
18/12/2004
Marcus,
Como eu disse, não trabalho com o QR, então, não posso lhe ajudar especificamente com ele. Mas pelo que pude perceber, para que vc consiga o resultado desejado, o caminho *deve* ser não utilizar nenhum evento ou procedure dele e controlar tudo manualmente.
No exemplo que lhe dei, o código seria colocado em uma ação, um botão, por exemplo, que chamasse a impressão, mas não estou contando que exista um preview antes da impressão... foi só um exemplo, que *talvez* vc possa utilizar...
T+
Como eu disse, não trabalho com o QR, então, não posso lhe ajudar especificamente com ele. Mas pelo que pude perceber, para que vc consiga o resultado desejado, o caminho *deve* ser não utilizar nenhum evento ou procedure dele e controlar tudo manualmente.
No exemplo que lhe dei, o código seria colocado em uma ação, um botão, por exemplo, que chamasse a impressão, mas não estou contando que exista um preview antes da impressão... foi só um exemplo, que *talvez* vc possa utilizar...
T+
GOSTEI 0
Adilsond
18/12/2004
Se na execução do relatório voce faz isso !!!!
Então utilizando o que Vinicius2K disse mude para:
Fimpchequesolto.QuickRepchequesolto.Prepare; Fimpchequesolto.QuickRepchequesolto.printersetup; Fimpchequesolto.QuickRepchequesolto.Print;
Então utilizando o que Vinicius2K disse mude para:
begin with Fimpchequesolto do begin if PrinterDialog1.Execute then begin QuickRepchequesolto.Prepare; QuickRepchequesolto.Print; end; end; end;
GOSTEI 0