通过 URL 从外部应用程序调用 Jasper 报告

Call Jasper report from external application through URL

我的要求是, 我的 windows 应用程序中有一个 url 指向 jasper 服务器中的 jasper 报告 我只需要我的碧玉服务器作为查询生成器, 当我从我的应用程序(有结果)调用报告时,结果应该作为 JSON 使用网络服务的数据。 我怎样才能实现它。 可能吗? 如果我错了请纠正我

对于XMLJSON中的原始数据,您可以使用JasperServer Domains和REST查询执行器服务

您需要 JasperReports Server v5.1 或更高版本以及带有 元数据层 的商业版本!

The v2/queryExecutor Service

REST endpoint for Jaspersoft Query Executor

摘要(仅在 link 损坏时有用)

致电:

{scheme}://{host}:{port}/{contextPath}/rest_v2/queryExecutor/{resourceUri}?q={queryString}

{queryString} 需要采用这种格式并进行 url 编码(请参阅 JasperReports Server User Guide 以获取更多详细信息

<query>
  <queryFields>
    <queryField id="inv_store.inv_store__store_name" />
    <queryField id="inv_store.inv_store__store_type" />
    <queryField id="inv_store__store_contact.inv_store__store_contact__store_manager" />
  </queryFields>
  <queryFilterString>inv_store__region.inv_store__region__sales_state_province == 'CA'</queryFilterString>
</query>

示例

http://localhost/jasperserver-pro/rest_v2/queryExecutor/public/Samples/Domains/supermartDomain?q=%3Cquery%3E%3CqueryFields%3E%3CqueryField+id%3D%22inv_store.inv_store__store_name%22+%2F%3E%3CqueryField+id%3D%22inv_store.inv_store__store_type%22+%2F%3E%3CqueryField+id%3D%22inv_store__store_contact.inv_store__store_contact__store_manager%22+%2F%3E%3C%2FqueryFields%3E%3CqueryFilterString%3Einv_store__region.inv_store__region__sales_state_province+%3D%3D+'CA'%3C%2FqueryFilterString%3E%3C%2Fquery%3E

这将 return 生成 xml,要获得 json 格式,请将 header “Accept: application/json” 添加到您的请求中。

调用前的身份验证参考JasperReports Server Web Service Guide

1.place 详细信息带中的字段并在每个字段中添加 属性 "net.sf.jasperreports.export.json.path" 2.deploy 在服务器上,因此它可用于 rest_v2 调用