Mostrar um aviso se o arquvo ja estiver em uso?
26/05/2008
0
Explicando: Tenho um codigo que gera um PDF, ai carrego o arquivo no Adobe. Bom até ai blz, mais vamos supor que eu tente abrir o mesmo arquivo outra vez gerando o codigo no Adobe se este ter sido fechado, me mostra o erro de ´Access violatiom at address ....´
Então o que eu preciso é saber se tem como eu colocar um aviso no meu sistema que aquele PDF ja esta em uso.
O código é este
{:Gera o arquivo PDF para ser anexado} n_Pedido := qr_PedidoSelecionadonum_pedido.AsString; wNomarq := ´PD´+FormatDateTime(n_pedido+´.yymmdd´, now); ppReport1.DeviceType := ´PDFFile´; ppReport1.SaveAsTemplate := True; ppReport1.SavePrinterSetup := True; ppReport1.TextFileName := ´c:\pedidos\´+wNomarq+´.PDF´; //Joga o pdf criado para a pasta aonde esta o programa lá no cliente. {:Mostrar o aviso aqui antes de executar o PrintReport} ppReport1.PrintReport;
Adriano_servitec
Posts
28/05/2008
Marcosrocha
29/05/2008
Adriano_servitec
Obrigado amigo, mais não consegui
Olhe
try ppReport1.TextFileName := ´c:\pedidos\´+wNomarq+´.PDF´; //Joga o pdf criado para a pasta aonde esta o programa lá no cliente. ppReport1.PrintReport; except {Todo -cModulo EnviaPed -oAdriano:Não funcionou, queria mostrar uma mensagem se o arquivo ja estivesse em uso no adobe} if FileOpen(Caminho+wNomarq+´.PDF´,fmOpenReadWrite) > 0 then else raise Exception.Create(´Arquivo está aberto. Feche o Adobe para gravar o pedido´); Abort; end;
29/05/2008
Marcosrocha
try ppReport1.TextFileName := ´c:\pedidos\´+wNomarq+´.PDF´; //Joga o pdf criado para a pasta aonde esta o programa lá no cliente. ppReport1.PrintReport; except {Todo -cModulo EnviaPed -oAdriano:Não funcionou, queria mostrar uma mensagem se o arquivo ja estivesse em uso no adobe} on E: Exception do begin if Pos(´CANNOT OPEN FILE´, E.Message) > 0 then raise Exception.Create(´Arquivo está aberto. Feche o Adobe para gravar o pedido´) else raise E; end; end;
29/05/2008
Adriano_servitec
try ppReport1.TextFileName := ´c:\pedidos\´+wNomarq+´.PDF´; //Joga o pdf criado para a pasta aonde esta o programa lá no cliente. ppReport1.PrintReport; except {Todo -cModulo EnviaPed -oAdriano:Não funcionou, queria mostrar uma mensagem se o arquivo ja estivesse em uso no adobe} on E: Exception do begin if Pos(´CANNOT OPEN FILE´, E.Message) > 0 then raise Exception.Create(´Arquivo está aberto. Feche o Adobe para gravar o pedido´) else raise E; end; end;
29/05/2008
Marcosrocha
29/05/2008
Adriano_servitec
Clique aqui para fazer login e interagir na Comunidade :)