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

1. 问题描述编辑

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

2. 实现思路编辑

通过seq()函数给数据编号,seq()函数是返回报表执行过程中该函数执行的次数。

3. 示例编辑

3.1 打开模板
打开模板:%FR_HOME%\WebReport\WEB-INF\reportlets\doc\Form\LineForm\LineForm3.cpt
3.2 修改表样
如下图所示,在M3和N3单元格增加按钮控件,分别选择插入行和删除行,父格都设设置为C3,并且设置插入行的行数为1行即点击增加行时只增加一行。
3.3 自动编号设置
清空B3单元格的值,并在A3单元格输入一个固定值,比如说输入X,设置其扩展属性为纵向扩展,然后在B3单元格中输入公式=seq(A3),父格设置为C3,其意义时,对A3组内的所有数据按照C3进行编号。如下图:
注:a3单元格的固定值是用来分组的,如果不想其显示在模板中,可将A列进行隐藏。
3.4 插入行策略
选中B3单元格,在单元格属性表处选择其他属性>插入行策略,插入行策略选择原值,如下图:
3.5 保存预览
点击填报预览,预览报表,如下图:
点击插入行按钮,产品编号自动+1,如下图:
点击刚刚插入的行后面的删除行按钮,提交后,刷新一下模板,产品编号会自动-1,如下图:
注:如果觉得点击删除行按钮后,需要提交和刷新模板比较麻烦,可以在删除行按钮加个点击事件,点击删除后,先提交再刷新,_g('${sessionID}').writeReport();location.reload();
在线查看模板效果请点击LineForm4.cpt

已完成模板请参照%FR_HOME%\WebReport\WEB-INF\reportlets\doc\Form\LineForm\LineForm4.cpt