使用JasperReports详细信息区域适合页面高度

法比奥B.

报告包含一个独特的中央“ Detail1”带,该带必须适合整个页面的高度(即使数据源仅提供一条记录),页脚也必须保留在A4尺寸页面的底部:

 _______________
|    header     |
|               |
|    row1       |
|    row2       |
|               |
|               |
|               |
|               |
|               |
|   footer      |
|_______________|

YES!

 _______________
|    header     |
|               |
|    row1       |
|    row2       |
|   footer      |
|_______________|

NO!

我想知道这是否与“拉伸”选项或背景有关。

安德烈亚斯·科维迪奥(Andreas Covidiot)

我们还存在一个相对更普遍的问题,即相对于页面高度垂直调整某些带或内容的大小。在您的情况下,可以这样做,例如,通过增加row2“底边距”或footer“顶边距”(或在它们之间引入一些“间隔元素”):

variant A    variant B   variant C
___________  __________  __________
|  header |  | header |  | header |
|_________|  |________|  |________|
|  row1   |  | row1   |  | row1   |
|_________|  |________|  |________|
|  row2   |  | row2   |  | row2   |
|    .    |  |________|  |________|
|    .    |  |    .   |  | spacer |
|_________|  |    .   |  |________|
|  footer |  | footer |  | footer |
|_________|  |________|  |________|

我目前能想到的解决此问题的唯一方法是一种破解,如果“您对将要伸缩的元素同级的大小了解得足够多”

我们想像这样设置spacer.height(或边距取决于所选择的变体):

spacer.height = page.height - header.height - row1.height - row2.height - footer.height

例子A

为了简单起见,我们假设

  1. 只是row2.height灵活(〜动态)
  2. 为了简单起见,我们假设row2.height这样的数字由换行符分隔,如下所示:

    17
    2
    34
    

使用variant A我们可以手动测试,在页脚将被压入下一页后,假设有多少个换行符/数字5

所以我们要做的就是

  • 或者动态地调整的底部边缘row2max( 0, 5 - row2LinefeedsCount * row2lineHeight )(例如,经由Groovy的或Java)
  • 或者,如果它基于某些SQL选择,则填写一些空白行,如下所示:
    -- (Oracle SQL)
    select 
      ...,  

      dyn_row2_col
      -- add additional linefeeds if necessary (when < 5 lines)
      --   (counts by the content length after removing all digits)
      || lpad(
           '', 
           max( 0,  5 - length( regexp_replace( dyn_row2_col, '\d', '' ))),
           CHR(13) )
      as dyn_row2_col,

      ...
    from ...

例子B

另一个示例可能是row2s的高度取决于某些查询结果的子行数并线性增加(例如,如果它是具有相等大小的行的简单子报告)。然后,我们也许可以使用variant C填写间隔(不可见),还有一些假的查询基础上,子行查询(和做休息空间的计算类似上面的例子)。


搜索引擎标签/词组

使条带高度适合页面尺寸/高度,条带高度为页面尺寸的100%,最大高度,垂直拉伸至100%父容器高度或页面尺寸


Jasper Reports的实施/使用思路

我发现在这种现代的Flex布局HTML /响应式布局中,无法轻松使用灵活的位置/大小表达式(例如,使页脚贴在底部水平浮动元素(例如,表格列)或spacer.height: 75%)时,很痛苦。世界。在这里应该加强绝对定位的哲学。Eclipse BIRT在这方面要好得多,但还有其他缺点。当然,实现可能会非常复杂,需要更多的内存,并且运行速度会更慢,但是我认为在非绝对定位要求的情况下,其好处是巨大的。

我写了一些通用的Scriptlet(我打算在jasper-utils中提供),它解决了基于相关列上命名组件样式(类似于CSS类)的水平列浮动问题。它的行为与HTML表格非常相似,它使用基于列特定百分比和“下溢-拉伸-计算”表达式的可用水平空间以及显示/隐藏列(在所有相关范围内)的可能性。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何防止JasperReports中的详细信息区域之间进行页面拆分

来自分类Dev

ReactPlayer高度缩放以适合页面之外

来自分类Dev

Bootstrap 面板适合页面高度

来自分类Dev

Ionic / Angular:使用“主要”详细信息图案时,没有显示详细信息页面?

来自分类Dev

调整文本区域的大小以垂直适合页面

来自分类Dev

设置背景色的最小高度以适合页面

来自分类Dev

使用unorderedlist创建主详细信息页面

来自分类Dev

共享点详细信息页面

来自分类Dev

Facebook管理页面详细信息

来自分类Dev

排序详细信息页面 MVC

来自分类Dev

Ios 中的主详细信息页面

来自分类Dev

如何使用Java API获取AWS账户详细信息?不适合IAM用户

来自分类Dev

如何使用jsPDF使图像适合页面中心?

来自分类Dev

如何使用固定导航使 fullpage.js 适合页面?

来自分类Dev

如何从详细信息页面导航到主详细信息页面?

来自分类Dev

如何使用QML从列表视图页面获取单个项目详细信息页面?

来自分类Dev

如何使用scrapy从主列表页面以及该特定列表的详细信息页面抓取数据

来自分类Dev

子报表会在“详细信息”区域重复

来自分类Dev

子报表会在“详细信息”区域重复

来自分类Dev

详细信息视图中的上一个页面的详细信息视图-Django

来自分类Dev

Xamarin昏暗页面(主要详细信息页面)

来自分类Dev

如何从产品页面转到产品详细信息页面

来自分类Dev

具有自适应高度的iframe,适合页面的“其余部分”

来自分类Dev

具有溢出滚动的3个div不能适合页面最大高度100%

来自分类Dev

iReport:将详细信息带插入高度固定框架

来自分类Dev

收缩详细信息部分高度MS Access

来自分类Dev

使用ServiceStack的IAuthRepository获取详细信息

来自分类Dev

在Casperjs中使用url的详细信息

来自分类Dev

使用LINQ获取XDocument的详细信息

Related 相关文章

  1. 1

    如何防止JasperReports中的详细信息区域之间进行页面拆分

  2. 2

    ReactPlayer高度缩放以适合页面之外

  3. 3

    Bootstrap 面板适合页面高度

  4. 4

    Ionic / Angular:使用“主要”详细信息图案时,没有显示详细信息页面?

  5. 5

    调整文本区域的大小以垂直适合页面

  6. 6

    设置背景色的最小高度以适合页面

  7. 7

    使用unorderedlist创建主详细信息页面

  8. 8

    共享点详细信息页面

  9. 9

    Facebook管理页面详细信息

  10. 10

    排序详细信息页面 MVC

  11. 11

    Ios 中的主详细信息页面

  12. 12

    如何使用Java API获取AWS账户详细信息?不适合IAM用户

  13. 13

    如何使用jsPDF使图像适合页面中心?

  14. 14

    如何使用固定导航使 fullpage.js 适合页面?

  15. 15

    如何从详细信息页面导航到主详细信息页面?

  16. 16

    如何使用QML从列表视图页面获取单个项目详细信息页面?

  17. 17

    如何使用scrapy从主列表页面以及该特定列表的详细信息页面抓取数据

  18. 18

    子报表会在“详细信息”区域重复

  19. 19

    子报表会在“详细信息”区域重复

  20. 20

    详细信息视图中的上一个页面的详细信息视图-Django

  21. 21

    Xamarin昏暗页面(主要详细信息页面)

  22. 22

    如何从产品页面转到产品详细信息页面

  23. 23

    具有自适应高度的iframe,适合页面的“其余部分”

  24. 24

    具有溢出滚动的3个div不能适合页面最大高度100%

  25. 25

    iReport:将详细信息带插入高度固定框架

  26. 26

    收缩详细信息部分高度MS Access

  27. 27

    使用ServiceStack的IAuthRepository获取详细信息

  28. 28

    在Casperjs中使用url的详细信息

  29. 29

    使用LINQ获取XDocument的详细信息

热门标签

归档