2011-09-14 1 views
0

Crystal Reports를 사용하고 있으며 PDF 보고서 스트림을 반환하는 코드가 있습니다. 보고서 작성이 완료되면 브라우저 (IE8)는 사용자가 보고서를 열거 나 저장할 것인지 묻는 메시지를 표시합니다. 그것은 작동하지만 예외가 던져지고 있습니다. 우리는 예외 처리하지만 처리는 다른 문제를 일으 킵니다. 는 SAP 사이트에서 post에 따라 이 스트림을 반환 할 때 브라우저에서 "열기/저장"을 묻는 메시지를 표시하려면 어떻게합니까?

// This completes but throws an exception. 
rpt.ExportToHttpResponse(crExportOptions.ExportFormatType, resp, true, fileName); 

솔루션

작동하지 않으며 예외가 더 이상 발생합니다. 그러나 문제는 더 이상 파일을 열거 나 저장할 수있는 옵션이 없다는 것입니다. 보고서가 방금 브라우저에서 열립니다.

  System.IO.Stream oStream = null; 
      byte[] byteArray = null; 
      oStream = report.ExportToStream(crExportOptions.ExportFormatType); 
      byteArray = new byte[oStream.Length]; 
      oStream.Read(byteArray, 0, Convert.ToInt32(oStream.Length - 1)); 

      response.ClearContent(); 
      response.ClearHeaders(); 
      response.ContentType = "application/pdf"; 
      response.BinaryWrite(byteArray); 
      response.Flush(); 
      response.Close(); 

      report.Close(); 
      report.Dispose(); 

나는 내 케이크를 원하고 그것을 먹고 싶다! 예외 (SAP 솔루션에 의해 해결됨)를 던지기를 원하지는 않지만 반환 된 PDF를 열거 나 저장하는 옵션을 원합니다. 위의 코드를 수정하려면 어떻게해야합니까? 저장/열기 옵션이 있습니까?

감사합니다.

답변

0

이 SO post에서 해결책을 찾았습니다.

은 ... 내 코드에 이것을 추가

response.AddHeader("Content-Disposition", string.Format("attachment; filename={0}", reportName)); 
관련 문제