Проблема с открытием отчета
От: Powerz Россия https://zagosk.in
Дата: 28.04.05 11:56
Оценка:
Есть форма report.aspx, которая содержит поля для параметров хранимой процедуры отчета и кнопку OK. после нажатия на OK в новом окне IE (window.open("viewer.aspx?параметры")) открывается viewer.aspx, который формирует отчет Crystal, экспортирует его в формат Excel и отправляет пользователь следующим образом:

Response.ClearHeaders()
Response.ClearContent()
Response.ContentType = "application/octet-stream"
Response.AddHeader("Content-Disposition", "inline; filename=  """ & DateTime.Now.Ticks.ToString & name & """")
ExportThroughMemory(report, type) ' пишет данные в Response.OutputStream
Response.Flush()
Response.End()


отчет открывается нормально. Но при попытке открыть еще один экземпляр отчета, не закрывая первый (с разными параметрами) появляется сообщение:
"/Microsoft Excel/ A document with the name Viewer.aspx is already open. You cannot open two documents with the same name ... ..."
Если открыть попытаться второй экземпляр отчета с теми же параметрами, то первая версия отчета исчезает(окно IE остается) и при попытке закрыть окно (уже пустое) первого отчета исчезает второй (думаю, что эта разница в поведении объясняется тем, что при открытии второго отчета с теми же параметрами, он берется из кэша)
Подскажите пожалуйста, можно ли сделать так, чтобы при попытке открыть следующий экземпляр отчета, он открывался в том же окне, что и предидущие?
заранее спасибо!
https://zagosk.in
Re: Проблема с открытием отчета
От: Козьма Прутков Россия  
Дата: 28.04.05 12:26
Оценка:
>
> Response.ClearHeaders()
> Response.ClearContent()
> Response.ContentType = "application/octet-stream"
> Response.AddHeader("Content-Disposition", "inline; filename=  """ & DateTime.Now.Ticks.ToString & name & """")
> ExportThroughMemory(report, type) ' пишет данные в Response.OutputStream
> Response.Flush()
> Response.End()
>

> "/Microsoft Excel/ A document with the name Viewer.aspx is already open. You cannot open two documents with the same name ... ..."
> Если открыть попытаться второй экземпляр отчета с теми же параметрами, то первая версия отчета исчезает(окно IE остается) и при попытке закрыть окно (уже пустое) первого отчета исчезает второй (думаю, что эта разница в поведении объясняется тем, что при открытии второго отчета с теми же параметрами, он берется из кэша)
> Подскажите пожалуйста, можно ли сделать так, чтобы при попытке открыть следующий экземпляр отчета, он открывался в том же окне, что и предидущие?
у меня дежавю! Я вижу кусок своего кода годовалой давности на форуме! Забавно
Это сообщение необоримо (по меньшей мере длительные мучения не принесли плода). Почему-то IE пытается сохранить этот файл в кеше под именем Viewer.aspx, а потом его открыть.
Так что если есть разумная возможность, выгружайте в файл с генерируемым именем, выкладывайте его на сервер и шлите на него Redirect. Удаляйте в фоне или по истечении сессии пользователя.
Еще вариант: написать http-handler, который будет обрабатывать какое-нить расширение, и передавать ему параметры. Имя у него будет тоже генерируемое: все нужное в параметрах. Он в свою очередь будет запрашивать viewer.aspx и его ответ слать в качестве своего.
Posted via RSDN NNTP Server 1.9
Да хранит вас господь в сухом прохладном месте...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.