- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经遇到过两种情况,感觉如果 JasperReports 有某种JRDesignElementGroup
,它们就可以解决。我检查了 net.sf.jasperreports.engine.design.
包的高低,但找不到类似的东西,尽管我找到了 JRDesignGroup
。这看起来有点完成了我正在寻找的东西,但我不太确定。
以下是我的问题突然出现的情况:
(1) 将多个文本字段组合在一起:
我想要一份报告,我可以在其中打印出一堆指标的名称和值;看起来像的东西:
Name: John Smith
Email: john.smith@example.com
我希望通过创建 1 个 JRDesignElement
子类实例并将其添加到我的 JasperDesign
对象中的带区来实现此目的。然而,经过深思熟虑,该设置需要 3 个单独的 JRDesignElement
:2 个 JRDesignTextField
(用于指标名称和值)和 1 个 JRDesignStaticText
用于冒号 (":") 和它们之间的空格。
有没有办法将这 3 个项目附加到一个组中,然后将该组添加到一个 band 中?
(2) 将图像及其标题/说明分组
除了使用 JRDesignImage
和 JRDesignStaticText
元素,我也想做与上面相同的事情,其中图像是要在我的报告中显示的图像,静态文本将是要放置在图像上方的标题或标题。
有什么方法可以将这 2 个项目附加到一个组中,然后将该组添加到一个 band 中吗?
如果是这样,任何人都可以提供 JRXML,或者更好的是,提供一些 Java 示例来说明如何进行此附加操作?如果没有,解决方案/解决方法是什么?
提前致谢!
最佳答案
(1) Grouping multiple text fields together:
JRDesignTextField
元素 //Detail
band = new JRDesignBand();
band.setHeight(40);
textField = new JRDesignTextField();
textField.setX(0);
textField.setY(0);
textField.setWidth(200);
textField.setHeight(40);
textField.setHorizontalAlignment(HorizontalAlignEnum.LEFT);
textField.setStyle(normalStyle);
textField.setMarkup(JRCommonText.MARKUP_HTML);
expression = new JRDesignExpression();
expression.setText("\"<b>Name: </b>\" + $F{Name} + \"<br/><b>Email: </b>\" + $F{Email}");
textField.setExpression(expression);
textField.getLineBox().getLeftPen().setLineWidth(1);
textField.getLineBox().getTopPen().setLineWidth(1);
textField.getLineBox().getRightPen().setLineWidth(1);
textField.getLineBox().setLeftPadding(10);
band.addElement(textField);
((JRDesignSection) jasperDesign.getDetailSection()).addBand(band);
JRDesignStaticText
和两个 JRDesignTextField
元素 //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("Name: ");
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.setText("$F{Name}");
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("Email: ");
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.setText("$F{Email}");
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);
(2) Group an image and its title/caption
使用三个 JRDesignImage
和单个 JRDesignStaticText
元素
band = new JRDesignBand();
band.setHeight(110);
String imgPath1 = "\"jasperreports.png\"";
String imgPath2 = "\"js_logo.png\"";
int img1Width = 105;
int img2Width = 200;
int distance = 20;
expression = new JRDesignExpression();
expression.setText(imgPath1);
JRDesignImage image = new JRDesignImage(jasperDesign);
image.setX(0);
image.setY(0);
image.setWidth(img1Width);
image.setHeight(26);
image.setScaleImage(ScaleImageEnum.FILL_FRAME);
image.setExpression(expression);
band.addElement(image);
expression = new JRDesignExpression();
expression.setText(imgPath2);
image = new JRDesignImage(jasperDesign);
image.setX(distance + img1Width);
image.setY(0);
image.setWidth(img2Width);
image.setHeight(87);
image.setScaleImage(ScaleImageEnum.FILL_FRAME);
image.setExpression(expression);
band.addElement(image);
expression = new JRDesignExpression();
expression.setText(imgPath1);
image = new JRDesignImage(jasperDesign);
image.setX(2*distance + img1Width + img2Width);
image.setY(0);
image.setWidth(img1Width);
image.setHeight(26);
image.setScaleImage(ScaleImageEnum.FILL_FRAME);
image.setExpression(expression);
band.addElement(image);
JRDesignStaticText staticText = new JRDesignStaticText();
staticText.setX(200);
staticText.setY(90);
staticText.setWidth(60);
staticText.setHeight(20);
staticText.setMode(ModeEnum.OPAQUE);
staticText.setHorizontalAlignment(HorizontalAlignEnum.LEFT);
staticText.setStyle(boldStyle);
staticText.setText("The title above images");
band.addElement(staticText);
((JRDesignSection) jasperDesign.getDetailSection()).addBand(band);
关于java - 碧 Jade 报告 : Grouping Report Elements,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8390393/
我正在处理一份 Jasper 报告,我想在其中显示选定的日期范围和时间。我使用以下表达式来格式化日期,但它显示的是 GMT 时区的时间。 new SimpleDateFormat("dd-MMM-yy
我正在处理一份 Jasper 报告,我想在其中显示选定的日期范围和时间。我使用以下表达式来格式化日期,但它显示的是 GMT 时区的时间。 new SimpleDateFormat("dd-MMM-yy
我有一个报告,在详细信息带中有 2 个子报告。我想在列页脚中添加一个分页参数,但是当我预览我的报告时,它最后给我一个空白页。我在它们的属性窗口中为我的子报告 block 设置了以下内容。 打印重复值
我正在自定义 Jasper Reports 生成的默认图表,但找不到使轴线变粗的方法。 到目前为止,我很容易找到更改颜色的示例: http://www.jfree.org/forum/viewtopi
我已经在论坛中浏览了几个不同的示例,但无法弄清楚这个。我有一个链接到子报告的报告元素。此元素的颜色设计为红色。我正在尝试修改 CSS 以在悬停时创建蓝色下划线,并且可以正常使用此代码: ._j
我想在以下情况下生成 pdf 格式的报告:人们在网站上输入信息,提交后,数据将传输到 jasper 报告服务器并创建 pdf。 Python 将是我完成任务的首选语言。 对于当前的 jasper 报告
谁能告诉我为什么 JRDesignExpression 的 setValueClass 方法被弃用了?我可以使用其他方法吗? 最佳答案 它已被弃用,因为字段 valueClass 已从其父类(supe
我正在创建一个 jasper 报告。因为我想在每个页面上应用边框。任何人都可以为此提供一些帮助。边框高度应取决于该页面的内容高度。 谢谢。 最佳答案 您可以向背景带添加全尺寸矩形或边框。 关于jasp
我只是 jasper 报告的初学者,我被问题困了几天。 我有两张 table 药物 {ID,medication_name} 和 剂量时间{ID,medication_id,dose_time} 申请
我在寻找此问题的解决方案时遇到了问题。我的代码运行后工作正常。它应该将我的 sql 数据库中的数据显示到我的 jtable,并且有一个按钮会触发显示 jasper 报告,但有一点问题,它总是向我显示消
我们有这段代码可以从 XML 输入生成 PDF 报告。它非常慢(在 Solaris T5220 上处理 280K 行需要 2 小时;处理 70K 行需要 10 分钟)。 DocumentBuilder
我想知道用字段值而不是参数填充 JasperReport 是否有任何性能优势(或其他优势)。 例如,假设我想用 10 个饼图填充一个饼图。 将饼图的表达式设置为有什么好处(如果有的话): JRDesi
例如我在 ResourceBundle 中有这样的字符串: some.string.1=String 1 some.string.2=String 2 some.string.3=String 3 在
我正在使用 Netbeans 7.1 进行开发。 在我的碧 Jade 报告中,我有子报告。它在一个地方完美地工作。我复制并粘贴到另一个地方,现在显示此错误: net.sf.jasperreports.
我有一个独立的应用程序,它的职责之一是获取 *.jrxml 文件的路径并进行编译。 在出现带有子报表的报表之前,我可以毫无问题地执行此操作,其中主报表的编译不会编译其任何子报表,从而导致子报表 *.j
我有一个 JasperReport,我想为这个报告创建一个封面。封面必须包含一些来自数据库的信息,如公司名称等。我正在尝试使用子报表来执行此操作,但没有成功。我创建了一个主报告,其中首先包含封面作为子
这让我发疯.. 上一小时我试图弄清楚为什么我的报告在添加子报表后立即停止工作..我已经检查并尝试了所有类似的问题 here , here和 here .没有成功.. 子报表肯定在同一目录中..定义如下
我已经遇到过两种情况,感觉如果 JasperReports 有某种JRDesignElementGroup,它们就可以解决。我检查了 net.sf.jasperreports.engine.desig
是否可以将纵向和横向子报表合并到一个报表中?我正在使用 iReport 2.0.4,但似乎找不到任何选项来执行此操作。 最佳答案 不幸的是,我认为这是不可能的。 所有子报表都遵循主报表的方向。 关于j
我正在开发一个网络应用程序,用户可以在该应用程序上生成某些数据的报告。我正在使用 JasperReport 来做。这是我第一次使用 JasperReport。所以我关注了这个 tutorial . 那
我是一名优秀的程序员,十分优秀!