B
Bob84
Здравствуйте.
С помощью библиотеки POI создаем отчеты в Excel. После того как пользователю предоставляется файл с результатом, для загрузки, на некоторое время (10-20 сек) в окне перестают работать кнопки и ссылки для перехода на другие Xpage.
Примерный код кнопки, для создания отчета:
<div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">onClick, ServerSide</div></div><div class="sp-body"><div class="sp-content">
Для работы используем следующий jar POI - poi-3.10.1-20140818.jar
Спасибо.
С помощью библиотеки POI создаем отчеты в Excel. После того как пользователю предоставляется файл с результатом, для загрузки, на некоторое время (10-20 сек) в окне перестают работать кнопки и ссылки для перехода на другие Xpage.
Примерный код кнопки, для создания отчета:
<div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">onClick, ServerSide</div></div><div class="sp-body"><div class="sp-content">
C++:
try{
importPackage(java.lang);
importPackage(org.apache.poi.hssf.usermodel);
importPackage(org.apache.poi.hssf.util);
var sheetName = "Лист1";
var workbookName = "workbook1";
var doc: NotesDocument;
var prevDoc: NotesDocument;
var wb = new HSSFWorkbook();
var sheet1 = wb.createSheet(sheetName);
var query = "формула отбора"
var dcNotSorted: NotesDocumentCollection = database.search(query);
// <бегаем по коллекции>***************************************
rows=sheet1.getLastRowNum();
var dc: NotesDocumentCollection = SortCollection(dcNotSorted, ["ключ для сортировки"]);
doc = dc.getFirstDocument();
while (doc != null) {
//обработка документа, создаем строки таблици и заполняем их данными из документа
prevDoc = doc;
doc = dc.getNextDocument(doc);
}
// </бегаем по коллекции>***************************************
// <вывод результата>
try {
//Create the filename for the spreadsheet
var fileName = workbookName + ".xls";
// The Faces Context global object provides access to the servlet environment via the external content
var extCont = facesContext.getExternalContext();
// The servlet's response object provides control to the response object
var pageResponse = extCont.getResponse();
//Get the output stream to stream binary data
var pageOutput = pageResponse.getOutputStream();
// Set the content type and headers
pageResponse.setContentType("application/x-ms-excel");
pageResponse.setHeader("Cache-Control", "no-cache");
pageResponse.setHeader("Content-Disposition", "inline; filename=\"" + fileName + "\"");
//Write the output, flush the buffer and close the stream
wb.write(pageOutput);
} catch (e) {
print(e.toString());
} finally {
pageOutput.flush();
pageOutput.close();
// Terminate the request processing lifecycle.
facesContext.responseComplete();
}
// </вывод результата>
}catch (e) {
view.postScript('alert("' + e.toString() + '")');
}
Для работы используем следующий jar POI - poi-3.10.1-20140818.jar
Спасибо.