详细分页步骤

楼主
我是社区第66158位番薯,欢迎点我头像关注我哦~
这个帖子是因为目前工作中需要做真分页功能,然后人员呢技术参差不齐,导致工期经常延期所以整理一个分页步骤,按照步骤进行,基本上分页功能可以控制到40分钟左右(包含导出页面制作,熟练之后可以控制在20分钟)


第一步:
         新增一个模板参数page 默认值给1
第二步:
         主数据集后加
  1. order BY target_day DESC LIMIT ${P},20
复制代码

        其中target_day随页面进行改动,然后新增一个参数${P},默认值给公式20*($page-1)。这里是按照一页20条记录进行设置的
第三步:
         新增一个数据集,根据查询条件查询所有数据,数据集命名为ds1,这个是为了到时候获取到所有的数据行数,然后除20得到总页数

第四步:
         点击模板web属性-->分页预览设置,改为为该模板单独设置,然后新增6个自定义按钮
         第一个:首页
         第二个:上一页
         第三个:当前页码
         第四个:下一页
         第五个:末页
         第六个:导出excel
第一个按钮:
         主要参数是
         page=$page-1
         然后下面JS中写
  1. if(page==0)
  2. this.setEnable(false);
  3. else
  4. {
  5.         var url = "${servletURL}?reportlet=SPORTS%2FGold%2FLDN_Game_20190104_V1.cpt";
  6.      var config =
  7.      {
  8.     page:"1",
  9.     sdate:sdate,
  10.     edate:edate
  11.      };
  12. FR.doHyperlinkByPost(url,config,'_self');
  13. }
复制代码

其中sdate和edate自己页面另外的参数,可以随页面进行相应的修改

第二个按钮
         主要参数是
         page=$page-1
         然后下面JS中写

  1. if(page==0)
  2. this.setEnable(false);
  3. else
  4. {
  5.         var url = "${servletURL}?reportlet=SPORTS%2FDiamonds%2FLDN_Consume_20190104_v1.cpt";
  6.      var config =
  7.      {
  8.     page:page,
  9.     sdate:sdate,
  10.     edate:edate
  11.      };
  12. FR.doHyperlinkByPost(url,config,'_self');
  13. }
复制代码
其中sdate和edate自己页面另外的参数,可以随页面进行相应的修改,和第一个按钮的区别就是page参数,第一个给传参为1,第二个给传参为page
第三个按钮可以不用管
第四个按钮
         主要参数是
         page=$page+1
         tatol=ROUNDUP(ROWCOUNT("ds1")/20)
         然后下面JS中写


  1. if(parseInt(page) > parseInt(total))
  2. {
  3. this.setEnable(false);
  4. }
  5. else
  6. {
  7.         var url = "${servletURL}?reportlet=SPORTS%2FDiamonds%2FLDN_Consume_20190104_v1.cpt";
  8.      var config =
  9.      {
  10.     page:page,
  11.     sdate:sdate,
  12.     edate:edate
  13.      };
  14.         FR.doHyperlinkByPost(url,config,'_self');
  15. }
复制代码
其中sdate和edate自己页面另外的参数,可以随页面进行相应的修改,这个做了一个判断,如果当前页面大于总页数,则按钮不可用
第五个按钮
         主要参数是
         page=$page+1
         tatol=ROUNDUP(ROWCOUNT("ds1")/20)
         然后下面JS中写


  1. if(parseInt(page)-1==parseInt(total))
  2. {
  3. this.setEnable(false);
  4. }
  5. else
  6. {
  7.         var url = "${servletURL}?reportlet=SPORTS%2FDiamonds%2FLDN_Consume_20190104_v1.cpt";
  8.      var config =
  9.      {
  10.     page:total,
  11.     sdate:sdate,
  12.     edate:edate
  13.      };
  14.         FR.doHyperlinkByPost(url,config,'_self');
  15. }
复制代码
其中sdate和edate自己页面另外的参数,可以随页面进行相应的修改,这个做了一个判断,如果当前页面大于总页数,则按钮不可用,和第五个按钮不同的是page的传参,第五个传递是page,第六个传递是总页数total
第六个按钮
         然后下面JS中写
  1. var url = "${servletURL}?reportlet=SPORTS%2FDiamonds%2FLDN_Consume_20190104_v1_detail.cpt&format=excel&extype=stream";
  2.      var config =
  3.      {
  4.     sdate:sdate,
  5.     edate:edate
  6.      };
  7. FR.doHyperlinkByPost(url,config,'_self');
复制代码
        这个是做一个导出页面,因为现在按照分页进行查询,每次查询出来只有20条记录
         但是导出的话需要导出查到的所有页面
         所以需要另做一个导出页,并传参。
         主要是在连接后面写
         &format=excel&extype=stream
         导出页面一般页面名称设置为文件名称后加_detail
         所以可以先提前把连接写好。

第五步
         在页面设置中添加一个加载结束后事件
         主要参数:
         curnum=$page
         rownum=ROUNDUP(ROWCOUNT("ds1")/20)

         然后下面JS中写
  1. var pv = "第" + curnum + "页/共" +rownum + "页";   
  2. contentPane.toolbar.options.items[2].setValue(pv);  
复制代码
        这步是为了给第三个按钮赋值,显示当前页数
第六步:
         按钮写一个点击事件
  1. var sdate = this.options.form.getWidgetByName("sdate").getValue();
  2.         var edate = this.options.form.getWidgetByName("edate").getValue();
  3.         var url = "${servletURL}?reportlet=SPORTS%2FDiamonds%2FLDN_Consume_20190104_v1.cpt";
  4.      var config =
  5.      {
  6.     sdate:sdate,
  7.     edate:edate
  8.      };
  9. FR.doHyperlinkByPost(url,config,'_self');
复制代码
第七步:
         制作导出页面
         选择当前页面,然后点击另存为
         选在到当前文件夹下,文件名称后加_detail
         然后删除导出页面的ds1数据集
         点击主数据集
         去掉  limit ${P},20
         点击web属性,分页设置
         去掉按钮
         去掉加载结束后事件
         去掉模板参数
         去掉参数面板上的控件
         去掉参数面板的加载结束后事件
         然后点击web属性,基本中把标题补全,一般为系统上目录路径名称



到现在为止,基本上分页功能就可以实现了。为了页面更加好看一些,我这边的一些页面统一样式
页面设置
长度可以根据表格大小进行设置
高度可以设置为150毫米,这样一页20行基本不会出现滚动条
表头颜色e3f3ff
各行换色背景f2f7fd
web属性中,按钮背景设置为白色
参数面板设置为白色,
添加初始化后事件
setTimeout(function() { $('.parameter-container-collapseimg-up').hide(); }, 10);  
日期设置显示格式为日期格式



编辑于 2019-3-19 21:20  
分享扩散:
参与人数 +2 F豆 +166 理由
七夜 + 66 太棒了,给你32个赞,么么哒
影丶 + 100 老太太摔倒了我都不扶,就服你

查看全部评分

沙发
发表于 2019-3-19 21:20:51
来自手机
板凳
发表于 2019-3-20 08:35:07
大佬大佬。
地板
发表于 2019-3-20 09:13:40
5楼
发表于 2019-3-20 09:23:47
6666666
6楼
发表于 2019-3-20 15:17:03
7楼
发表于 2021-7-26 16:29:00
9.0能用吗
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

返回顶部 返回列表