表格制作软件FineReport教程:[22]插入删除行

2024-10-25 16:06:28

填报时,大多数时候需要录入多条数据,在操作过程中经常性对数据进行增加和删除,下面就通过表格制作软件FineReport来简单介绍一下。

工具/原料

表格制作软件FineReport7.1.1

大小:148.2M 适用平台:windows/linux

插入行策略

1、功能描述对于行式填报模板,插入的单元格可能是空值可能是上一个单元格的值也可能是某个不固定的值,此时就需要设置插入行策略。

2、设置方法右击单元格>其他属性,便可以进行设置。插入行时可以插入:空值,默认值以及原值三种方案,如下图所示:

表格制作软件FineReport教程:[22]插入删除行

5、默认值默认值即通过定义字符串,数字,布尔型,日期型或公式型来定义添加行时单元格内的内容。除公式类型外,其它的类型仅仅是插入内容格式的不同,但每次插入的都是固定值。

插入删除行重新编号

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

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

3、打开模板打开模板:%FR_HOME%\WebReport\WEB-INF\reportlets\doc\Form\LineForm\LineForm3.cpt。

4、修改表样如下图所示,在M3和N3单元格增加按钮,分别选择插入行和删除行,父格都设设置为C3,并且设置插入行的行数为1行即点击增加行时只增加一行。

表格制作软件FineReport教程:[22]插入删除行

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

表格制作软件FineReport教程:[22]插入删除行

8、点击插入行按钮,产品编号自动+1,如下图:

表格制作软件FineReport教程:[22]插入删除行

数据库自增长ID填报

1、描述数据库自增长ID填报是指在F坡纠课柩ineReport模板中进行数据填报的时候,不需要设置ID数据列,在往数据库中插入数赍铈于脏据的时候,数据库的主键ID会自动增长。在填报中,数据批量处理时,使用流水号来作为自增长型主键进行数据更新,可是当用户同时进行并发填报,既多人同时对一张报表进行填报,一个用户填报提交后,另外一个用户没有与服务器进行同步,默认会出现一个流水号会与数据库中刚提交的内容冲突。下面我们以Sql Server数据库为例,讲述数据库自增长I实现报表的自动编号功能。

2、Sql Server数据库在Sql Server数据库中,提供了标识,可以通过设置标识、标识种子和标识增量来实现Sql Server主键的自增长。

3、自动编号设置假设在SQL Server数据库中存在下面一张数据表,我们需要将其id列实现自增长,就可以在列属性中设置是标识,修改标识增量和标识种子,如下图:

表格制作软件FineReport教程:[22]插入删除行

5、填报属性设置点击模板>报表填报属性,增加一个内置SQL,注:为数据表中的字段绑定报表单元格。

表格制作软件FineReport教程:[22]插入删除行

7、在KH标题下面的控件中插入2条数据,点击提交按钮,将数据提交入库,刷新页面,可以看到下面蓝色区域部分多了2条数据,即刚刚填报数据的数据,并且ID列也进行了自增长。

表格制作软件FineReport教程:[22]插入删除行

9、自增长的实现在Oracle数据库中,提供了序列的功能,可以通过Oracle的序列及触发器,实现主键的自增长。创建序号create sequence list_seq minvalue 1 --最小值为1maxvalue 9999 --最大值为9999start with 1 --以1为初始值increment by 1 --以1为增长间隔cache 20 --缓存大小为20order;创建触发器create or replace trigger list_tg before insert on list --在对list表插入数据时触发 for each row -- 逐行触发begin --触发器主题 select list_seq.nextval into:new.id from dual; --调用创建的list_seq序号end list_tg;

10、常见问题报错信息在7.0.4版本及之后的版本,使用数据库自增长ID进行数据填报时,可能会发生下图所示报错:当 IDENTITY_INSERT 设置为 OFF 时,不能为表 'KHK' 中的标识列插入显式值。

表格制作软件FineReport教程:[22]插入删除行

11、报错原因出现该报错原因是因为在7.0.4及之后版本中,FineReport数据填报自增长ID的时候,主键不能插入空数据,即报表填报属性处绑定的自增长ID字段所对应的单元格在进行填报时,不能为空,但是自增长ID本意就是不需要输入ID,必然要保持单元格为空,所以导致报错。

12、解决方案将以下的insertIgnore觊皱筠桡Column.properties文件放入%FR_HOME%\WEB-INF\resources文件夹下面即可,文件内容为:tb_inc.ignoreColumns=id注:其中tb_inc是填报数据的数据表名称,需要对应修改,如果有多个数据表需要使用自增长ID,那么直接换行再加入这句话内容即可。

猜你喜欢