我正在评估jasperReports的报告生成.我在Windows和Linux之间的报告可移植性方面存在一些问题.我找到了一个(骇客)解决方案,以使其使其正常工作.但是我想知道什么是jasperreports-fonts: net.sf.jasperreports jasperreports-fonts 5.6.1 我看到它包含dejavu sans字体,但我不知道如何使用此罐子(我在网上什么也没发现),如果这会以优雅,简单的方式解决我的交叉平台. 您能告诉我更多有关此罐子的信息吗? 解决方案 在jasper报告(.jrxml文件)中,您可以使用多个字体显示标签/文本.这些字体可能不会始终在不同的平台/OS上可用. (例如,除非手动安装Linux机器,否则在Lin
以下是关于 jasper-reports 的编程技术问答
自从这篇文章以来我就学到了:如何伸展文本字段相对于贾斯珀(Jasper)报告中的数据宽度不可能扩展文本字段的宽度.因此,我现在试图确定是否可以在文本字段中嵌入静态文本? 我需要实现这样的方案: "您是现任雇主[未固定宽度文本]将与您联系 很快." 有人可以建议一种在jasper中做到这一点的方法吗?我都没有想法. 解决方案 您想要一个具有这样的值的单个文本字段: "Your current employer, " + $F{Employer} + ", will contact you soon." 或类似的东西: msg("Your current employer, {0}, will contact you soon.", $F{Employer}) 还有其他可能性...但是这些最常见.简而言之,这很常见.
假设我想要一个jasperReport,可以让用户过滤日期,如果他们愿意的话. SQL如下: select * from foo where bar = $P{bar} and some_date > $P{some.date} 现在,如果他们没有通过日期,我不想在某个日期过滤.我发现了人们使用的以下kludge: select * from foo where bar = $P{bar} $P!{some.date.fragment} 和some.date.fragment参数是用以下默认值定义的: ($P{some.date} == null || $P{some.date}.equals("")) ? "" : "AND some_date >'" + new java.sql.Date($P{some.date}.getTime()).toString() + "'" 这不起作用,因为toString没有以我的SQL Server理解的格式输出日期.
调用jasperfillmanager.fillreport()时,我们会得到以下例外.令人困惑的是,它发生在我们的"生产"环境中,但在我们的测试环境中效果很好. 显然,此问题发生在静态属性的初始化期间,我们认为这可能与贾斯珀(Jasper)的多线程有关(threadlocal-stuff). 我们尝试了一些建议所示的Java.awt.headless = true JVM设置,但没有任何更改.我们确实需要有关故障排除的建议,或者需要在一个环境中而不是另一种环境中导致这一点的线索.据我们所知,它们是一样的,但是显然某些东西是不同的,我们没有想法来检查. 所以问题真的是... 我们如何解决这样的问题? jasper报告4.7(3.7也发生) java 1.6,flex(服务器上的graniteds)/弹簧/冬眠 (我们不是使用EJB,我们通过简单的战争文件部署) FunctionName: com.ibm.ws.webcontainer.servlet.
我在 jaspersoft Studio 中开发了模板设计.如有必要,我可以上传模板代码.我使用与PostgreSQL数据库的连接创建的模板通过JDBC填写报告.然后,我选择了本地 jasperreports服务器并在服务器上下载模板.在这方面,我有几个问题. 我可以用作数据JSON或XML(而不是JDBC)? 使用 Web Services ? ,我如何将数据(JSON或XML)传递到存储在服务器上的模板 您不能在Python中做一个简单的例子吗? 解决方案 是的,您需要使用JSON或XML数据适配器. 您可以然后将其部署在jasperreports服务器中.尽管在该教程中没有说明,但您还需要将JSON或XML文件上传使用实际数据,数据适配器中引用的文件. 您的文件的外观是表报告在存储库的/Reports/Interactive 路径上的报告.如果您使用Jaspersoft Studio的存储库资源管理器检查报告,您将看到该报告使用同一文件夹中的CSV数据适配器
有系统,具有数据,并且可以为其数据提供Web服务(例如Lotus Notes数据库).贾斯珀(Jasper)可以通过调用网络服务来获取报告的数据吗? 解决方案 您可以,但是它可能会很快变得非常复杂.但是,如果您想走那条路,那么 jrxmldatasource .您将必须按照: 来定义数据源 new net.sf.jasperreports.engine.data.JRXmlDataSource( net.sf.jasperreports.engine.util.JRLoader.getLocationInputStream("http://yourserver.com/xml_data_source") 请参阅 this ,在某人似乎已经开始了类似的任务,从远程服务器检索报告的XML数据. 话虽如此,这可能会少得多,如果您从代码中获取服务器的数据,请选择您想要的报告的字段并将其传递,您的代码可能会更加可维护.例如,例如JRMAPCollection DataSour
我在Java(使用Apache Axis)中有一个Web服务,该网络是文档的ID,并致电JasperReports创建一个PDF文件(以前在Java App -Server -Server端创建的报告),以创建报告,我是我的报告.使用这些方法:jaspermanager.fillreport和jasperexportmanager.exportreporttopdf.最后一个返回一个字节数组.我的WebService接收数组并将其编码为base64字符串,PHP从WebService中接收此字符串作为响应. 我想在PHP中重新创建文件,但我不知道是否可以.我正在尝试使用以下片段进行此操作: private function createFileFromString($stringWithFile){ header('Content-Description: File Transfer'); header("Content-Type: application/p
我已经在Jaspersoft Studio中开发了模板设计,并将文件上传到Jasperserver.我想将数据(JSON或XML)发送到我的Python应用程序中填充报告模板,并以一些流行的格式收回报告,例如使用REST API(例如PDF,XLS). 我不想将数据存储在服务器上.我怎样才能做到这一点?或数据必须存储在服务器上,并且没有其他通过网络服务传输的方式? 解决方案 数据不一定必须驻留在服务器上. 您可以以 @tobi6建议的方式设计模板,以便可以通过输入控制参数传递数据. 然后,您可以使用报告服务或ReportExecutions服务来获取所需的输出. 在您的情况下,数据可以是实际数据(XML或JSON)或数据源(数据文件的URL). 这是一些用于使用XML数据的基本示例(对于JSON非常相似): 实际数据作为参数 jasperReports模板:
我正在使用Jdeveloper 11.1,Oracle 11和Tibco JasperReports 6.0.1. 我在使用ApplicationModule(Model -EJB)执行此操作时尝试从我的网页(ViewController)生成Jasper报告.最后,PDF文件必须通过电子邮件发送,这就是为什么我将其放入模型项目. 如果我执行了应用程序模块,则可以正常工作,也不例外,PDF的生成很好并发送. 但是,如果我执行客户端方法,因为网页我会得到以下例外: net.sf.jasperreports.engine.JRException: Errors were encountered when compiling report expressions class file: C:\Users\rodmar\AppData\Roaming\JDeveloper\system11.1.1.7.40.64.93\DefaultDomain\Simple_Blue_
使用jasperser v4.1.0使用ireport v4.0.1,我正在尝试找到一个语法,以将子报告链接到主报告,使我可以在iReport中对其进行测试,然后通过存储库浏览器部署到服务器. iReport中子报告表达式中的子报告的默认语法是 $P{SUBREPORT_DIR} + "mySubReport.jasper" 当您从iReport部署它时,它足够聪明,可以捡起它并建议将其更改为 "repo:mySubReport.jrxml" 然后将所有子报告部署到主报告的资源文件夹. 这太好了,但是不幸的是,它随后在iReport中编辑了文件以保存此更改,这意味着您不得在不手动重新编辑所有子报告表达式的情况下在iReport中运行报告 - 这使得测试和部署过程使得对服务器确实很痛苦,尤其是在报告中有多个子报告时. 我以为我至少可以将$ p {subrepport}的值设置为" repo:"或"我的\ local \ filepath",以便至少我只
我已经研究了这个问题已经有一段时间了,很少见到参考文献(例如 this ). 我知道观众是一个摇摆组件,但我想实现集成/拥有可以预览报告的容器之类的东西. 我还没有看到Angular提供的任何此类组件默认值.是否有人尝试过类似的东西,或者最好创建自己的网络组件(也许是聚合物). 预先感谢. 解决方案 可能由于上述原因而不是真正的可能. 刚刚看到了一个相关的想法/方法:将报告导出为HTML并提供给HTML渲染容器,例如Angular的NG-Bind-HTML(类似于此答案). 目前,只是另一个"两美分". 其他解决方案 我不能说查看器,但是是的,您需要可视化. 使用Visualize.js,任何构建Web应用程序的人都可以更容易地将强大的分析作为集成体验.开发人员可以嵌入高度交互式的可视化和报告,其控制和功率比以前使用IFRAME,图表库或使用其他BI供应商解决方案更具控制和功率.可视化.JS利用Jaspersoft Analytic Serv
我正在使用JasperReport和Spring MVC 3进行报告Web应用程序,以将生成的报告(HTML)显示到网页中. 我是两个框架的新手,我在HTML报告中遇到了渲染图像的麻烦. tomcat日志: No mapping found for HTTP request with URI [//] in DispatcherServlet with name '' 我猜想未显示报告中的图像可能是由于DispatcherServlet映射URL:/. 使用标签可以是解决方案? 编辑: 我已经在模型中添加了一些导出参数: model.addAttribute("net.sf.jasperreports.engine.export.JRHtmlExporterParameter.IS_OUTP
我对JasperReports有问题.尝试从数据库下载数据时,我会得到此错误: net.sf.jasperreports.engine.JRException: Error retrieving field value from bean : mybean at net.sf.jasperreports.engine.data.JRAbstractBeanDataSource.getBeanProperty(JRAbstractBeanDataSource.java:123) at net.sf.jasperreports.engine.data.JRAbstractBeanDataSource.getFieldValue(JRAbstractBeanDataSource.java:96) at net.sf.jasperreports.engine.data.JRBeanCollectionDataSource.getFieldValue(JRBeanCo
有什么方法可以将/嵌入JasperServer集成到另一个Web应用程序中? 问题是应绕过jasperserver的登录页面.是否可以通过Web服务/REST,跳过登录页面进行身份验证,然后在 iframe 中显示主服务器页面,还是为此效果显示的? 谢谢. 解决方案 您可以使用HTTP协议并将报告拉动在iframe中.身份验证信息需要以J_username和J_Password为单位. 要使用REST服务,您需要编写一个REST客户端(我使用带有HTTP身份验证的泽西岛进行了验证验证信息). 它还提供了我尚未尝试的集成肥皂服务. 其他解决方案 JasperServer身份验证是由Spring Security实现的,因此您可以轻松地使用SPER Security支持的SSO机制. 您可以轻松找到XML配置文件(用于安全性).
我是 jasperreports 的新手,我想在Web应用程序中使用 jasperviewer 获得报告预览. Web应用程序中是否有可能或任何其他查看方法(没有PDF和XLSX)? 解决方案 您可以导出到HTML文件,然后您可以将其发送为输出或ServletOutputStream,在帧中显示 String htmlpath="E:/JASPER/OUTPUT/test_jasper.html"; JasperDesign jasperDesign = JRXmlLoader.load(inputStream); JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign); JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameters, conn);
如何将解放字体与我的圣杯战争打包?这些字体可能无法在我部署到的服务器上可用,我需要我的报告系统字体. 我如何将字体包括在战争中,以便它们在classpath上并提供JVM? ? 解决方案 如果您将它们用于jasper-reports,那么您就可以做到这一点. grails-app/conf/jasperreports_extension.properties net.sf.jasperreports.extension.registry.factory.simple.font.families=net.sf.jasperreports.engine.fonts.SimpleFontExtensionsRegistryFactory net.sf.jasperreports.extension.simple.font.families.liberationsans=jasper_fonts.xml grails-app/conf/jasper_fonts.x
我对Jasper Reports Studio中初始值表达式的理解是,该值应该是第一个值.所以我确实将其设置为: $F{rptran_units}.add(new BigDecimal(200)) 和我变量的表达式 $F{rptran_units} 并制作了我的计算总和. 这是因为我希望我的变量表达式的第一个值添加了200个,然后随后的值继续求和而不会反复添加200个.我想我可能不会以正确的方式进行操作.我很感谢您如何使用初始价值表达或任何其他可以帮助我实现目标的方法来实现这一目标的澄清. 是的开始(细节带的第一次迭代). 初始值是: 在首次计算其表达式之前,从变量从变量中假定的值变量 ,但这并不意味着变量以此值开头,如果您想在字段上计算总和,实际上它不会传递给计算引擎上述链接中的表达式为$V{variable1}+5 但是,解决您的特定问题的解决方案(在当前的$F{rptran_units}的当前总和中添加200个)非常简单,只需在显
我尝试用jasperreport导出一个CSV文件,问题是我想打印出'€'的货币. 当我搜索解决方案时,我意识到它是关于文件编码的!我写这个代码! //JasperPrint is already filled HttpServletResponse httpServletResponse = (HttpServletResponse) FacesContext.getCurrentInstance().getExternalContext().getResponse(); httpServletResponse.setContentType("application/csv; charset="+Charset.forName("utf-8").displayName()); httpServletResponse.setCharacterEncoding(Charset.forName("utf-8").displayName()); httpServletRespon