Marc Jonkers
Marc Jonkers

Reputation: 506

export view daterange to excel

I'm trying to export a view daterange to excel, but it seems the notesviewentry is always empty. My code :

var vDateRange = session.createDateRange(sessionScope.selectedStartDate, sessionScope.selectedEndDate);
var exCon = facesContext.getExternalContext();
var writer = facesContext.getResponseWriter();
var response = exCon.getResponse();
var projects:NotesView = database.getView('visits_by_date_VB')
var viewNav:NotesViewNavigator = projects.createViewNav();
var viewEnt:NotesViewEntry = viewNav.getEntryByKey([vDateRange]);
var output:string = "";
while (viewEnt != null) {
 output += "<tr>";
 output += "<td>" + viewEnt.getColumnValues()[0]; + "</td>";
 output += "<td>" + viewEnt.getColumnValues()[1] + "</td>";
 output += "<td>" + viewEnt.getColumnValues()[2] + "</td>";
 output += "<td>" + viewEnt.getColumnValues()[3] + "</td>";
 output += "<td>" + viewEnt.getColumnValues()[4] + "</td>";
 output += "</tr>";
viewEnt = viewNav.getNext(viewEnt);
}
response.setContentType("application/vnd.ms-excel");
response.setHeader("Cache-Control", "no-cache");
response.setHeader("Content-Disposition","attachment; filename=export.xls");
writer.write("<table>");
writer.write("<thead><tr>");
writer.write("<td><b>Branch Id</b></td>");
writer.write("<td><b>Company Name</b></td>");
writer.write("<td><b>Share value</b></td>");
writer.write("<td><b>City</b></td>");
writer.write("<td><b>Country</b></td>");
writer.write("</tr></thead>");
writer.write(output);
writer.write("</table>");
writer.endDocument();

The sessionScope's are not empty.

Upvotes: 1

Views: 225

Answers (1)

Paul Stephen Withers
Paul Stephen Withers

Reputation: 15739

You're trying to get an entry based on a range, rather than getting all entries between the range. Try:

var viewEntryCollection:NotesViewEntryCollection = projects.getAllEntriesByKey([vDateRange]);
var viewEnt:NotesViewEntry = viewEntryCollection.getFirstEntry();

Upvotes: 2

Related Questions