Получите выход Base64 напрямую без записи pdf в desc [duplicate]

Вы можете обновлять значения из другой таблицы, используя внутреннее объединение, как это

  UPDATE [table1_name] AS t1 INNER JOIN [table2_name] AS t2 ON t1.column1_name] = t2. [column1_name] SET  t1. [column2_name] = t2.column2_name];   

Следуйте здесь, чтобы узнать, как использовать этот запрос http://www.voidtricks.com/mysql-inner-join-update/

, или вы можете использовать select в качестве подзапроса для этого

  UPDATE [table_name] SET [имя_столбца] = (SELECT [имя_столбца] FROM [имя_таблицы] WHERE [имя_столбца] = [значение]) WHERE  [column_name] = [значение];   

подробно описан здесь http://www.voidtricks.com/mysql-update-from-select/

26
задан Alex K 18 November 2013 в 13:10
поделиться

3 ответа

Хорошо, вот как это работает; 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));

Наслаждайтесь.

32
ответ дан Naftuli Kay 15 August 2018 в 20:29
поделиться
  • 1
    Если вы просто пытаетесь вывести отчет в файл, вы можете использовать exportReportToPdfFile без обработки выходного потока самостоятельно – Rangi Lin 20 December 2011 в 03:56
  • 2
    Правильно, но этот способ дает мне максимальную гибкость; Я могу написать выходной поток в файл или по сети или где угодно, я хочу :) – Naftuli Kay 20 December 2011 в 04:27
  • 3
    Обратите внимание, что компиляция является обычно лишним шагом. Вместо этого программное обеспечение должно заполнять отчет, используя файл .jasper, а не перекомпилировать файл .jrxml каждый раз. – Dave Jarvis 2 October 2016 в 08:50

JRExporterParameter устарел в последних версиях, это не устаревшее решение @stevemac answer

JRPdfExporter exporter = new JRPdfExporter();
exporter.setExporterInput(new SimpleExporterInput(jasperPrint));
exporter.setExporterOutput(new SimpleOutputStreamExporterOutput(outputStream));
SimplePdfExporterConfiguration configuration = new SimplePdfExporterConfiguration();
configuration.setMetadataAuthor("Petter");  //why not set some config as we like
exporter.setConfiguration(configuration);
exporter.exportReport();
9
ответ дан Community 15 August 2018 в 20:29
поделиться

Вы можете использовать JRExporter для экспорта заполненного отчета в разные потоки и форматы.

JRExporter exporter = null;

exporter = new JRPdfExporter();
exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, outputStream);
exporter.exportReport();

Также обратите внимание, что есть и другие экспортеры:

exporter = new JRRtfExporter();
exporter = new JRHtmlExporter();

Вы можете найти больше экспортеров доступно здесь: http://jasperreports.sourceforge.net/api/net/sf/jasperreports/engine/JRExporter.html

Все они должны принимать параметр OUTPUT_STREAM для контролировать назначение отчета.

16
ответ дан stevemac 15 August 2018 в 20:29
поделиться
  • 1
    Лучше, потому что полиморфный – AA. 14 October 2013 в 15:37
  • 2
    Через 5 лет параметр JRExportParameter устарел, я добавил не устаревший ответ – Petter Friberg 10 March 2016 в 13:27
Другие вопросы по тегам:

Похожие вопросы: