问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

IREPORT +jasperreport 做报表时 对于 $F{xxxx}传值很长的情况下,怎么让它自动换行呢?

发布网友 发布时间:2022-05-09 19:35

我来回答

2个回答

热心网友 时间:2023-10-15 11:59

最近刚刚学习jasperreport报表使用,做了几个例子,但在实现动态添加元素(列名,循环数据)上出现了问题,没办法解决.
但是出现这种异常,感觉自己没什么错,查了很久的资料还找不到答案,各位帮下忙.
net.sf.jasperreports.engine.design.JRValidationException: Report design not valid :
1. Field not found : Field1
这是设计
[img=http://f18.yahoofs.com/users/4806be90z2166bf67/86a5/__sr_/52b4.jpg?phA0C.IBEdd4GMmG][/img]
保存设计,名domeDynamic.jrxml.
代码
int randomNum = new Random().nextInt(20);
String jrxmlPath = this.getServletContext().getRealPath("/jasper");
jrxmlPath = jrxmlPath + "\\domeDynamic.jrxml";

JasperDesign jasperDesign= JRXmlLoader.load(jrxmlPath);//因为还是添加元素进去,所以还只是jrxml文件

JRDesignBand columnHeaderBand = (JRDesignBand )jasperDesign.getColumnHeader();//获取ColumnHeader拦
JRDesignBand detailBand = (JRDesignBand )jasperDesign.getDetail();//获取Detail拦
JRDesignTextField detailField= (JRDesignTextField )detailBand.getElementByKey("textField-2");
JRDesignStaticText columnHeaderField = (JRDesignStaticText)columnHeaderBand.getElementByKey("staticText-3");
Map map = new HashMap();
List list = new ArrayList(); 数据集 list.add(map);
map.put("Field1","1");
map.put("Field2","2");
//根据随即生成的数进行动态添加列
for(int i=0,y=3;i<=randomNum;i++,y++){
String detailFieldKey = "Field-"+y;
//String columnHeaderFieldKey = "staticText-"+y+1;
map.put(detailFieldKey,y);
//map.put(columnHeaderFieldKey,"列"+y);

detailField= (JRDesignTextField)detailField.clone();
detailField.setX(detailField.getX()+detailField.getWidth());
JRDesignExpression expression = new JRDesignExpression();
expression.setText("$F{"+detailFieldKey+"}");
System.out.println("$F{"+detailFieldKey+"}");
expression.setValueClass(java.lang.String.class);
detailField.setExpression(expression);
detailBand.addElement(detailField);

columnHeaderField = (JRDesignStaticText)columnHeaderField.clone();
columnHeaderField.setX(columnHeaderField.getX()+columnHeaderField.getWidth());
columnHeaderField.setText("列"+y);
columnHeaderBand.addElement(columnHeaderField);
}
list.add(map);
System.out.println(list);
JRDataSource jRDataSource = new JRMapCollectionDataSource(list); //用这个应该可以
JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign);//编译jrxml文件,异常也出在这一行.
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport,null,jRDataSource); //填充打印
OutputStream outputStream = response.getOutputStream();
response.setContentType("application/pdf");
response.setCharacterEncoding("GB2312");
response.setHeader("Content-Disposition","attachment; filename="+URLEncoder.encode("PDF报表","GB2312")+".pdf");
JRPdfExporter exporter = new JRPdfExporter();
exporter.setParameter(JRExporterParameter.JASPER_PRINT,jasperPrint);
exporter.setParameter(JRExporterParameter.OUTPUT_STREAM,outputStream);
exporter.exportReport();
outputStream.close();
out.clear();
out = pageContext.pushBody();
异常:
net.sf.jasperreports.engine.design.JRValidationException: Report design not valid :
1. Field not found : Field1
2. Field not found : Field2
3. Field not found : Field-3
4. Field not found : Field-4
5. Field not found : Field-5
6. Field not found : Field-6
7. Field not found : Field-7
8. Field not found : Field-8
at net.sf.jasperreports.engine.design.JRAbstractCompiler.verifyDesign(JRAbstractCompiler.java:260)
at net.sf.jasperreports.engine.design.JRAbstractCompiler.compileReport(JRAbstractCompiler.java:144)
at net.sf.jasperreports.engine.JasperCompileManager.compileReport(JasperCompileManager.java:219)
at org.apache.jsp.domeDynamic_jsp._jspService(domeDynamic_jsp.java:138)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:334)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Thread.java:595)
碰到过这问题的帮忙解决下! 谢谢呀。
顺便问一下 如果一个报表要使用多个数据源. 也就是多个Detail的情况下要怎么做?

热心网友 时间:2023-10-15 11:59

有个属性,选中要换行的字段,里面有个属性是自动换行的,就是你上面的这个Stretch With Overflow,还要选那个Stretch Type才会生效,你试试看追问选了还是不行 只能补几个空格让它换行了

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
环球黑卡里面有钱吗 收留我歌词 让我们相爱歌词 ...只知道前面的歌词是‘我燃烧了翅膀,你却像风一样,那风铃在摇晃,倾听... 酒店集中隔离期后,为啥还要经过研讨才能出 ...我燃烧了翅膀 你却想风一样 那风铃在摇晃 倾听一种悲伤~~~_百度知... 多吃辣椒对皮肤好吗? 集中隔离到期结束流程是什么 关于时间换算的问题... 从1998年到2024年一共经过了多少年? 谁能纤细介绍一下毒药台球杆? 请问中秋节的由来中有没有这样一个版本? 假如你是高中生李华,请根据以下要点,以日记的形式,叙述你在11月15日(周六)参加在乡下橘子采摘节(Or 目前最慢的SR是哪一个 求助,卡西欧手表 G-314RL 的电池型号是? 我前两天换了电脑,然后显卡是gtx1660的,原来的显示屏没换,现在电脑字体图标都有重影,咋回事啊? 关于韧带问题? 南北湖采橘子最佳时间 总α、总β放射性的联合测定 韩泰h439轮胎为什么没有3c认证 高达系列一共有多少台高达机体 无售后轮胎有3c认证标志吗 结晶水和物算那一类哒? 请教几个句子的 翻译 劈叉要怎么练 百威轮胎上怎么没有3c认证标志? sR314有假货吗 轮胎没有3c认证标志有那么重要吗? 成年男人怎么拉韧带 舒淇具体都参加过哪些活动呢? 地球与太阳公转方向 跑跑卡丁车新车宝宝追击者SR和皮蛋追击者SR比哪个更好 地球公转的基本知识我知道 厦门社保网上办理转出流程? 如果现浇楼板长期超过承重,会不会一下子就整片塌下的状况呢? 桔子还没摘可以用肥料吗? 什么是杠杆平衡呢 地球绕太阳公转的简介 豆角焖面中的面条可以干爽劲道,这是为什么? 地球绕太阳公转一圈是多长时间 以&lt;成长&gt;为话题的作文 以成长为话题初中作文 以NA表示阿伏加德罗常数的值,下列说法正确的是(  )A.124 g P4含有P-P键的个数为4NAB.1mol冰中含氢 skiip指的是什么 请问这个狗牵引绳是什么编法? 怎样用鞋带自制狗狗牵引绳 制作狗绳子的方法 扬州市中医院开发区分院核酸检测后能拿纸质的报告吗? 在工作过程中,有必要去制定计划吗? 我昨天在城南客运站做的核酸检测,是西安天博医学检验所给做的检测,我怎么获取自己的纸质报告单子?