Ol á pessoal , nesse codigo eu salvo o relatorio em pdf .
Agora como que eu fa ç o pra abrir o pdf de uma vez .
Nesse que eu fiz , ele salva
do diret ó rio . eu quero abrir o arquivo pdf , e fechar o form printpreview .
Obrigado
private void Relat_Produtos_Load ( object sender ,
EventArgs e )
{
// RetornaDataTable("", 0, 0);
//this.reportViewer1.RefreshReport();
this . reportViewer1 . ProcessingMode
= ProcessingMode . Local ;
this . reportViewer1 . LocalReport . ReportPath
=
@ "C:\DanceteriaUI\DanceteriaUI\Relatorios\Produtos\Produtos.rdlc" ;
//@"c:\Reports\Report1.rdl";
//C:\DanceteriaUI\DanceteriaUI\Relatorios\Produtos
reportViewer1. LocalReport . DataSources . Add (
new ReportDataSource ( "Produtos" ,
RetornaDataTable ( "" ,
0 , 0 )));
GeraRel ();
}
private
void GeraRel ()
{
Warning [] warnings ;
string [] streamids ;
string mimeType ;
string encoding ;
string extension ;
byte [] bytes
= reportViewer1 . LocalReport . Render (
"pdf" , null ,
out mimeType , out encoding ,
out extension ,
out streamids , out warnings );
FileStream fs
= new FileStream (@ "d:\output.pdf" ,
FileMode . Create );
fs. Write ( bytes ,
0 , bytes . Length );
fs. Close ();
}
protected
DataTable RetornaDataTable ( string
Nome , int
CategoriaID , int
ProdutoID )
{
DBAccess db
= new DBAccess ();
DataSet ds ;
StringBuilder str
= new StringBuilder ();
str. Append ( "SP_SELECT_PRODUTOS_FILTRO " );
db. AddParameter ( "@Nome" ,
Nome );
db. AddParameter ( "@CategoriaID" ,
CategoriaID );
db. AddParameter ( "@ID" ,
ProdutoID );
ds = db . ExecuteDataSet ( str . ToString ());
if
( ds . Tables [ 0 ]. Rows . Count
== 0 )
{
MessageBox . Show ( "Não existem dados!" );
}
return ds . Tables [ 0 ];
}