以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]表总是能自动增加最下面一行,怎么弄?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=38459)

--  作者:kolen
--  发布时间:2013/7/30 9:04:00
--  [求助]表总是能自动增加最下面一行,怎么弄?

表总是能自动增加最下面一行,怎么弄?

解释:

1、在表中开始时候只有1行,空的的,没有数据,如果用户输入数据了,表的第二行就自动新增了,当第2行的数据有了,第3行就自动新增了。

2、如果有3行,1、2行有数据,第3行空白,如果第2行数据删除了,第3行空白行自动也删除了,只留下1、2两行。

 

请问这个怎么弄呢,以前有人做过现成的例子吗?


--  作者:Bin
--  发布时间:2013/7/30 9:06:00
--  
正常来说不会这样啊.是需要点击新增行的啊.
--  作者:kolen
--  发布时间:2013/7/30 9:18:00
--  

想把明细表设计成这样。这样可以避免主表里有"新增行"按钮,明细表又要弄一个“新增行”按钮。如果一同放在“工具栏”里,就要两个按钮了。

access文件的增加行就是这个效果,我要这个效果。老师你有什么好的建议


--  作者:Bin
--  发布时间:2013/7/30 9:26:00
--  
DatacolChanged事件中,判断输入的值不为空,并且是最后一行.那么就新增行.
--  作者:狐狸爸爸
--  发布时间:2013/7/30 9:29:00
--  

设置Afteredit事件:

 

If e.Table.Name ="订单.订单明细" Then

     if e.Row.Isnull(e.col.name) = False then

         if e.row.Index = e.Table.Rows.Count -1 Then

              Dim dr As DataRow = DataTables("订单明细").AddNew

               dr("订单编号") = Tables("订单").Current("订单编号")

         End if

     End if

End if

 

不过一般不需要这样做,因为表属性有个“自动增加行”的属性,将其设置为True,在最后一行的最后一列按回车,就会自动增加一行的。

 

 

[此贴子已经被作者于2013-7-30 9:29:32编辑过]

--  作者:kolen
--  发布时间:2013/7/30 9:45:00
--  

我还是用代码吧。

因为表属性有个“自动增加行”的属性,将其设置为True,在最后一行的最后一列按回车,就会自动增加一行的。

“最后一行的最后一列按回车”,这个肯定不方便的,明细表列一般很多的,明细表中肯定出线滑条的,而且最后面的列一般都是辅助的,不是必填的,让用户先划过去,选定最后一列,然后回车,是很不方便的。用户体验会不好。

狐爸爸,你系统搞成,自动增加行”的属性,将其设置为True,就和access那样的不行吗?最后一行的最后一列按回车肯定不好的。

 


--  作者:lsy
--  发布时间:2013/7/30 9:51:00
--  

说明楼主对行列的控制力欠缺一点,回车是可以跳过非编辑列的。

有的表有很多列,但需要编辑操作的列,可能只有三、五列,跳来跳去不费事。