菜单

FineReport层式报表消除大数量集体现难题战略,finereport计谋

2019年8月29日 - 金沙前端

FineReport层式报表化解大额集显示问题计谋,finereport计谋

正文以填报报表为例,通过分页的章程,来消除大额集展现的主题材料。

福如东海的探讨正是经过在SQL里筛选部分数据库数据,以完毕浏览器能够合理合法的突显报表页面。(数据分段,语句笔者那选用的是MYSQL,假使要用其他数据库,请查看FineReport帮忙文书档案)

步骤一:打开fenye.cpt文件。

模板分界面如下

 金沙国际 1

八个ds,和一部分数码,及藏匿的一站式。

 

躲藏一行内容如下

 金沙国际 2

此地数据的效能会在底下提起。

 

ds1 里的剧情如下

金沙国际 3

讲话内容 SELECT * from aaa limit ${f},${p}

目标是从第${f}跳起来,选拔${p}数据(那几个$p正是展现的页数,$f的总计能够上面公式($page-1)*$p,mysql的limit的偏移量是从0伊始)。

 

在模板参数里,小编设置了她们的暗中认可值

 金沙国际 4

$P=20

$page=1;

以此和全局参数同理,在模板预览的时候是看不到数据的,必得到突显页面包车型大巴时候参数才通过url传进来。

 

ds2里的内容如下

 金沙国际 5

本条讲话就相比较简单正是求数量总的数量再除以每页页数,就能够博取总页数。

 

报表主体

 金沙国际 6

率先行的多少分别是前一页,后一页,总页数和当前页以及三个/,用来在工具栏里展现上一页和下一页等操作使用的,那御史常是不显示的,所以大家先屏蔽了(遮蔽)。其余的哪怕客户数量的来得了。

 

为了显示报表能和我们如常报表一样,大家还亟需做什么样?

 金沙国际 7

此地就供给写代码能实现上海教室的遵从了。

 

点开填报预览的齿轮

 金沙国际 8

能够观察大家那边用了7个自定义按键和八个加载截至事件

加载结束事件的代码如下:

var toolbar = contentPane.toolbar;

var items = toolbar.options.items;

var
customButton=items[2];//JQUEPRADOY取大家的工具栏上的按键.items[2]意味着的是第一个,也正是非常显示成文本框开关。

var inner = customButton.$table;

var btnWrapper = $(“em”, inner);

btnWrapper.html(“<input data-role=’none’
type=’text’  class=’fr-texteditor’ style=’width: 42px; height: 16px;
text-align: center;’>”);

//考订这些按键的脾气,让它成为文本类型,居中,鼠标放上次Logo是编写制定状态。

var cellValue =
contentPane.curLGP.getCellValue(“D1”);//获取D1单元格的值便是page,也正是当前页。

var $input = $(“input”, btnWrapper);

$input.val(cellValue);//给这几个文件控件复制,用的是JQUEOdysseyY的办法,能够COPY。

var total=contentPane.curLGP.getCellValue(“C1”);

if (total>parseInt(total)){total=parseInt(total)+1;

}

contentPane.toolbar.options.items[4].setText(total);

//把总页数呈现在第5个控件上,因为那么些数值大概是小数,所以判别下要不要加一甩卖。

contentPane.toolbar.options.items[3].setText(contentPane.curLGP.getCellValue(“E1”));

//把斜线写在第四个控件上。

7个自定义开关:

第一个首页:

代码如下:

window.location.href=”${servletULacrosseL}?reportlet=fenye.cpt&op=write&page=1″;//链接到fenye.cpt,page 参数=1,代表第一页。

其次个上一页:

代码如下:

var page=
$(“tr[tridx=0]”,”div.content-container”).children().eq(0).html();  //取第一行第一个单元格内容。

if(page==0)

{

this.setEnable(false);

alert(“页面逾越内定的限量”);

}

else

window.location.href=”${servletUOdysseyL}?reportlet=fenye.cpt&op=write&page=”+page//若无低于1仿佛常跳转,不然突显页面超越钦点的限制,这些控件设置不可能使用。

其八个能够跳转的当前页:

  var toolbar = contentPane.toolbar;

        var items = toolbar.options.items;

        var customButton=items[2];

        var inner = customButton.$table;

        var btnWrapper = $(“em”, inner);

var $input = $(“input”, btnWrapper);

//取那些控件

$input.blur(function(){

  var toolbar = contentPane.toolbar;

        var items = toolbar.options.items;

        var customButton=items[2];

        var inner = customButton.$table;

        var btnWrapper = $(“em”, inner);

var $input = $(“input”, btnWrapper);

var page=$input.val();

var
total=$(“tr[tridx=0]”,”div.content-container”).children().eq(2).html(); 

if (total>parseInt(total)){total=parseInt(total)+1;

}

if(parseInt(page) > parseInt(total) || parseInt(page) <
parseInt(1) )

{

alert(“你输出的页数不再钦定范围内”);

}

else

window.location.href=”${servletURL}?reportlet=fenye.cpt&op=write&page=”+page

});

//失去宗旨后输入的值是还是不是在钦定的界定内,假使在跳转到钦赐页面,就在else前边的U本田CR-VL,不然输出你的输出页面不对提醒。失去大旨代表正是点击任哪个地方方或然点击TAB键。

 

第多少个斜线:
以此在加载时间里管理了。那边没有须要处理。
第三个总页数:
本条在加载时间里管理了。那边不必要管理。
第两个下一页:
var page=
$(“tr[tridx=0]”,”div.content-container”).children().eq(1).html();  
var
total=$(“tr[tridx=0]”,”div.content-container”).children().eq(2).html(); 
//JQURUY取下一页和总页数
      if (total>parseInt(total)){total=parseInt(total)+1;
     }
//推断总页数是还是不是整数,不是加一
      if(parseInt(page) > parseInt(total))
  {
this.setEnable(false);
alert(“页数超过钦赐范围内”);
}
else
金沙国际,window.location.href=”${servletURL}?reportlet=fenye.cpt&op=write&page=”+page
//假使下一页在这一个范围就跳转到这里

本条控件不可用,输出出错。
第八个末页:
代码如下:
var
total=$(“tr[tridx=0]”,”div.content-container”).children().eq(2).html();  
//取总页数。
if (total>parseInt(total)){total=parseInt(total)+1;
}
window.location.href=”${servletURL}?reportlet=fenye.cpt&op=write&page=”+total
//剖断总页数是还是不是整数,不是加一,并跳转到最后一页。
展现控件的称呼须求在别称里加多下

本文以填报报表为例,通过分页的法子,来缓和大数据集呈现的主题材料。
完成的思…

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图