以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  新增行后,某列的值自动加1  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=110631)

--  作者:飞过海洋
--  发布时间:2017/12/6 17:41:00
--  新增行后,某列的值自动加1

有点甜老师:

         我在设表的一列时,要求这一列的值 可以录入,但下一行这列的值能自动加1.比如现在第5行这一列的值 是3,那第6行这一列的值自动变为4.请问这一列的表达式要怎么写??


--  作者:有点甜
--  发布时间:2017/12/6 17:51:00
--  

datarowadded事件

 

Dim max As String = e.DataTable.Compute("max(第六列)")
e.datarow("第六列") = max+1


--  作者:有点甜
--  发布时间:2017/12/6 17:52:00
--  

参考

 

http://www.foxtable.com/webhelp/scr/2403.htm

 


--  作者:飞过海洋
--  发布时间:2017/12/6 23:20:00
--  
以下是引用有点甜在2017/12/6 17:52:00的发言:

参考

 

http://www.foxtable.com/webhelp/scr/2403.htm

 

老师:

    以下是我加1的代码 ,写好了,也能运行了。现在我想再加一个条件,如果在这列之前的(号_实务)有数据,则以下代码所在的列为空,否则,执行以下代码。老师,这要怎么写啊?

Dim max As String = e.DataTable.Compute("max(号_明细)")
e.DataRow("号_明细") = max+1


--  作者:有点甜
--  发布时间:2017/12/7 8:50:00
--  

Dim fdr As DataRow = e.DataTable.find("", "号_明细 desc")
If fdr Is Nothing OrElse fdr.IsNull("号_实务") Then
    e.DataRow("号_明细") = fdr("号_明细")+1
End If

 


--  作者:飞过海洋
--  发布时间:2017/12/7 10:20:00
--  
以下是引用有点甜在2017/12/7 8:50:00的发言:

Dim fdr As DataRow = e.DataTable.find("", "号_明细 desc")
If fdr Is Nothing OrElse fdr.IsNull("号_实务") Then
    e.DataRow("号_明细") = fdr("号_明细")+1
End If

 

老师:

     这个公式不对吧? 我的意思是 如果"号_实务"列有数据,则"号_明细"列为空,否则,如果"号_实务"列没有数据,则"号_明细"执行 您给我编写好的代码.也就是让"号_明细"的列在下一行自动加1

即以下代码的结果

Dim max As String = e.DataTable.Compute("max(号_明细)")
e.DataRow("号_明细") = max+1


--  作者:有点甜
--  发布时间:2017/12/7 10:27:00
--  
6楼代码测试有什么问题,请截图或者实例说明。
--  作者:飞过海洋
--  发布时间:2017/12/7 10:42:00
--  
老师:6楼的代码执行后,当号_实务号段为空时,号_明细号段也为空了,没执行自动加1的命令!另外!号_实务是另外一个关联表的列!请老师再帮改一下!谢谢!


--  作者:有点甜
--  发布时间:2017/12/7 10:43:00
--  
 请上传具体实例说明。
--  作者:飞过海洋
--  发布时间:2017/12/7 11:31:00
--  
以下是引用有点甜在2017/12/7 10:43:00的发言:
 请上传具体实例说明。

老师:

    请测试一下.实务账和明细账是关联的.6楼编 的代码.运行起来有问题!

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:关联2018年新账3.table

[此贴子已经被作者于2017/12/7 11:42:55编辑过]