Purchase:->Coffee Purchase Previous Years Comparison Print... '); output.writeStartElement("html"); output.writeAttribute("xmlns", "http://www.w3.org/1999/xhtml"); output.writeStartElement("head"); output.writeTextElement("title", "Coffee Purchase Previous Years Comparison"); output.writeEndElement(); output.writeStartElement("body"); output.writeTextElement("h1", "Coffee Purchase Previous Years Comparison"); output.writeStartElement("table"); output.writeAttribute("style", "page-break-after: auto; text-align: left"); output.writeAttribute("rules", "groups"); output.writeAttribute("cellpadding", "3px"); output.writeStartElement("thead"); output.writeStartElement("tr"); output.writeEmptyElement("th"); output.writeTextElement("th", "Sacks Purchased"); switch(unitBox.currentIndex) { case 0: output.writeTextElement("th", "Kilos Purchased"); break; case 1: output.writeTextElement("th", "Pounds Purchased"); break; } output.writeTextElement("th", "Cost"); output.writeEndElement(); //tr output.writeEndElement(); //thead output.writeStartElement("tbody"); var sacktotal = 0; var unittotal = 0; var costtotal = 0; var query = new QSqlQuery(); for(var i = startDateField.year(); i <= endDateField.year(); i++) { var q = "SELECT sum(quantity/(SELECT conversion FROM lb_bag_conversion WHERE item = purchase.item)), (sum(quantity) / :conversion)::numeric(12,2), sum(cost*quantity)::numeric(12,2) FROM purchase WHERE time >= '" + i + "-01-01' AND time < '" + (i+1) + "-01-01'"; query.prepare(q); output.writeStartElement("tr"); output.writeAttribute("id", "y"+i); query.bind(":conversion", unitBox.currentIndex == 0 ? 2.2 : 1); query.exec(); query.next(); output.writeStartElement("th"); output.writeCharacters(i); output.writeEndElement(); //th output.writeTextElement("td", query.value(0)); output.writeTextElement("td", query.value(1)); output.writeTextElement("td", Number(query.value(2)).toFixed(2)); sacktotal += Number(query.value(0)); unittotal += Number(query.value(1)); costtotal += Number(query.value(2)); output.writeEndElement(); //tr } query = query.invalidate(); output.writeEndElement(); //tbody output.writeStartElement("tfoot"); output.writeTextElement("th", "Totals:"); output.writeTextElement("td", sacktotal); output.writeTextElement("td", unittotal.toFixed(2)); output.writeTextElement("td", costtotal.toFixed(2)); output.writeEndElement(); //tfoot output.writeEndElement(); //table output.writeEndElement(); //body output.writeEndElement(); //html output.writeEndDocument(); view.setContent(buffer); buffer.close(); } refresh(); /* Update report as needed. */ startDateField.dateChanged.connect(function() { refresh(); }); endDateField.dateChanged.connect(function() { refresh(); }); ]]>