Fórum Determinar impressora pelo ip #428665

13/11/2012

0

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
Cleverson.

Cleverson.

Responder

Posts

13/11/2012

Claudia Nogueira

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:

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;
Responder

Gostei + 0

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

Aceitar