首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JasperReports与Maven和Eclipse示例

JasperReports与Maven和Eclipse示例
EN

Stack Overflow用户
提问于 2014-07-16 21:42:32
回答 1查看 14.5K关注 0票数 4

我想要的只是用JasperReport+Maven+Eclipse生成一个简单的pdf报告。

我已经浏览了一个简单的例子一段时间,但找不到任何。

  1. JasperReport站点似乎没有任何关于Maven的教程
  2. Maven 2 JasperReports插件在Eclipse的执行中出现了以下错误,未被生命周期配置涵盖:JasperReports beta-2:编译报告
  3. 其他站点上的大多数示例都与Ant和Jasper有关。
EN

回答 1

Stack Overflow用户

发布于 2014-07-17 04:17:03

这是一个获取数据的小报告。

这是你的控制器

代码语言:javascript
复制
@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 xml

代码语言:javascript
复制
<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

代码语言:javascript
复制
<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

代码语言:javascript
复制
<bean id="pdfReportViewaddsummeryA"
class="org.springframework.web.servlet.view.jasperreports.JasperReportsMultiFormatView"
 p:url="/WEB-INF/Reports/BMIReport.jasper"
 p:reportDataKey="datasourcebmireportA"
 />

这是pom.xml

代码语言:javascript
复制
<!--    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>

我希望这能帮上忙

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24791298

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档