Нарисовать диаграмму в файле .prpt, используя Java API и pentahoJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Нарисовать диаграмму в файле .prpt, используя Java API и pentaho

Сообщение Anonymous »

Как я могу нарисовать диаграмму в файле .prpt, используя Java API и pentaho?
Я использую файлы pentaho (.prpt) и Java API для создания отчетов. Я использую angular js и hql и отправляю данные для файлов .prpt и файлов pdf, созданных автоматически.
теперь я хочу нарисовать простую гистограмму по этим данным, и я не могу найти для этого какой-либо ресурс или помощь.
как мне может решить эту проблему?
public ResponseEntity getReport(OutputStream out, Map optionsMap) {
Reporter Rep = new Reporter();< /p>
String queryStr = "select sh.activityAsset.id as ID, " +
"count(sh.id) as countHistory " +
"from MAIServiceHistory sh " +
"where " +
"sh.activityAsset.id < 172 " +
"group by sh.activityAsset.id " +
"order by sh.activityAsset.id ";

List list = manager.createQuery(queryStr, Object[].class).getResultList();

return rep.getPDFReport("com/tida/mai/core/reports/test2.prpt", out, manager,queryStr, parametersMap);

public ResponseEntity getPDFReport(String reportAddress, OutputStream out, диспетчер EntityManager, строковый запрос,Map параметрыMap) {
try {
FileInputStream fileInputStream = новый FileInputStream(getReports(reportAddress, out, менеджер, запрос, параметрыMap));
byte[] содержимое = IOUtils.toByteArray(fileInputStream);
Заголовки HttpHeaders = новые HttpHeaders();headers.setContentType(MediaType.parseMediaType("application/pdf"));
String filename = "output.pdf";
headers.setContentDispositionFormData("file", filename);
>headers.setCacheControl("must-revalidate, post-check=0, pre-check=0");
вернуть новый ResponseEntity(content, headers, HttpStatus.OK);
} catch ( IOException e) {
e.printStackTrace();
возвращает ноль;

public File getReports(String reportAddress, OutputStream out, EntityManager manager, String query, Map parametersMap) {
ClassicEngineBoot.getInstance().start();
final MasterReport report = createReportDefinition(reportAddress, manager, query, parametersMap);
if (report != null) {
report.setAttribute("http://reporting.pentaho.org/namespaces ... butes/core",
"complex-text", "true");
}

try {
// Run the report and save the HTML output to a byte stream
//file.set.setContentType("application/pdf"); // Change to "application/pdf" for PDF output
// Use the HtmlReportUtil to generate the report to a Stream HTML
//HtmlReportUtil.createStreamHTML(report, out);
//NOTE: Changing this to use PDF is simple:
// 1. Change the above setContent call to use "application/pdf"
// 2. Instead of HtmlReportUtil, use the following line:

if (report != null) {
PdfReportUtil.createPDF(report, out);
}
} catch (ReportProcessingException rpe) {
rpe.printStackTrace();
} finally {
try {
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}

return null;
}

//
private MasterReport createReportDefinition(String reportUrl, EntityManager manager, String query, Map parametersMap) {
// Create a report using the autogenerated fields
try {
final ClassLoader classloader = this.getClass().getClassLoader();
final URL reportDefinitionURL = classloader.getResource(reportUrl);
ResourceManager managerRes = new ResourceManager();
managerRes.registerDefaults();
Resource res = managerRes.createDirectly(reportDefinitionURL, MasterReport.class);
MasterReport report = (MasterReport) res.getResource();
DataRow dr = new ParameterDataRow(parametersMap.keySet().toArray(new String[0]), parametersMap.values().toArray());
report.getParameterValues().putAll(dr);
Session session = (Session) manager.getDelegate();
session = session.getSessionFactory().openSession();
StaticSessionProvider sessionProvider = new StaticSessionProvider(session);
HQLDataFactory factory = new HQLDataFactory(sessionProvider);
factory.setQuery("default", query);
report.setDataFactory(factory);
return report;
} catch (Exception ex) {
ex.printStackTrace();
}
return null;
}


Подробнее здесь: https://stackoverflow.com/questions/791 ... nd-pentaho
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»