protected void GenerateReport( object sender, EventArgs e ) { ReportToMoscowProducer producer = new ReportToMoscowProducer(); DateTime begin = DateTime.Parse( tbReportFromDate.Text ); DateTime end = DateTime.Parse( tbReportToDate.Text ); Stream strm = producer.ProduceReport( begin, end ); if( strm != null ) { // очищаем поток ответа Response.Clear(); // формируем заголовки ответа Response.ContentType = "application/octet-stream"; Response.AddHeader( "Content-Disposition", "attachment; filename=" + HttpUtility.UrlPathEncode( "ExcelReport.xml" ) ); // записываем данные в выходной поток strm.Seek( 0, SeekOrigin.Begin ); byte[] data = new byte[ strm.Length ]; strm.Read( data, 0, data.Length ); Response.BinaryWrite( data ); // сбрасываем данные в поток Response.Flush(); // завершаем работу Response.End(); } }
protected void GenerateReport( object sender, EventArgs e ) { ReportToMoscowProducer producer = new ReportToMoscowProducer(); DateTime begin = tbReportFromDate.Date; DateTime end = tbReportToDate.Date; Stream strm = producer.ProduceReport( begin, end ); if( strm != null ) { SendReport(strm); } }