К тому же много где стандартным браузером является не IE, а Mozilla Firefox.
Несправедливо из-за такой несуразицы лишать себя очень мощного средства вывода в Эксель.

Что примечательно, при экспортировании отчета такой проблемы нет.

Очевидно, что в момент нажатия кнопки «Экспорт» сервлет BI Publisher отсылает нам поток байтов отчета с content-disposition = attachment. Таким образом, в момент появления окна загрузки Файрфокса вы можете сами поставить в соответствие файлу программу его открывающую.
Итак, обработчики нажатия кнопок «Просмотр» и «Экспорт» немного отличаются.

Не буду вдаваться в подробности. Скажу лишь, что решения проблемки достаточно немного поправить javascript-библиотеку xdo.js

Код функции viewReport заменим на следующий:
function viewReport(ctxpath) {
var theForm = document.xdoRptForm;
theForm._xpt.value='0';
//jack carver start
if ( theForm._xf.value =='txml' ) return exportReport('xdoRptForm', theForm.action);
//jack carver end
if (theForm._xf.value=='analyze') return callServer(ctxpath + '/crosstab.jsp',true);
else if (theForm._xf.value=='html') return writeReport(ctxpath, 'xdoRptForm', true);
else return writeBinaryReport(ctxpath, 'xdoRptForm', false);
}
В итоге получаем устраивающее нас поведение BI Publisher для выводимых в XML-формате отчетов в браузере Mozilla Firefox:

Этот комментарий был удален автором.
ОтветитьУдалитькакой выход есть для аналогичной проблемы на BI 11 для Mozilla Firefox (а так же для некоторых версий IE)?
ОтветитьУдалить