Fórum Imprimir direto na impressora Nao consigo... #362790
20/08/2008
0
é o seguinte:
Já tentei de tudo por aqui, e nao consigo um exemplo simples de Imprimir direto na Impressora.
Será que alguem pode me mandar um código de meia duzia de linhas para começo? vai ser de grande valia pra dar os primeiros passos.
teria que ser com dados de uma TABLE, ou seja vou imprimir todos os clientes da tabela
CodCli na posicao 10, NomeCli na posiçao 15 , e DatCadastro na posiçao 50
Nao se preocupem com salto de pagina ou fim de arquivo, só quero ver a impressora imprimindo.
Quanto ´a visualizaçao do relatorio, fica pra outra oportunidade, mas de repente eu aprendo isso.
Obnrigado a todos
Jotas
[b:a6da3a8f92][/b:a6da3a8f92]
Jotas
Curtir tópico
+ 0Posts
21/08/2008
Diegotiemann
A solução mais simples a adotar, é criar um relatório no QuickReport e em vez de chamar SEuForm.seuQuickREp.preview, chame SEuForm.seuQuickREp.Print;
Gostei + 0
21/08/2008
Julianomv
no BAT so tem a linha assim
type nomearq_q_escreveu.txt > prn
Gostei + 0
21/08/2008
Paulo
Arq:TextFile;
begin
//Estas duas linhas são para configurar a Font, Tamanho e se é negrito ou não
Printer.canvas.font.name := ´Draft 10cpi´;
Printer.canvas.font.style := [];
//AssignPrn - Abre sempre a impressora padrão
//AssignFile - Você terá que informar a porta de impressão(´LPT1´)
AssignPrn(Arq);
Rewrite(Arq);
while not eof(Arq) do
begin
Writeln(Arq
end;
end;
Te mando algumas funções para usar, para alinhar e etc....
Esta função acima ajuda a você a repetir um determinado caracter
Seu uso é:Writeln(Arq,RelRepStr(´-´,80)); Repete numa folha de 80 colunas o hifem.
Esta função evita os caracteres estranhos para a impressora LX300 ou similar, pois ela não reconhece ~,ç,´,´,^ da lingua portuguesa
Seu uso é:AnsiToAscii(String);
Ajusta valores numericos à direita, como é o padrão. Seu uso é:
Writeln(Arq,AjustaNum(String,9)) >> O Nove é o tamanho do campo numerico.
Função para alinhar String à direita como é o padrão. Seu uso é:
Writeln(Arq,AjustaStr(String,35)) >> 35 é o tamanho do campo String.
Espero que te ajude e a mais alguem isso que te passei. Claro que há outras formas de alinhr e etc... Só depende de quem vai escrever os códigos.
Gostei + 0
21/08/2008
Brunodsr
Gostei + 0
21/08/2008
Jotas
Obrigadão pelas funcoes que vc me mandou tambem..
Mas Olha só: ainda nao consegui o mais facil
Eis o teu código:
var
Arq:TextFile;
begin
//Estas duas linhas são para configurar a Font, Tamanho e se é negrito ou não
Printer.canvas.font.name := ´Draft 10cpi´;
Printer.canvas.font.style := [];
//AssignPrn - Abre sempre a impressora padrão
//AssignFile - Você terá que informar a porta de impressão(´LPT1´)
AssignPrn(Arq); /
Rewrite(Arq);
while not eof(Arq) do
begin
Writeln(Arq
end;
end;
Eu quero imprimir os atrtibutos da minha table1 CodFunc,NomeFunc,Salario
Como atribuir a Tabe1, à variavel Arq ??
eu fiz assim: assignfile(arq, ´table1´)
Me ajuda ai, mais claramente, porque nao consegui
e eu preciso imprimir nas posicoes
por exemplo: PRINT.CANVAS.TESTOUT(10,10, ´ tABEL1.COD´ OU ARQ NAO SEI..,,
ha... coloque tambem o Begin.doc. e o Enddoc
Me explica por favor e desculpe
att.
Jotas
Gostei + 0
22/08/2008
Paulo
Assim não vai funcionar mesmo. Você deve dar um While na tabela e vir relacionando cada campo à variavel arq:
Desta forma você vai atribuindo à variável Arq, os valores dos campos.
Lembrando que você deve dar um AssignPrn ou AssignFile, rewrite e etc... antes, dar um First na tabela antes do While e etc...e um closefile(arq) no final de tudo.
Gostei + 0
22/08/2008
Jotas
Agora sim, Tá dando mais certo que Beleza Pura.
procedure TForm1.BitBtn1Click(Sender: TObject);
var
Arq:TextFile;
begin
tabela.Open;
//Estas duas linhas são para configurar a Font, Tamanho e se é negrito ou não
Printer.canvas.font.name := ´Draft 10cpi´;
Printer.canvas.font.style := [];
AssignFile(arq, ´LPT1´);
AssignPrn(arq);
Rewrite(Arq);
TABELA.First;
while not tabela.eof do
begin
Writeln(arq, Tabela.FieldByName(´CodFunci´).AsString + ´ - ´ + Tabela.FieldByName(´NomFunci´).AsString);
tabela.Next ;
end;
CloseFile(Arq);
end;
So Falta Uma pequena coisa...
Preciso de Começar a imprimir, o codigo na Coluna10, e o Nome a partir da coluna 50.
Como Funciona, o Printer.textOut() ??
Tem como colocá-lo aqui, em vez de Writln???
So mais essa, valeu?
Jotas
Gostei + 0
22/08/2008
Paulo
Gostei + 0
22/08/2008
Jotas
é uma pena, que nao pode ser facil igual ao Clipper5. (É MUITA COISA PRA ESCREVER, PARA IMPRIMIR UMA LINHA)
Entao se tiver calculos, Ai é que ferrou tudo...
Eu tenho que imprimir uma Fl. de Pagamento, ou um contracheque, e sao 3 colunas...
Nem sei como fazer..
Abraços, e mais uma vez Obrigado
att.
JOTAS
Gostei + 0
22/08/2008
Paulo
Gostei + 0
22/08/2008
Godzilla_xf
Olá, por que vc naum usa os componentes do Vinicius2k, o VDOPrint: http://sourceforge.net/project/showfiles.php?group_id=164969&package_id=186980
ou o RDPrint:
http://www.deltress.com.br/rdprint.htm
Gostei + 0
22/08/2008
Jotas
Fico alegre em poder contar com a sua colaboraçao, e de todos aí.
Eu vou me aprofundar mais um pouco em relatorios, pois eu ainda estou engatinhando, e acabo me complicando todo, e atrapalhando voces.
Imprimir um relatório simples, uma linha em baixo da outra, eu sei fazer no Rave, ou qualquer outro aplicativo.
Se eu Souber imprimir uma Fl.dePagamento, onde Vc. Tem Uma coluna para Nome do Funcionario, Base de Salario, etc.. e Outra no Meio do Formulario, com os Proventos em ordem de codigos... e a ultima coluna para descontos tambem em ordem de código.
Se eu aprender a fazer isso, estou apto para fazer quaisquer relatorios.
Voce acha que o Rave, ou RDPrint, Faz isso? Deve fazer sim, eu que nao conheço ainda..
EXEMPLO ASSIM:
RELATORIO DE FOLHA DE PAGAMENTO
--------------------------------------------------------------------------------
Nome REF- proventos REF - descontos
Admissao
----------------------------------------------------------------------------------
Jose de Tal 001-Salarios 101 - Inss
12//05/2008 002-Ferias 102 - Irf
003-O.Ganhos 103 - C.Sindical
105 - Adiantamento
Base IR Total de Prov
Base INSS Total Descontos Liquido a Receber:
___________________________________________________________
outro funcionario ............
Bem, Paulo, talvez me aprofundando no RAVE, eu consiga um lealult parecido, nem que tenha que usar um monte de Bandas etc...
Como disse, vou Tentar, se nao conseguir, vou mandar Um BD pra voce, com 4 tabelas, e te mando o que eu gostaria de aprender.
Obrigado Mais uma Vez, e a Todos ai
Jotas.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)