GARANTIR DESCONTO

Fórum Erro ao Imprimir no delphi 2010 - I/O Error 103 #473115

16/03/2014

0

Boa noite, caros amigos
Estou com um grande problema para imprimir de uma aplicação em delphi 2010.
Aplicação sempre funcionou até ser instalada no Windows 8 e windows 8.1
Após instalação nestes sistemas operacionais não consigo mais imprimir aparece o erro i/o 103 error.
Não tem nada de errado com driver etc, pois apenas da aplicação da o erro! Acho que é algo sobre permissão ou incompatibilidade do Delphi com Windows 8

Segue a forma da impressão


procedure TfrmPreVenda.imprime;
const
cJustif = #27#97#51;
cFJustif = #27#97#52;
cEject = #12;

{ Tamanho da fonte }
c10cpi = #18;
c12cpi = #27#77;
c17cpi = #15;
cIExpandido = #14;
cFExpandido = #20;
{ Formatação da fonte }
cINegrito = #27#71;
cFNegrito = #27#72;
cIItalico = #27#52;
cFItalico = #27#53;
var
F:TextFile;
ini : TLerINI;
i,a, parcela : Integer;
cabecalho, listaItem, pagamentos, impressao : TStringList;
titulo, porta, obs : String;
b : TBancoDados;
countItem, countLine,totalLine,totalLineProd : Integer;
subTotal : Double;

nome : String;
g : TGeral;

begin

cabecalho := TStringList.Create;
listaItem := TStringList.Create;
pagamentos := TStringList.Create;
impressao := TStringList.Create;

try

begin
titulo := 'Atendimento';
cabecalho.Add(' ');
cabecalho.Add(' PRE VENDA');
cabecalho.Add(' ');
//cabecalho.Add(titulo);
cabecalho.Add(ini.config('IMPRESSORA','rSocial'));
cabecalho.Add(ini.config('IMPRESSORA','endereco'));
cabecalho.Add(ini.config('IMPRESSORA','cidade'));
cabecalho.Add(ini.config('IMPRESSORA','fone'));
cabecalho.Add('-----------------------------------------------');
cabecalho.Add(' ');
cabecalho.Add('Atendimento N: '+edtNumeroAtendimento.Text);
end;

b.consultClientes(codCli);

with DMmain do
begin
cabecalho.Add('Data : '+FormatDateTime('DD/MM/YYYY',Date));
cabecalho.Add('Atendente : '+nomAtend);
cabecalho.Add('Mecanico : '+nomMec);
cabecalho.Add('Atendimento : '+cboxAtendimento.Items[cboxAtendimento.ItemIndex]);
cabecalho.Add('-----------------------------------------------');

//função ok que acerta a quantidade maxima de impressão por linha----->

cabecalho.Add('Carro :'+' '+g.LRPad(CDSplacaCARRO.AsAnsiString,10,' ','R')+
' '+g.LRPad(CDSplacaCOR.AsAnsiString,15,' ','R'));
cabecalho.Add('Placa :'+' '+g.LRPad(CDSplacaPLACA.AsAnsiString,30,' ','R'));
cabecalho.Add('Cliente :'+' '+g.LRPad(lblNomeCliente.Caption, 30,' ','R'));


cabecalho.Add('-----------------------------------------------');
cabecalho.Add('Obs:'+ Copy(mmobs.Text,1,60));
listaItem.Add('-----------------------------------------------');
listaItem.Add('Cod. Qtde Un Produto Valor Total');
listaItem.Add('-----------------------------------------------');
CDSDadosGrid.First;
subTotal := 0;

while not CDSDadosGrid.Eof do
begin

listaItem.Add(''+g.LRPad(CDSDadosGridCODNOME.AsAnsiString,5,' ','R')+
' '+g.LRPad(CDSDadosGridQTDE.AsAnsiString,4,' ','R')+
''+g.LRPad(CDSDadosGridUNI.AsAnsiString,2,' ','R')+
' '+g.LRPad(CDSDadosGridDESCRICAO.AsAnsiString,30,' ','R')+
' '+g.LRPad(FormatFloat('###,##0.00',CDSDadosGridVALUNIT.AsFloat),9,' ','R')+
//' '+g.LRPad(FormatFloat('###,##0.00',CDSDadosGridDAVAL.AsFloat),9,' ','R')+
' '+g.LRPad(FormatFloat('###,##0.00',CDSDadosGridVALTOTAL.AsFloat),9,' ','R'));

CDSDadosGrid.Next;
end;
listaItem.Add('-----------------------------------------------');
end;
pagamentos.Add('Total :'+' '+edtTotal.Text);
pagamentos.Add('-----------------------------------------------');

with DMmain do
begin
pagamentos.Add('Meio de Pagamento: : '+cboxPagamento.Items[cboxPagamento.ItemIndex]);

end;

pagamentos.Add('');
pagamentos.Add('');
pagamentos.Add('-----------------------------------------------');
pagamentos.Add(' Assinatura Conferente');
pagamentos.Add(cJustif+' NAO E VALIDO COMO DOCUMENTO FISCAL'+cFJustif);
pagamentos.Add(cJustif+' NAO E VALIDO COMO GARANTIA DE MERCADORIA'+cFJustif);
pagamentos.Add('');
pagamentos.Add('');
pagamentos.Add('');
pagamentos.Add('');
pagamentos.Add('');



//castelo(cabecalho,listaItem,pagamentos);

impressao.Add(cabecalho.Text);
impressao.Add(listaItem.Text);
impressao.Add(pagamentos.Text);
impressao.SaveToFile('C:\impressaoAlalub.txt');


porta := ini.config('IMPRESSORA','porta');
try
AssignFile(F,porta);
Rewrite(F);
Writeln(F,impressao.Text);
except
ShowMessage('Erro ao abrir a porta de impressão');
end;


finally

if ini.config('IMPRESSORA','cPapel') = '1' then
begin
Writeln(F,chr(27)+'m');
end;
CloseFile(F);
end;
end;
Guilherme

Guilherme

Responder

Posts

25/03/2014

Paulo Pinto

tenta abrir o exe como administrador..

outra alternativa é colocar um except utilizando RaiseLastOSError para ver o erro que o SO Retorna.
Responder

Gostei + 0

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

Aceitar