Sales:->Green Coffee Sales Print '); output.writeStartElement("html"); output.writeAttribute("xmlns", "http://www.w3.org/1999/xhtml"); output.writeStartElement("head"); output.writeTextElement("title", "Green Coffee Sales"); output.writeEndElement(); output.writeStartElement("body"); var dateRange = dateSelect.currentRange(); var startDate = dateRange[0]; var endDate = dateRange[dateRange.length - 1]; output.writeTextElement("h1", "Green Coffee Sales: " + startDate + " - " + endDate); var conversion = 1; var unitText = 'Lb'; if(unitBox.currentIndex == 0) { conversion = 2.2; unitText = 'Kg'; } var query = new QSqlQuery(); query.prepare("SELECT item, (SELECT name FROM coffees WHERE id = item) AS name, (SELECT origin FROM coffees WHERE id = item) AS origin, (SELECT reference FROM coffees WHERE id = item) AS reference, (SUM(quantity)/:conversion)::numeric(12,3) FROM sale WHERE time < :ed ::date + interval '1 day' AND time >= :sd GROUP BY item ORDER BY name ASC"); query.bind(":conversion", conversion); query.bind(":ed", endDate); query.bind(":sd", startDate); query.exec(); output.writeStartElement("table"); output.writeAttribute("rules", "groups"); output.writeAttribute("cellpadding", "3px"); output.writeStartElement("thead"); output.writeStartElement("tr"); output.writeTextElement("th", "ID"); // 0 output.writeTextElement("th", "Coffee"); // 1 output.writeTextElement("th", "Origin"); // 2 output.writeTextElement("th", "Reference"); // 3 output.writeTextElement("th", "Quantity"); // 4 output.writeEndElement(); output.writeEndElement(); output.writeStartElement("tbody"); while(query.next()) { output.writeStartElement("tr"); output.writeAttribute("id", "r"+query.value(0)); reportitems.push(query.value(0)); output.writeTextElement("td", query.value(0)); output.writeTextElement("td", query.value(1)); output.writeTextElement("td", query.value(2)); output.writeTextElement("td", query.value(3)); output.writeTextElement("td", query.value(4)); output.writeEndElement(); } output.writeEndElement(); output.writeEndElement(); output.writeEndElement(); output.writeEndElement(); output.writeEndDocument(); view.setContent(buffer); buffer.close(); query = query.invalidate(); } refresh(); dateSelect.rangeUpdated.connect(refresh); ]]>