VB.net | Visualizar Relatório em PDF

diog0silva

Power Member
Boas.

Tive a ler uns fóruns e a ver uns videos de um Laércio Freitas (bastantes bons, por sinal), e explica lá como exportar um relatório para pdf, e visualizá-lo. Contudo, o exemplo que ele dá é num Web Form, e eu estou a usar Windows Forms.

Encontrei um forúm tambem respondido por ele, em que ele explica como exportar um relatório para pdf num Windows Form. Mas o que o código faz é gerar um pdf e guardá-lo, mas não o mostra.

http://social.msdn.microsoft.com/fo.../thread/e7d5514e-27b0-4ed7-bc84-c19964dc3f97/

Esse é o link onde ele explica isso.

Se alguém souber como, em vez de gerar o pdf e guardá-lo, apenas mostrá-lo, agradeço.
 
Em principio cria sempre um ficheiro, nem que seja numa pasta temporária.

Uma solução pode passar por guardares o ficheiro numa pasta predefinida, abres o dito ficheiro, e quando o utilizador já não precisa dele removes o ficheiro (tipo num evento onClose)

Espero que ajude.
 
diog0silva, não sei se entendi bem o teu problema mas o que te aconselho a usares é um ReportViewer. O ReportViewer é um componente como muitos outros (por exemplo um botão). Crias um Report que associas ao ReportViewer e depois visualisas o mesmo lá. A coisa boa disso é que ele export o teu report para PDF ou Excel, mesmo que não o queiras fazer pela barra de ferramentas do ReportViewer podes faze-lo programáticamente atravéz do mesmo.

Espero ter ajudado.
 
O process.Start("o meu ficheiro.pdf") o que faz é abrir um processo com o programa que por defeito abre os teus pdf's. Era isso que querias?

Se for assim para removeres um ficheiro podes usar o system.IO.File.Delete("o meu ficheiro.pdf")
 
Boas.

Epa, tou com um problema lol

Consigo abrir o pdf. O problema é q quando tenho um pdf gerado pela aplicacao aberto, e tento abrir outro, gera um erro, porque o ficheiro q ele está a tentar criar já existe e está aberto lol

O que eu queria era saber como fazer para:
- quando fecho o pdf, ele apágá-lo.. e
- se ele nao conseguir criar um ficheiro porque está outro aberto, ele tentar criar outro com outro nome.

é meio urgente lol
 
Ao guardares o ficheiro mete um timestamp no fim do nome.

Tipo "ficheiro.pdf" passa para "ficheiro_170420091423.pdf"

Código:
String.Format("{0}_{1}.pdf", nome_do_ficheiro, DateTime.Now.ToFileTime())
 
O problema de fazer assim é que ele tá sempre a gravar novos ficheiros.. fico com uma colecção deles guardados lol nao da para, ao fechá-lo, apagá-lo?
 
O process.Start("o meu ficheiro.pdf") o que faz é abrir um processo com o programa que por defeito abre os teus pdf's. Era isso que querias?

Se for assim para removeres um ficheiro podes usar o system.IO.File.Delete("o meu ficheiro.pdf")

É possível eliminar todos os ficheiros de uma pasta, sem eliminar a pasta?
 
Back
Topo