Impressora Padrão
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´);
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
Curtidas 0
Respostas
Vinicius2k
16/03/2004
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...
É 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...
GOSTEI 0
Carlosceuma
16/03/2004
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
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
GOSTEI 0
Vinicius2k
16/03/2004
:wink:
fica valendo como conhecimento adicional...
T+
fica valendo como conhecimento adicional...
T+
GOSTEI 0
Emir Neto
16/03/2004
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
GOSTEI 0
Fabio.hc
16/03/2004
for I := 0 to Printer.printers.Count-1 do ComboBox1.Items.Add(Printer.Printers[I]);
ComboBox1.ItemIndex:=printer.PrinterIndex;
declara a unit:
uses Printers
GOSTEI 0