栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

是否可以使用Jasper Reports动态生成报告而无需为每个报告生成Jasper?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

是否可以使用Jasper Reports动态生成报告而无需为每个报告生成Jasper?

使用JasperReport
API
动态生成报告的示例:

    //JasperDesign    JasperDesign jasperDesign = new JasperDesign();    jasperDesign.setName("The dynamically generated report");    jasperDesign.setPageWidth(595);    jasperDesign.setPageHeight(842);    jasperDesign.setColumnWidth(515);    jasperDesign.setColumnSpacing(0);    jasperDesign.setLeftMargin(40);    jasperDesign.setRightMargin(40);    jasperDesign.setTopMargin(50);    jasperDesign.setBottomMargin(50);    //Query    JRDesignQuery query = new JRDesignQuery();    query.setText("SELECt * FROM Address $P!{OrderByClause}");    jasperDesign.setQuery(query);    //Fields    JRDesignField field = new JRDesignField();    field.setName("Id");    field.setValueClass(java.lang.Integer.class);    jasperDesign.addField(field);    field = new JRDesignField();    field.setName("FirstName");    field.setValueClass(java.lang.String.class);    jasperDesign.addField(field);    field = new JRDesignField();    field.setName("LastName");    field.setValueClass(java.lang.String.class);    jasperDesign.addField(field);    //some pre    //Detail    band = new JRDesignBand();    band.setHeight(40);    JRDesignStaticText staticText = new JRDesignStaticText();    staticText.setX(0);    staticText.setY(0);    staticText.setWidth(60);    staticText.setHeight(20);    staticText.setMode(ModeEnum.OPAQUE);    staticText.setHorizontalAlignment(HorizontalAlignEnum.LEFT);    staticText.setStyle(boldStyle);    staticText.setText("ID: ");    staticText.getLineBox().getLeftPen().setLineWidth(1);    staticText.getLineBox().getTopPen().setLineWidth(1);    staticText.getLineBox().setLeftPadding(10);    band.addElement(staticText);    textField = new JRDesignTextField();    textField.setX(60);    textField.setY(0);    textField.setWidth(200);    textField.setHeight(20);    textField.setHorizontalAlignment(HorizontalAlignEnum.LEFT);    textField.setStyle(normalStyle);    expression = new JRDesignexpression();    expression.setValueClass(java.lang.Integer.class);    expression.setText("$F{Id}");    textField.setexpression(expression);    textField.getLineBox().getTopPen().setLineWidth(1);    textField.getLineBox().getRightPen().setLineWidth(1);    textField.getLineBox().setLeftPadding(10);    band.addElement(textField);    staticText = new JRDesignStaticText();    staticText.setX(0);    staticText.setY(20);    staticText.setWidth(60);    staticText.setHeight(20);    staticText.setMode(ModeEnum.OPAQUE);    staticText.setHorizontalAlignment(HorizontalAlignEnum.LEFT);    staticText.setStyle(boldStyle);    staticText.setText("Name: ");    staticText.getLineBox().getLeftPen().setLineWidth(1);    staticText.getLineBox().getBottomPen().setLineWidth(1);    staticText.getLineBox().setLeftPadding(10);    band.addElement(staticText);    textField = new JRDesignTextField();    textField.setStretchWithOverflow(true);    textField.setX(60);    textField.setY(20);    textField.setWidth(200);    textField.setHeight(20);    textField.setPositionType(PositionTypeEnum.FLOAT);    textField.setStyle(normalStyle);    expression = new JRDesignexpression();    expression.setValueClass(java.lang.String.class);    expression.setText("$F{FirstName} + " " + $F{LastName}");    textField.setexpression(expression);    textField.getLineBox().getRightPen().setLineWidth(1);    textField.getLineBox().getBottomPen().setLineWidth(1);    textField.getLineBox().setLeftPadding(10);    band.addElement(textField);    ((JRDesignSection) jasperDesign.getDetailSection()).addBand(band);

您可以从JasperReports分发包的
%JasperReportsFolder%/ demo / samples
文件夹中找到更多示例。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/569826.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号