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

 时间:2024-10-25 16:06:28

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

工具/原料

表格制作软件FineReport7.1.1

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

插入行策略

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

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

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

3、空值空值是默认的选项,即每次插入新行时,格子都是空白的。

4、原值原值即单元格中原有内容是什么,就复制到新增的格子中,一般适用于单元格是使用公式定义的, 在插入单元格时,柬缰缣挞公式会保留下来。如自动匹配文档中的模板%FR_HOME%\WebReport\WEB-INF\reportlets\doc\Form\LineForm\LineForm.cpt,如下图:直接填报预览,插入行时,产品名称、供应商等单元格默认插入的都是空白,无法进行自动匹配。此时就需要设置产品名称、供应商等单元格插入行时使用原值,仍保留原来的公式使得新插入的行也可以进行自动匹配。

表格制作软件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]插入删除行

5、自动编号设置清空B3单元格的值,并在A3单元格输入一个固定值,比如说输入X,设置其扩展杨钭维程属性为纵向扩展,然后在B3单元格中输入公式=seq(A3),父格设置为C泌驾台佐3,其意义时,对A3组内的所有数据按照C3进行编号。如下图:注:a3单元格的固定值是用来分组的,如果不想其显示在模板中,可将A列进行隐藏。

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

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

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

7、保存预览点击填报预览,预览报表,如下图:

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

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

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

9、点击刚刚插入的行后面的删除行按钮,产品编号会自动-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]插入删除行

4、模板制作新建数据连接新建一个数据连接,连接至该数据库,新建数据连接的方法详细请参照数据连接。模板设置新建一张模板,添加数据集SELECT * 僻棍募暖FROM dbo.[KHK]。在模板设计主体页面第一行分别添加两个文本控件和一个插入行的按钮控件,并在第三行中将数据列拖曳至对应单元格中,如下图:注:第二行的三个控件分别是,文本控件、文本控件和按钮控件,其中前面2个文本控件分别对应于数据表中的2个字段,虽然自增长ID不需要自己输入,但是还是需要为其添加控件,按钮控件是插入行控件。

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

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

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

6、自增长ID使用点击填报预览,在web端进行数据填报,如下图:

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

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

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

8、Oracle数据库假设已经存在数据库,表名是list,表样如下图:

表格制作软件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,那么直接换行再加入这句话内容即可。

  • Notepad笔记本如何设置语法高亮为标准设置?
  • MyEclipse如何配置MySQL JDBC驱动
  • mac开发工具vscode怎么设置不显示控制字符?
  • 怎么通过文件方式给bat输入参数
  • idea如何对不同级别的日志在控制台打印不同颜色
  • 热门搜索
    绿色环保手抄报 清明手抄报内容 法制教育手抄报 感恩父母手抄报 抗击疫情手抄报 重阳节的手抄报 汉字真有趣手抄报 消防手抄报简单又漂亮 汤姆索亚历险记手抄报 防疫情手抄报