我想要的只是使用JasperReport + Maven + Eclipse生成一个简单的pdf报告。
我一段时间以来一直在浏览一个简单的例子,但却找不到任何一个。
答案 0 :(得分:7)
这是一份获取数据的小报告。
这是你的控制器
@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;
}
像这样的设计师页面
这是你的设计师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>
这是你的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>
这是jasper-views.xml
<bean id="pdfReportViewaddsummeryA"
class="org.springframework.web.servlet.view.jasperreports.JasperReportsMultiFormatView"
p:url="/WEB-INF/Reports/BMIReport.jasper"
p:reportDataKey="datasourcebmireportA"
/>
这是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>
我希望这可以帮助