以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 求助:插入行后自动重新编号 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=138032) |
||||
-- 作者:cxmxjwlmq -- 发布时间:2019/7/21 15:43:00 -- 求助:插入行后自动重新编号 各位老师:我做了一个窗口,在窗口中有一个插入行按钮,代码为在当前行下插入一行,并给新插入行赋值。有一个文本框,我想要的效果是:在文本框中输入值后,譬如6,那么原来的第二列的6变成7,7变成8。。。借鉴了流水帐的例子,在表A中增加了代码,但总是自动退出! 照片如下: 例子如下:
请老师大咖们费心指点指点! |
||||
-- 作者:y2287958 -- 发布时间:2019/7/21 16:03:00 -- Dim i As Integer = val(e.Form.Controls("TextBox1").Text) Syscmd.Row.Insert() Dim r As Row = CurrentTable.Current r.Move(r.Index+1) r("第二列") = i+1 |
||||
-- 作者:cxmxjwlmq -- 发布时间:2019/7/22 10:43:00 -- 谢谢指点! 但按照二楼的代码输入后,第二行是变了,但当前行下的所有有序号的行没有自动加上1! 如下图:我在第7行下插入了一行(红色的一行是我新插入的),当前行的第二列变成了8,但当前行的所有以下行有数值的:如原来的8、9、10没有自动加上1,变成9、10、11等。
谢谢老师! |
||||
-- 作者:有点蓝 -- 发布时间:2019/7/22 11:06:00 -- 从插入的行开始往下遍历所有行+1 |
||||
-- 作者:cxmxjwlmq -- 发布时间:2019/7/22 16:15:00 -- 蓝老师:我折腾了半天,还是不行,对遍历没有学懂,不好意思! Dim i As Integer = val(e.Form.Controls("TextBox1").Text) 请老师指点一下吧! [此贴子已经被作者于2019/7/22 16:19:06编辑过]
|
||||
-- 作者:有点蓝 -- 发布时间:2019/7/22 16:31:00 -- Dim t As Table = Tables("表A") Dim nr As Row = t.InsertNew Dim idx As Integer = 1 If nr.Index > 0 Then idx = val(t.Rows(nr.Index -1)("第二列"))+1 End If nr("第二列") = idx nr("第四列") = Date.Today nr("第三列") = 1 idx += 1 For i As Integer = nr.Index+1 To t.Rows.Count - 1 t.Rows(i)("第二列") = idx idx +=1 Next
|
||||
-- 作者:cxmxjwlmq -- 发布时间:2019/7/22 17:44:00 -- 谢谢蓝老师! 我们都难死了,对于老师是小KS!
Dim t As Table = Tables("表A") ‘定义表 Dim nr As Row = t.InsertNew ‘定义新插入行 Dim idx As Integer = 1 ‘设定初始变量 If nr.Index > 0 Then ‘返回插入行的列的位置 idx = val(t.Rows(nr.Index -1)("第二列"))+1 ‘从插入行的下一行开始遍历 End If nr("第二列") = idx ‘给插入行的第二列赋值 nr("第四列") = Date.Today ‘给插入行的第四列赋值 nr("第三列") = 1 ‘给插入行的第三列赋值 idx += 1 ‘给循环变更赋值 For i As Integer = nr.Index+1 To t.Rows.Count – 1 ‘从插入行的下一行开始遍历 t.Rows(i)("第二列") = idx idx +=1 ‘给第二列赋于新值 Next
老师,我理解的对不对? 这个代码达到了第二列增加一的效果,但这个代码是在当前行上插入一行, 我想要的效果是:在当前行的下一行插入一行,不知道怎么改代码,请老师费心! [此贴子已经被作者于2019/7/22 18:15:25编辑过]
|
||||
-- 作者:有点蓝 -- 发布时间:2019/7/22 20:21:00 -- Dim t As Table = Tables("表A") \'定义表 Dim nr As Row If t.Position= t.Rows.Count-1 nr = t.AddNew Else t.Position = t.Position+1 nr = t.InsertNew \'定义新插入行 End If
|
||||
-- 作者:cxmxjwlmq -- 发布时间:2019/7/22 22:55:00 -- 谢谢老师指点! |