Хорошо, вот как это работает; JasperFillManager
фактически возвращает объект JasperPrint
, поэтому:
// get the JRXML template as a stream
InputStream template = JasperReportsApplication.class
.getResourceAsStream("/sampleReport.xml");
// compile the report from the stream
JasperReport report = JasperCompileManager.compileReport(template);
// fill out the report into a print object, ready for export.
JasperPrint print = JasperFillManager.fillReport(report, new HashMap<String, String>());
// export it!
File pdf = File.createTempFile("output.", ".pdf");
JasperExportManager.exportReportToPdfStream(print, new FileOutputStream(pdf));
Наслаждайтесь.
Вы используете «строки» в своей функции, но вы забыли определить свою переменную. Измените свою функцию следующим образом.
function AddData() {
var itm = document.getElementById("itmSpinner").value;
var qty = document.getElementById("qty").value;
var rows += "<tr><td>" + qty + "</td><td>" + itm + "</td><td>" + qty + "</td></tr>";
$(rows).appendTo("#itemTbl tbody");
}
Пожалуйста, замените type="submit"
на type="button"
и повторите попытку. Надеюсь, он должен работать.
type="submit"
не находится в форме, он действует как type="button"
. Это не то.
– sjahan
13 July 2018 в 06:54
$( document ).ready(function() { /* your function */ });
. Попробуй это.
– PreP
13 July 2018 в 06:55
onclick="AddData()"
. Функции, вызываемые непосредственно в атрибутах Inline js, должны быть в глобальной области.
– Patrick Evans
13 July 2018 в 06:59
var rows = "<tr><td>" + qty + "</td><td>" + itm + "</td><td>" + qty + "</td></tr>";
. Нет необходимости конкаттировать по пустой строке. – sjahan 13 July 2018 в 06:58