웹 응용 프로그램에서는 프로그램이 서버 측에서 실행되기 때문에 Windows 응용 프로그램과 같은 보고서를 내보낼 수 없습니다. 내보내기가 실행되면 결과도 서버 측에 표시됩니다. 그렇다면 어떻게 완전한 클라이언트 측 내보내기를 수행할 수 있습니까? 실제로 이 방법은 어렵지 않습니다. 특정 웹사이트에 미리 생성된 임시 보고서 파일로 보고서를 내보낸 다음 response.redirect() 명령을 사용하여 브라우저 URL을 보고서 위치로 지정합니다. 사용자의 브라우저는 방금 내보낸 파일을 다운로드하려고 시도하고 파일이 클라이언트에 다운로드되어 필요한 효과를 얻습니다. 코드의 일부는 다음과 같습니다:
공개 문자열 내보내기Report()
{
내보내기옵션 creo = new 내보내기옵션();
DiskFileDestinationOptions crdo = new DiskFileDestinationOptions();
string FileName = Request.PhysicalApplicationPath + "ExportFileExap.xls"
//내보내기 옵션 설정
creo = Myrpt.ExportOptions;
creo.ExportFormatType=ExportFormatType.Excel;
creo.ExportDestinationType = ImportDestinationType.DiskFile;
//디스크 파일 옵션 설정
;
crdo.DiskFileName = 파일이름;
creo.DestinationOptions = crdo;
//보고서 내보내기
MyRpt.Export();
파일 이름을 반환합니다.
}
개인 무효 버튼Export_Click(개체 전송자, System.EventArgs e)
{
문자열 FileName = 내보내기보고서();
Response.Redirect(Replace(FileName,Request.PhysicalApplicationPath + "ExportFile",""));
}
웹으로 내보낼 때 내보내기 디렉터리에 파일을 생성할 수 있는 권한이 필요하며, 권한이 부족할 경우 "보고서 파일에 대한 접근이 거부되었습니다..."라는 오류가 표시됩니다. ASPNET 사용자(.NET Framework를 설치할 때 자동으로 생성된 시스템 사용자)에게 내보내기 디렉터리 파일에 대한 "쓰기" 권한을 부여하면 됩니다.