|
ActiveDelphi .: O site do programador Delphi! :.
|
Exibir mensagem anterior :: Exibir próxima mensagem |
Autor |
Mensagem |
marciobatista Profissional
Registrado: Terça-Feira, 25 de Mai de 2004 Mensagens: 578
|
Enviada: Qua Set 12, 2012 2:57 pm Assunto: problema ao imprimir em 40 colunas |
|
|
meu problema e o seguinte :
tenho um cliente q usa uma impressora daruma dr700 (nao fiscal) e nela sao impressas as vendas da seguinte forma :
Código: | ////onde local de impressao e ='\\servidor\daruma'
/// e no pc esta devidamente configurado o nome da impressora como daruma no compartilhamento e o nome do pc como servidor.
/// outro detalhe e que nao esta em rede , ou seja o computador de nome servidor e onde esta a impressora
//IMPRESSAO///////////////////////////////////////////////////////////
AssignFile(IMPRESSORA,localimpressao);
Rewrite(IMPRESSORA);
Write(IMPRESSORA);
Writeln(impressora);
Write(impressora,#27#70+#27#20);
Write(impressora,#27#70+#27#15);
write(impressora,#27#70+#27#15);
Writeln(Impressora,#27#14+' '+mnome);
Write(impressora,#27#70+#27#20);
Write(impressora,#27#70+#27#20);
Write(impressora,#27#70+#27#15);
Writeln(Impressora,' '+mendereco);
Writeln(impressora,mcidade+' Telefone : '+mtelefone);
Write(impressora,'Data : ');
Write(impressora,alinhadireita(DatetoStr(Date),10));
Write(impressora,alinhadireita('Hora :',31));
Writeln(impressora,alinhadireita(timetoStr(time),12));
Writeln(impressora,'------------------------------------------------------------');
Write(impressora,AlinhaEsquerda('Cliente :',11)+' '+ Alinhaesquerda(formrelorca.simpledataset1.fieldbyname('cliente').asstring, 32));
Writeln(impressora,AlinhaEsquerda('Codigo :',10)+' '+ Alinhaesquerda(inttostr(formrelorca.simpledataset1.fieldbyname('codigo').asinteger), 5));
Write(impressora,alinhaesquerda('Vendedor :',11)+' '+ Alinhaesquerda(formrelorca.simpledataset1.fieldbyname('vendedor').asstring, 30));
Writeln(impressora,alinhadireita('Venda :',10)+' '+ Alinhaesquerda(inttostr(formrelorca.simpledataset1.fieldbyname('num_resumo').asinteger), 5));
Writeln(impressora,'------------------------------------------------------------');
Writeln(impressora,'Codigo Descricao Numero/Quant. Valor' );
Writeln(impressora,'------------------------------------------------------------');
Formrelorca.simpledataset2.first;
WHILE NOT Formrelorca.simpledataset2.EOF DO BEGIN
Write(impressora,alinhaesquerda(INTTOSTR(FORMRELorca.simpledataset2.fieldbyname('codigo').AsINTEGER),10));
Write(impressora,alinhaesquerda(FORMRELorca.simpledataset2.fieldbyname('nome').Asstring,34));
Write(impressora,alinhaesquerda(FORMRELorca.simpledataset2.fieldbyname('cabecario').Asstring,3));
Write(impressora,alinhaESQUERDA(INTTOSTR(FORMRELorca.simpledataset2.fieldbyname('quantidade').AsINTEGER),3));
if FORMRELorca.simpledataset2.fieldbyname('promocao').Asfloat>0 then begin
WRITEln(impressora,AlinhaDireita(FormatFloat('#,##0.00',FORMRELorca.simpledataset2.fieldbyname('promocao').Asfloat),8));
end else
WRITEln(impressora,AlinhaDireita(FormatFloat('#,##0.00',FORMRELorca.simpledataset2.fieldbyname('pvenda').Asfloat),8));
FORMRELorca.simpledataset2.NEXT;
END;
Writeln(impressora,AlinhaDireita('--------------------', 60));
Write(impressora,#27#70+#27#18);
Write(impressora,#27#70+#27#14);
//Writeln(impressora,alinhadireita('Descto:',20)+' '+AlinhaDireita(FormatFloat('#,##0.00', formrelorca.simpledataset1.fieldbyname('total_descto').asfloat), 9));
Write(impressora,#27#70+#27#14);
Writeln(impressora,alinhadireita('Total :',20)+' '+AlinhaDireita(FormatFloat('#,##0.00', formrelorca.simpledataset1.fieldbyname('total_VENDAS').asfloat), 9));
Writeln(impressora,'------------------------------------------------------------');
Formrelorca.simpledataset3.first;
WHILE NOT Formrelorca.simpledataset3.EOF DO BEGIN
Write(impressora,alinhaesquerda('P.:',4)+''+alinhaesquerda(FORMRELorca.simpledataset3.fieldbyname('parcela').Asstring,5));
Write(impressora,alinhaesquerda('Venc.:',7)+''+alinhaesquerda(datetostr(FORMRELorca.simpledataset3.fieldbyname('vencimento').Asdatetime),10));
WRITEln(impressora,alinhadireita('Valor :',10)+''+AlinhaDireita(FormatFloat('#,##0.00',FORMRELorca.simpledataset3.fieldbyname('valor').Asfloat),12));
FORMRELorca.simpledataset3.NEXT;
END;
Writeln(impressora);
Writeln(impressora);
Writeln(impressora);
Writeln(impressora,' -------------------------------');
Writeln(impressora);
Writeln(impressora);
Writeln(impressora);
Writeln(impressora);
Writeln(impressora);
Writeln(impressora);
Writeln(impressora);
Writeln(impressora);
Writeln(impressora);
Writeln(impressora);
Writeln(impressora);
formrelorca.simpledataset4.Active:=false;
formrelorca.simpledataset3.Active:=false;
formrelorca.simpledataset2.Active:=False;
formrelorca.simpledataset1.Active:=False;
formrelorca.release;
System.Close(Impressora);
showmessage('Impressao terminada');
////FIM DA IMPRESSAO |
a impressao sai normalmente na impressora , so que depois de algumas impressoes para de imprimir e fica dando erro de I/O e tenho q reiniciar o pc para voltar a imprimir. me parece que o arquivo usado para imprimir fica em uso por algum motivo o qual nao consegui resolver. o estranho e q uso a mesma rotina em outros clientes com impressora identica e funciona sem problema.
desde ja agradeço a quem poder me ajudar |
|
Voltar ao Topo |
|
|
UhuckHai Aprendiz
Registrado: Sexta-Feira, 29 de Abril de 2011 Mensagens: 214 Localização: Marília - SP
|
Enviada: Qua Set 12, 2012 3:02 pm Assunto: Re: problema ao imprimir em 40 colunas |
|
|
marciobatista escreveu: | meu problema e o seguinte :
tenho um cliente q usa uma impressora daruma dr700 (nao fiscal) e nela sao impressas as vendas da seguinte forma :
////onde local de impressao e ='\\servidor\daruma'
/// e no pc esta devidamente configurado o nome da impressora como daruma no compartilhamento e o nome do pc como servidor.
/// outro detalhe e que nao esta em rede , ou seja o computador de nome servidor e onde esta a impressora
//IMPRESSAO///////////////////////////////////////////////////////////
AssignFile(IMPRESSORA,localimpressao);
Rewrite(IMPRESSORA);
Write(IMPRESSORA);
Writeln(impressora);
Write(impressora,#27#70+#27#20);
Write(impressora,#27#70+#27#15);
write(impressora,#27#70+#27#15);
Writeln(Impressora,#27#14+' '+mnome);
Write(impressora,#27#70+#27#20);
Write(impressora,#27#70+#27#20);
Write(impressora,#27#70+#27#15);
Writeln(Impressora,' '+mendereco);
Writeln(impressora,mcidade+' Telefone : '+mtelefone);
Write(impressora,'Data : ');
Write(impressora,alinhadireita(DatetoStr(Date),10));
Write(impressora,alinhadireita('Hora :',31));
Writeln(impressora,alinhadireita(timetoStr(time),12));
Writeln(impressora,'------------------------------------------------------------');
Write(impressora,AlinhaEsquerda('Cliente :',11)+' '+ Alinhaesquerda(formrelorca.simpledataset1.fieldbyname('cliente').asstring, 32));
Writeln(impressora,AlinhaEsquerda('Codigo :',10)+' '+ Alinhaesquerda(inttostr(formrelorca.simpledataset1.fieldbyname('codigo').asinteger), 5));
Write(impressora,alinhaesquerda('Vendedor :',11)+' '+ Alinhaesquerda(formrelorca.simpledataset1.fieldbyname('vendedor').asstring, 30));
Writeln(impressora,alinhadireita('Venda :',10)+' '+ Alinhaesquerda(inttostr(formrelorca.simpledataset1.fieldbyname('num_resumo').asinteger), 5));
Writeln(impressora,'------------------------------------------------------------');
Writeln(impressora,'Codigo Descricao Numero/Quant. Valor' );
Writeln(impressora,'------------------------------------------------------------');
Formrelorca.simpledataset2.first;
WHILE NOT Formrelorca.simpledataset2.EOF DO BEGIN
Write(impressora,alinhaesquerda(INTTOSTR(FORMRELorca.simpledataset2.fieldbyname('codigo').AsINTEGER),10));
Write(impressora,alinhaesquerda(FORMRELorca.simpledataset2.fieldbyname('nome').Asstring,34));
Write(impressora,alinhaesquerda(FORMRELorca.simpledataset2.fieldbyname('cabecario').Asstring,3));
Write(impressora,alinhaESQUERDA(INTTOSTR(FORMRELorca.simpledataset2.fieldbyname('quantidade').AsINTEGER),3));
if FORMRELorca.simpledataset2.fieldbyname('promocao').Asfloat>0 then begin
WRITEln(impressora,AlinhaDireita(FormatFloat('#,##0.00',FORMRELorca.simpledataset2.fieldbyname('promocao').Asfloat),);
end else
WRITEln(impressora,AlinhaDireita(FormatFloat('#,##0.00',FORMRELorca.simpledataset2.fieldbyname('pvenda').Asfloat),);
FORMRELorca.simpledataset2.NEXT;
END;
Writeln(impressora,AlinhaDireita('--------------------', 60));
Write(impressora,#27#70+#27#1;
Write(impressora,#27#70+#27#14);
//Writeln(impressora,alinhadireita('Descto:',20)+' '+AlinhaDireita(FormatFloat('#,##0.00', formrelorca.simpledataset1.fieldbyname('total_descto').asfloat), 9));
Write(impressora,#27#70+#27#14);
Writeln(impressora,alinhadireita('Total :',20)+' '+AlinhaDireita(FormatFloat('#,##0.00', formrelorca.simpledataset1.fieldbyname('total_VENDAS').asfloat), 9));
Writeln(impressora,'------------------------------------------------------------');
Formrelorca.simpledataset3.first;
WHILE NOT Formrelorca.simpledataset3.EOF DO BEGIN
Write(impressora,alinhaesquerda('P.:',4)+''+alinhaesquerda(FORMRELorca.simpledataset3.fieldbyname('parcela').Asstring,5));
Write(impressora,alinhaesquerda('Venc.:',7)+''+alinhaesquerda(datetostr(FORMRELorca.simpledataset3.fieldbyname('vencimento').Asdatetime),10));
WRITEln(impressora,alinhadireita('Valor :',10)+''+AlinhaDireita(FormatFloat('#,##0.00',FORMRELorca.simpledataset3.fieldbyname('valor').Asfloat),12));
FORMRELorca.simpledataset3.NEXT;
END;
Writeln(impressora);
Writeln(impressora);
Writeln(impressora);
Writeln(impressora,' -------------------------------');
Writeln(impressora);
Writeln(impressora);
Writeln(impressora);
Writeln(impressora);
Writeln(impressora);
Writeln(impressora);
Writeln(impressora);
Writeln(impressora);
Writeln(impressora);
Writeln(impressora);
Writeln(impressora);
formrelorca.simpledataset4.Active:=false;
formrelorca.simpledataset3.Active:=false;
formrelorca.simpledataset2.Active:=False;
formrelorca.simpledataset1.Active:=False;
formrelorca.release;
System.Close(Impressora);
showmessage('Impressao terminada');
////FIM DA IMPRESSAO
a impressao sai normalmente na impressora , so que depois de algumas impressoes para de imprimir e fica dando erro de I/O e tenho q reiniciar o pc para voltar a imprimir. me parece que o arquivo usado para imprimir fica em uso por algum motivo o qual nao consegui resolver. o estranho e q uso a mesma rotina em outros clientes com impressora identica e funciona sem problema.
desde ja agradeço a quem poder me ajudar |
.-. ja tive esse problema ai, arrumei trocando de impressora. não tinha tempo pra ficar martelando muito. _________________ _________________
if Post.State = psResolvido then
Post.Caption := Post.Caption + ' [RESOLVIDO]';
_________________
NERD POWER |
|
Voltar ao Topo |
|
|
Batera Colaborador
Registrado: Quarta-Feira, 23 de Julho de 2008 Mensagens: 4899 Localização: Maringá
|
Enviada: Qua Set 12, 2012 8:39 pm Assunto: |
|
|
Márcio, experimente adicionar essa linha no final da impressão:
Código: | CloseFile(Impressora); |
|
|
Voltar ao Topo |
|
|
darumadeveloper Novato
Registrado: Sexta-Feira, 26 de Agosto de 2011 Mensagens: 69
|
Enviada: Seg Set 17, 2012 2:26 pm Assunto: |
|
|
Boa Tarde Márcio,
Pode ser algo relacionado a permissão.
Voce pode me mandar um telefone para contato por email para poder te ajudar?
Segue meu email :
daruma.desenvolvedores@daruma.com.br
Aguardo retorno. |
|
Voltar ao Topo |
|
|
|
|
Enviar Mensagens Novas: Proibido. Responder Tópicos Proibido Editar Mensagens: Proibido. Excluir Mensagens: Proibido. Votar em Enquetes: Proibido.
|
|