历史版本21 :提交类型 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 智能提交编辑

智能提交后台会对插入、更新以及删除进行判断,若您的填报模板中有这两种以上的需求时,就可以选择智能提交类型。

用智能提交在提交数据时会判断是否存在报表主键,若存在则进行更新提交,若不存在会进行插入提交。因此会降低填报入库的效率,所以若您只使用某一种提交时,选择对应的提交类型即可。

如果页面存在删除行按钮,智能提交数据的时候(先点击删除行,再点击提交)会进行删除提交。

若您插入了多条空白数据,但对空白行没有进行编辑,那么 FineReport 会将这些记录的值都识别为 null,对于这种记录,不会入库,即空白记录不入库。

注:设置未修改不更新后,填报预览报表,记录所在单元格没有被编辑修改,则此记录不会进行更新;在大数据量记录查询并回填情况下,启用该设置,可以提高填报提交性能。

2. 删除提交编辑

2.1 应用场景

删除提交只能用来删除数据。如果需要保留的数据很少,而需要删除的数据很多的时可以使用删除提交方式。

2.2 提交逻辑

智能提交的删除操作完全相反,前端删除的数据保留,留在页面的数据点击提交后会被删除。

注:设置删除提交时,模板中需要展示原始已有数据,另外需要勾选报表填报属性中的某列作为报表主键。

2.3 效果预览

1)设计填报模板时,展示原始已有数据,如下图所示:

Snag_254f0094.png

2)报表填报属性中设置了提交类型为删除提交,如下图所示:

Snag_24db1895.png

3)前端填报效果如下图所示,也就是说删除保留在填报页面上的所有数据,这里的删除逻辑跟智能提交删除操作完全相反。

删除提交.GIF

3. 插入提交编辑

3.1 应用场景

插入提交只能用来插入数据,且模板中不能展示原始已有数据,填报页面必须是空白无数据的。

3.2 提交逻辑

跟智能提交的插入操作相同,只是必须要求插入数据时,填报页面是没有其他原始数据的,必须为空白。

注:空白记录点击提交后并不会入库。

3.3 效果预览

1)填报表格中不展示原始已有数据,如下图所示:

Snag_250ebb16.png

2)报表填报属性中设置了提交类型为插入提交,如下图所示:

Snag_2510506c.png

3)插入数据后,点击提交按钮,数据即成功入库,如下图所示:

E035D25A-24B4-4BCF-A71B-D23C689ACE33.GIF

4)查看数据库表信息,可以看到数据表中新增了一条数据,如下图所示:

Snag_251244ca.png

3.4 注意事项

3.4.1 重复入库

填报模板中展示原始已有数据且数据表中未设置主键的情况下,使用插入提交插入数据时,原始数据会再次执行插入操作,导致数据重复入库。

B5C2389B-ECC3-4E01-BE94-037EB90FCB3E.GIF

查看数据库表信息,可以看到有 2 条 ID 为 6 的重复数据,如下图所示:

Snag_251f5f57.png

3.4.2 主键限制

如果数据库表中设置了主键,如下面示例中的 ID 字段,且存在一条 ID 为 6 的记录,如下图所示:

Snag_252aebd3.png

使用插入提交一条 ID 为 6 的记录时,入库失败且有报错信息:UNIQUE constraint failed: Sales.ID,即设置主键的前提下不允许提交重复数据。

B52C98BA-C1D5-4256-8115-ED2157B7BFD8.GIF

4. 更新提交编辑

4.1 应用场景

更新提交只能用来更新数据,因为展示原始已有数据,需要勾选报表填报属性中的某列作为报表主键。

4.2 提交逻辑

跟智能提交的更新操作逻辑相同。

4.3 效果预览

1)设计填报表格时,展示模板原始已有数据,如下图所示:

Snag_2550ef54.png

2)报表填报属性中设置了提交类型为更新提交,如下图所示:

Snag_255208d3.png

3)修改数据后,点击提交即可成功修改数据,如下图所示:

84DE2B05-D7EB-42A2-B266-7C3D65C23884.GIF