报表知识库
数据库中关联主子表相对于润乾填报表的设置方法
润乾报表软件提供基于动态库表关联技术的填报功能,完美解决数据入库的难题,极大提高填报表的处理效率,扩展了Web报表工具的应用方式。
我们看一下下面的一个问题:
数据库中有两个表,一个是用户列表,一个是用户信息明细表,在关联关系上,用户列表是主表,用户信息明细表是子表,互相之间有主外键关系即用户ID。
下图就是数据库中的表结构:
用户列表:
用户信息明细表:
其中,用户列表中的userid是用户信息明细表的外键。
接着,我们看一下报表模版中的设置:
假设这张填报表中的更新属性设置在A2:
由于涉及到两个表的更新,所以我们需要设置两条更新属性:
用户列表:
用户信息明细表:
我们假设这张报表是行式填报表,有增加删除行的功能,那么来看一下在页面中的增加行效果:
提交后,数据正常保存。
我们试试删除的效果:
抛出了数据库的异常信息,这是为什么呢?
原来,增加行的逻辑是,先增加主表行,再对应更新子表,这是正常的,但删除的时候,如果先删除主表信息,再删除子表信息,就会违反约束,导致了这个问题。
那么在数据库中要如何设置呢?
在外键的属性中有一个CASCADE,这个属性的意思是,删主表时数据库会自动把子表相关记录也删掉,也就是说,从数据库侧来保证约束的正确性。
这样设置后,我们在页面中测试一下效果:
数据就可以正常删除了。