Determinar impressora pelo ip
Bom dia a todos, como eu faço para determinar uma impressão para cada impressora?
Por exemplo, quero que o orçamento saia em uma impressora e o pedido em outra, quero determinar a impressora em configuração do sistema.
Att,
Cleverson Melo
Por exemplo, quero que o orçamento saia em uma impressora e o pedido em outra, quero determinar a impressora em configuração do sistema.
Att,
Cleverson Melo
Cleverson.
Curtidas 0
Respostas
Claudia Nogueira
13/11/2012
Eu trabalho dessa forma.
Tenho uma tabela chamada cfg_prin com os campos: id_cfgprin, micro, tipo e impressora.
Tenho uma tela para configuração das impressoras, exemplo:
Orçamento: ComboBox pra carregar as impressoras.
Recibo: ComboBox pra carregar as impressoras.
Nota Fiscal ComboBox pra carregar as impressoras.
No onShow dessa tela eu carrego as impressoras instaladas no Windows nesses Combobox.
Obs.: Adicione Printers ao uses do Form.
No onShow:
Nessa tela faz as configurações depois com um botão gravar, você grava na tabela cfg_prin as configurações.
Feito as configurações, na hora de mandar imprimir, eu tenho uma função que chama a impressão, e um dos parâmetros é o tipo do relatório.
Na função eu faço um select na tabela pelo tipo e mando a impressora na propriedade do componente de impressão.
Eu uso o report builder, então mando a impressora na propriedade: ReportPrincipal.PrinterSetup.PrinterName := aImpressora;
Tenho uma tabela chamada cfg_prin com os campos: id_cfgprin, micro, tipo e impressora.
Tenho uma tela para configuração das impressoras, exemplo:
Orçamento: ComboBox pra carregar as impressoras.
Recibo: ComboBox pra carregar as impressoras.
Nota Fiscal ComboBox pra carregar as impressoras.
No onShow dessa tela eu carrego as impressoras instaladas no Windows nesses Combobox.
Obs.: Adicione Printers ao uses do Form.
No onShow:
var
i: Integer;
Printer: TPrinter;
begin
Printer := TPrinter.Create;
try
for i := 0 to Printer.Printers. Count - 1 do
CbOrcamento.Items.Add(Printer.Printers.Strings[i]);
finally
Printer.free;
end;
CbRecibo.Items := CbOrcamento.Items;
CbNota.Items := CbOrcamento.Items;
with Qry do
begin
Close;
SQL.Text := 'SELECT * FROM cfg_prin WHERE (tipo = ''ORÇAMENTO'') AND (micro = ''nome_da_maquina'')';
Open;
if not isEmpty then
CbOrcamento.ItemIndex := CbOrcamento.Items.IndexOf(FieldByName('impressora').AsString);
Close;
SQL.Text := 'SELECT * FROM cfg_prin WHERE (tipo = ''RECIBO'') AND (micro = ''nome_da_maquina'')';
Open;
if not isEmpty then
CbRecibo.ItemIndex := CbRecibo.Items.IndexOf(FieldByName('impressora').AsString);
Close;
SQL.Text := 'SELECT * FROM cfg_prin WHERE (tipo = ''NOTA'') AND (micro = ''nome_da_maquina'')';
Open;
if not isEmpty then
CbNota.ItemIndex := CbNota.Items.IndexOf(FieldByName('impressora').AsString);
end;
end;
Nessa tela faz as configurações depois com um botão gravar, você grava na tabela cfg_prin as configurações.
Feito as configurações, na hora de mandar imprimir, eu tenho uma função que chama a impressão, e um dos parâmetros é o tipo do relatório.
Na função eu faço um select na tabela pelo tipo e mando a impressora na propriedade do componente de impressão.
Eu uso o report builder, então mando a impressora na propriedade: ReportPrincipal.PrinterSetup.PrinterName := aImpressora;
GOSTEI 0