Fórum Impressora Padrão #220386

16/03/2004

0

Olá pessoal,
Estou querendo escolher a impressora que será impresso o relatório do RAVE.
Já tentei indexar o Printer, mas não deu certo, o relatório persiste em imprimir no driver principal da impressora.

fiz o seguinte código para listar dentro de um combobox , todas as impressoras instaladas na máquina, escolhe a impressora , só que na hora de imprimir ela enviar para impressora definida como padrão.
este código é para carregar as impressoras no combobox.

for I := 0 to Printer.printers.Count-1 do ComboBox1.Items.Add(Printer.Printers[I]);
ComboBox1.ItemIndex:=printer.PrinterIndex;


e depois indexei mas constinua a imprimir os relatórios na impressora padrão!

Printer.PrinterIndex:=ComboBox1.ItemIndex;



dm.Rave.ProjectFile:=´relatorio´;
dm.RaveSys.SystemSetups:=[];
dm.Rave.ExecuteReport(´Report1´);


Carlosceuma

Carlosceuma

Responder

Posts

16/03/2004

Vinicius2k

Carlos,

É necessário forcar a instância de TPrinter a receber a impressora selecionada, veja o código...

[coide]procedure SetarImpressora;
var Device, Driver, Port : array[0..255] of char;
hDMode : THandle;
begin
try
Printer.GetPrinter(Device, Driver, Port, hDMode);
finally
GlobalUnlock(hDMode);
end;
end;

acredito que a chamada a esta procedure após a atribuição do índice irá resolver seu problema... eu trabalho desta forma diretamente com o TPrinter, chamo este código após o retorno true do método Execute do TPrintDialog, mas acredito que funcione da mesma forma...

espero ter ajudado...


Responder

Gostei + 0

16/03/2004

Carlosceuma

Vinícius,

Valeu pela dica, servirá quando elaborar relatório simple e direto a impressora, mas por enquanto, estou utilizando o RAVE Report e já encontrei a solução. Utilizei o Componente RvNDRWriter1 que tem
como propriedade PrinterIndex.

Ficou ótimo:
a linha que utilizei foi esta:

RvNDRWriter1.PrinterIndex:=ComboBox1.ItemIndex;

após ter listados no combobox as impressoras disponíveis.

Ainda sim, agradeço de montão a sua ajuda, assim espero ajuda-lo.

Antonio Carlos
acf.slz@globo.com


Responder

Gostei + 0

16/03/2004

Vinicius2k

:wink:
fica valendo como conhecimento adicional...
T+


Responder

Gostei + 0

25/05/2004

Emir Neto

Como listo em um combobox as impressoras locais e de rede????

Vinícius, Valeu pela dica, servirá quando elaborar relatório simple e direto a impressora, mas por enquanto, estou utilizando o RAVE Report e já encontrei a solução. Utilizei o Componente RvNDRWriter1 que tem como propriedade PrinterIndex. Ficou ótimo: a linha que utilizei foi esta: RvNDRWriter1.PrinterIndex:=ComboBox1.ItemIndex; após ter listados no combobox as impressoras disponíveis. Ainda sim, agradeço de montão a sua ajuda, assim espero ajuda-lo. Antonio Carlos acf.slz@globo.com



Responder

Gostei + 0

25/05/2004

Fabio.hc

for I := 0 to Printer.printers.Count-1 do ComboBox1.Items.Add(Printer.Printers[I]); ComboBox1.ItemIndex:=printer.PrinterIndex;

declara a unit:

uses Printers


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar