Ir para conteúdo
Fórum Script Brasil
  • 0

Imprimir No Quick Report


jo_user

Pergunta

5 respostass a esta questão

Posts Recomendados

  • 0
Pessoal boa tarde, estou com uma dúvida no Quick Report, quando mando para a impressora ele automaticamente envia para LPT1: da minha máquina, é possível direcionar para qual impressora eu desejo enviar LPT2: ou USB?
jo_user, normalmente o quick utiliza a impressora padrão.

No preview você pode alterar a impressora destino através do botão de configuração da impressão.

Se for para alterar a impressora programaticamente, também dá. O que você quer realmente?

Link para o comentário
Compartilhar em outros sites

  • 0

você pode aterar sua imp. padrão de acordo com a sua escolha.

Utilize o seguinte código p/ alterá-la:

procedure MudaImpressora(index: integer); 
var 
  szPrinterName, szIniInfo, szSection: PChar; 
begin 
  try 
   GetMem(szPrinterName, SizeOf(Char) * 256); 
   GetMem(szIniInfo, SizeOf(Char) * 256); 
   GetMem(szSection, 10); 
   if (Pos(' on ', Printer.Printers[index]) = 0) then 
     StrPCopy(szPrinterName, Copy(Printer.Printers[index], 1, Length(Printer.Printers[index]))) 
   else 
     StrPCopy(szPrinterName, Copy(Printer.Printers[index], 1, Pos(' on ', Printer.Printers[index]) - 1 )); 
   GetProfileString('DEVICES', szPrinterName, nil, szIniInfo, 254); 
   if szIniInfo^ <> #0 then 
     begin 
     StrCat(szPrinterName, ','); 
     StrCat(szPrinterName, szIniInfo); 
     WriteProfileString('Windows', 'DEVICE', szPrinterName); 
     StrCopy(szSection, 'Windows'); 
     PostMessage(HWND_BROADCAST, WM_WININICHANGE, 0, LongInt(szSection)); 
   end; 
   FreeMem(szPrinterName, SizeOf(Char) * 256); 
   FreeMem(szIniInfo, SizeOf(Char) * 256); 
   FreeMem(szSection, 10); 
 except 
   on E: EOutOfMemory do ShowMessage(E.Message); 
   on E: EInvalidPointer do ShowMessage(E.Message);                    
 end; 
end;
O valor que é passado como parametro p/ o procedimento, se refere ao índice da impressora. você pode obter a lista de suas impressoras, c/ seu respectivo índice utilizando o código abaixo:
function slListaImpressoras: TStringList; 
var 
      i: Integer; 
      slTmp: TStringList; 
begin 
  slTmp := TStringList.Create; 
  for i := 0 to Pred(Printer.Printers.Count) do 
    slTmp.Add(Printer.Printers[i]); 

  Result := slTmp; 
end;

Falow!!

Kartter

Link para o comentário
Compartilhar em outros sites

  • 0

kartter, parece-me que este procedimento altera a impressora padrão do Windows, ou seja, para todos os aplicativos.

Se o jo_user, quiser mudar apenas a do QuickReport, o caminho é um pouco diferente. Para ele a "informação" está em QRPrinter (se não me engano)

Abraços

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...