Java JasperReports 与 Maven 和 Eclipse 示例
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/24791298/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
JasperReports with Maven and Eclipse example
提问by Ashay Batwal
All I want is to generate a simple pdf report using JasperReport+Maven+Eclipse.
我想要的只是使用 JasperReport+Maven+Eclipse 生成一个简单的 pdf 报告。
I have been browsing for a simple example for some time but not able to find any.
我一直在浏览一个简单的例子,但找不到任何例子。
- The JasperReport site doesn't seem to have any tutorial with Maven
- The Maven 2 JasperReports Plugin gives the following error in Eclipse Plugin execution not covered by lifecycle configuration: org.codehaus.mojo:jasperreports-maven-plugin:1.0- beta-2:compile-reports
- Most of the examples on other sites are with Ant and Jasper
- JasperReport 站点似乎没有任何关于 Maven 的教程
- Maven 2 JasperReports 插件在生命周期配置未涵盖的 Eclipse 插件执行中给出以下错误:org.codehaus.mojo:jasperreports-maven-plugin:1.0- beta-2:compile-reports
- 其他站点上的大多数示例都使用 Ant 和 Jasper
回答by GobyDot
its a small report for getting data.
它是一个用于获取数据的小报告。
this is your controller
这是你的控制器
@RequestMapping(value ="/BMIbyage",method = RequestMethod.GET)
public ModelAndView BMIbyage(ModelAndView modelAndView, ModelMap model, Map<String, Object> map,HttpServletRequest request,
@RequestParam("syear") int syear,@RequestParam("eyear") int eyear,HttpSession session){
String childid = (String) session.getAttribute("childid");
List<AdmissionSummery> asum = new ArrayList<AdmissionSummery>();
List<PatientDetails> patientdetail = patientService.listpatientbmi();
for(int i=syear;i<=eyear;i++){
asum.add(new AdmissionSummery());
int no=0;
for(int j=0;j<patientdetail.size();j++){
int dob = Integer.parseInt(patientdetail.get(j).getDateofbirth().substring(0, 4));
float bmi = patientService.listPatient(patientdetail.get(j).getChildid()).get(0).getBmi();
if(dob ==i && (bmi<18.5)){
no=no+1;
asum.get(asum.size()-1).setNooftime(no);
}
System.out.println("no"+no);
System.out.println("j"+j);
asum.get(asum.size()-1).setDuration(syear+" "+"-"+" "+eyear);
asum.get(asum.size()-1).setYear(i);
System.out.println("BMI"+bmi);
}
System.out.println("i"+i);
}
JRDataSource datasource = new JRBeanCollectionDataSource(asum);
model.addAttribute("datasourcebmireportA", datasource);
model.addAttribute("format", "pdf");
modelAndView = new ModelAndView("pdfReportViewaddsummeryA", model);
return modelAndView;
}
designer page like this
像这样的设计师页面
Here is your designer xml
这是您的设计师 xml
<title>
<band height="122" splitType="Stretch">
<rectangle>
<reportElement x="4" y="100" width="197" height="20"/>
</rectangle>
<textField>
<reportElement x="193" y="71" width="166" height="19"/>
<textElement>
<font size="14" isBold="true"/>
</textElement>
<textFieldExpression class="java.lang.String"><![CDATA[$F{duration}]]></textFieldExpression>
</textField>
<staticText>
<reportElement x="5" y="9" width="526" height="37"/>
<textElement textAlignment="Center">
<font size="14" isBold="true"/>
</textElement>
<text><![CDATA[Paediatric Professional Unit -Ward 11
Teaching Hospital Jaffna]]></text>
</staticText>
<line>
<reportElement x="5" y="92" width="550" height="1" forecolor="#CCCCCC"/>
<graphicElement>
<pen lineWidth="2.0"/>
</graphicElement>
</line>
<staticText>
<reportElement x="5" y="102" width="51" height="20"/>
<textElement textAlignment="Center" verticalAlignment="Middle">
<font size="12" isBold="true"/>
</textElement>
<text><![CDATA[Year]]></text>
</staticText>
<staticText>
<reportElement x="5" y="53" width="526" height="46"/>
<textElement>
<font size="14" isBold="true"/>
</textElement>
<text><![CDATA[
BMI value < 18.5kg/m2 -]]></text>
</staticText>
<staticText>
<reportElement x="59" y="102" width="142" height="20"/>
<textElement textAlignment="Center" verticalAlignment="Middle">
<font size="12" isBold="true"/>
</textElement>
<text><![CDATA[Number of Admission]]></text>
</staticText>
<line>
<reportElement x="56" y="100" width="1" height="20"/>
</line>
</band>
</title>
<pageHeader>
<band splitType="Stretch"/>
</pageHeader>
<columnHeader>
<band splitType="Stretch"/>
</columnHeader>
<detail>
<band height="21">
<rectangle>
<reportElement x="4" y="0" width="197" height="20">
<printWhenExpression><![CDATA[$F{year}!=0]]></printWhenExpression>
</reportElement>
</rectangle>
<textField>
<reportElement x="56" y="2" width="145" height="17"/>
<textElement textAlignment="Center" verticalAlignment="Middle"/>
<textFieldExpression class="java.lang.Integer"><![CDATA[$F{nooftime}]]> </textFieldExpression>
</textField>
<textField>
<reportElement x="5" y="1" width="51" height="20">
<printWhenExpression><![CDATA[$F{year}!=0]]></printWhenExpression>
</reportElement>
<textElement textAlignment="Center" verticalAlignment="Middle"/>
<textFieldExpression class="java.lang.Integer"><![CDATA[$F{year}]]> </textFieldExpression>
</textField>
<line>
<reportElement x="55" y="1" width="1" height="19">
<printWhenExpression><![CDATA[$F{year}!=0]]></printWhenExpression>
</reportElement>
</line>
</band>
</detail>
<summary>
This is your JSP
这是你的 JSP
<tr>
<td ><a href="#"><div class="box">
<form action="BMIbyage">
<table width="754">
<tr>
<td width="190">
<font color="black">BMI value < 18.5kg/m2</font></td>
<td width="124"></td>
<td width="82">
<select name="syear">
<option value="Pleaseselect">----</option>
<%for(int j=1980;j<=2030;j++)
{
%>
<option value="<%=j%>"><%=j%></option>
<%
}
%>
</select>
</td>
<td width="20"> to </td>
<td width="178">
<select name="eyear">
<option value="Pleaseselect">----</option>
<%for(int j=1980;j<=2030;j++)
{
%>
<option value="<%=j%>"><%=j%></option>
<%
}
%>
</select>
</td>
<td width="108"><input type="submit" value="Generate"></td>
</tr>
</table>
</form>
</div></a></td>
</tr>
this is the jasper-views.xml
这是 jasper-views.xml
<bean id="pdfReportViewaddsummeryA"
class="org.springframework.web.servlet.view.jasperreports.JasperReportsMultiFormatView"
p:url="/WEB-INF/Reports/BMIReport.jasper"
p:reportDataKey="datasourcebmireportA"
/>
here is the pom.xml
这是 pom.xml
<!-- report
-->
<dependency>
<groupId>net.sf.jasperreports</groupId>
<artifactId>jasperreports</artifactId>
<version>3.7.6</version>
<type>jar</type>
<scope>compile</scope>
<exclusions>
<exclusion>
<artifactId>commons-collections</artifactId>
<groupId>commons-collections</groupId>
</exclusion>
<exclusion>
<artifactId>commons-beanutils</artifactId>
<groupId>commons-beanutils</groupId>
</exclusion>
<exclusion>
<artifactId>commons-digester</artifactId>
<groupId>commons-digester</groupId>
</exclusion>
<exclusion>
<artifactId>commons-logging</artifactId>
<groupId>commons-logging</groupId>
</exclusion>
</exclusions>
</dependency>
i hope this could help
我希望这会有所帮助