历史版本20 :JS实现填报自动生成序号并排序 返回文档
编辑时间:
内容长度:图片数:目录数:
修改原因:
1. 问题描述编辑
在录入数据时,希望数据库中的某列数据是1,2,3...这样的自动增长的数字编号,插入一条数据时编号自动+1,删除数据时编号自动-1。
2. 实现思路编辑
修改插入行策略,实现插入时,重新计算seq().
3. 解决步骤编辑
1)设计报表如下,A3可以是任意一个字符串,B3的左父格是C3,然后隐藏A列:
3)插入行策略
选中B3单元格,在属性面板的单元格属性表处选择其他属性>插入行策略,插入行策略选择原值,如下图:
4)点击模板>模板Web属性>填报页面设置,选择为该模板单独设置,增加三个事件;
删除行前 js代码:
删除行前 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)点击
,预览报表。点击按钮,ID自动+1;
点击刚刚插入的行后面的按钮,ID会自动-1;
在线查看模板效果请点击插入删除行重新编号.cpt
已完成模板,可参见:%FR_HOME%\WebReport\WEB-INF\reportlets\doc\Form\LineForm\插入删除行重新编号.cpt。
4.移动端效果 编辑
支持插入行,不支持删除行