历史版本24 :JS实现填报自动生成序号并排序 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 描述编辑


在录入数据时,希望数据库中的某列数据是1,2,3...这样的自动增长的数字编号,插入一条数据时编号自动+1,删除数据时编号自动-1。


222

2. 思路编辑

修改插入行策略,实现插入时,重新计算seq().

3. 操作步骤编辑

1)设计报表如下:添加数据连接SELECT * FROM Sales

A3可以是任意一个字符串,B3的左父格是C3,然后隐藏A列:

222

2)如下图所示,在H3和I3单元格增加按钮控件,分别选择插入行和删除行,均指定单元格为C3,并且设置插入行的行数为1行,即点击增加行时只增加一行。

222

3)插入行策略

选中B3单元格,在属性面板的单元格属性表处选择其他属性>插入行策略,插入行策略选择原值,如下图:

222

4)点击模板>模板Web属性>填报页面设置,选择为该模板单独设置,增加三个事件;
222
删除行前 js代码:

window.deleteflag=1;

添加行前 js代码:

window.appendflag=1;

加载结束 js代码:

if(window.deleteflag==1||window.appendflag==1){//如果是删除或者添加标记的,重新编号 
   var $tds=$('.x-table td[col=1]:visible');//获取第2列中可见的单元格(B列)  
   var n=0; 
   $tds.each(function(i,e){ 
   	  if(i>=2){//模板中从哪一可见行开始编号的,行号是从0开始的,所以用行号-1,比如这个模板是从第3行开始的,就是2           
          n=n+1; 
          $(e).text(n);//将当前编号重新设置 
         } 
   }); 
   window.deleteflag=0;//清除删除行标记 
   window.appendflag=0;//清除添加行标记 
 }

5) 添加报表填报属性:

模板>报表填报属性,点击“+”号,添加内置sql,如图设置填报属性:
222

填报属性设置可以参考报表填报属性设置

6)点击填报预览,预览报表。


4. 预览效果编辑

PC端:

点击插入行按钮,ID自动+1;

点击刚刚插入的行后面的删除行按钮,ID会自动-1
222

移动端:

222

支持插入行,不支持删除行


5. 已完成模板编辑

在线查看模板效果请点击插入删除行重新编号.cpt

已完成模板,可参见:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Form\LineForm\插入删除行重新编号.cpt