增加记录和删除记录自动加序号

本帖最后由 afr751116 于 2016-9-11 21:27 编辑

像下图,填报, 有一列是使用seq()序号的,
然后在填报预览报表的时候,可以删除某一行,序号会自动按顺序排下来


但是当你增加一行的时候,出来的是空白,不会自动增加序号出来,


我想问下,怎样才能做成增加行的时候序号自动加,另外我增加行的时候,感觉变成了两行,其中有一个格是合并的,应该是父格的问题吧。



FineReportafr751116 发布于 2016-9-10 23:19
悬赏:2 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共15回答
最佳回答
0
afr751116发布于2016-9-10 23:19(编辑于 2023-9-6 09:34)
555
  • haoui haoui

    弱弱问下,这个js在哪里添加的啊
    回复
    2016-10-30 21:30 
  • haoui haoui

    楼主 您的方法可以实现
    但是 填报到数据库中 是空值 NULL
    回复
    2016-10-31 14:35 
  • luojian0323 luojian0323 如果你这个单元格它的左父格也扩展.这代码就不行了.
    回复
    2019-10-03 11:15 
最佳回答
0
最懒的小孩发布于2016-9-11 16:51(编辑于 2023-9-6 09:34)
555
  • afr751116 afr751116(提问者)

    我不是按钮控件的,是顶部按钮的,好像没有这个选项
    回复
    2016-09-11 16:54 
最佳回答
0
afr751116发布于2016-9-11 16:54(编辑于 2023-9-6 09:34)
555
  • 最懒的小孩 最懒的小孩

    seq()
    seq()函数返回值为数值,是指在整个报表执行过程中,返回该函数被第几次执行了。 示例: seq()在第一次执行时,结果为1。 seq()在第二次执行时,结果为2。
    一般用于对已有数据进行排序,重新生成新的序号。
    在插入数据时候,seq没有根据插入行自动生成新的序号,而是原值。应该是单元格的父子格设置问题
    具体操作参考:http://help.finereport.com/doc-view-545.htm
    另外在数据库中,如果你的这个序号就是主键的话,也不建议这么来操作,容易出错。
    建议:seq仅作为展示时候的编号使用,而主键,则使用自增或者其他的自定义编码来做。
    回复
    2016-09-11 17:12 
最佳回答
0
最懒的小孩发布于2016-9-11 17:12(编辑于 2023-9-6 09:34)
555
  • afr751116 afr751116(提问者)

    这个是主键,就是一个行号的意思,不过数据库固定死了,不是我可以改的。只能用这个序号。

    我设置的父格就是它的右边格,然后把右边格设置插入行设置为 原值,   SEQ行值为公式:=SEQ(右边格)。

    这样的方式插入行有序号,不过是从1开始排了,不能在插入的地方按顺序排
    回复
    2016-09-11 17:22 
最佳回答
0
afr751116发布于2016-9-11 17:22(编辑于 2023-9-6 09:34)
555
  • 最懒的小孩 最懒的小孩

    你可以确定一下,这个主键是不是自增的,
    如果是自增的,那你这个序号就没有意义的,只是显示出现目前的序号而已,你在插入行的时候,就无所谓显示出来的序号了,因为在插入数据库的时候,会自动生成序号。
    如果不是自增的,那就比较麻烦了,因为如果新生成的序号和原序号相同,就会覆盖数据,这个就会很麻烦。

    另外,我看你这个数据库的主键应该是:序号+劳动关系,对么?或者只是“劳动关系”?
    如果是序号也是主键,那你这个序号其实是数据库中已经有的序号,那么你需要考虑的是:新增的序号应该是几?比如原来的最大值是7,那么新增的应该是8,。而不是重新用seq生成序号。因为如果你sql语句的排序发生变化,那么你新生成的序号就和数据库的主键不同了。

    如果主键只是劳动关系,那序号就和主见无关了,就不用管了。
    回复
    2016-09-11 19:41 
最佳回答
0
最懒的小孩发布于2016-9-11 19:41(编辑于 2023-9-6 09:34)
555
最佳回答
0
afr751116发布于2016-9-11 20:02(编辑于 2023-9-6 09:34)
555
  • 最懒的小孩 最懒的小孩

    哦,那你按照之前给你的那个连接,做好之后,连续点击插入行,就行了。
    回复
    2016-09-11 20:30 
最佳回答
0
最懒的小孩发布于2016-9-11 20:30(编辑于 2023-9-6 09:34)
555
最佳回答
0
afr751116发布于2016-9-11 20:30(编辑于 2023-9-6 09:34)
555
最佳回答
0
afr751116发布于2016-9-11 20:32(编辑于 2023-9-6 09:34)
555
  • 最懒的小孩 最懒的小孩

    删的话没有必要啊,你这个只是个填报的页面,提交的时候加个校验,其他格子没有填数据的话,这行不提交就行了。
    就算插入了100行,但只有1行填写有数据,下次打开这个页面时候也不影响使用啊,因为他只提交了有效的数据,多余添加的行是不会插入数据库的。
    这些在网页上的插入操作都是一次性的,刷新就没有了啊
    回复
    2016-09-11 21:09 
  • 0关注人数
  • 1756浏览人数
  • 最后回答于:2016-10-31 14:35
    活动推荐 更多
    热门课程 更多
    返回顶部