Foxtable(狐表)用户栏目专家坐堂 → 请教一下如何写窗口表中自动编号的按钮代码?


  共有2271人关注过本帖树形打印复制链接

主题:请教一下如何写窗口表中自动编号的按钮代码?

帅哥哟,离线,有人找我吗?
旭日生
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:339 积分:3364 威望:0 精华:0 注册:2011/3/22 22:52:00
请教一下如何写窗口表中自动编号的按钮代码?  发帖心情 Post By:2019/7/17 1:16:00 [只看该作者]

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:test1.foxdb


图片点击可在新窗口打开查看此主题相关图片如下:image 682.png
图片点击可在新窗口打开查看

[此贴子已经被作者于2019/7/17 6:46:58编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
旭日生
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:339 积分:3364 威望:0 精华:0 注册:2011/3/22 22:52:00
  发帖心情 Post By:2019/7/17 8:15:00 [只看该作者]

补充一下才更准确,更实用,没有漏洞:升序后某列,相同数据填入相同编号,不同数据自然增1。

 


图片点击可在新窗口打开查看此主题相关图片如下:image 683.jpg
图片点击可在新窗口打开查看
[此贴子已经被作者于2019/7/17 8:18:15编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107660 积分:547615 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/7/17 9:31:00 [只看该作者]

Dim txt1 As WinForm.TextBox = e.Form.Controls("TextBox1")
Dim t As Table = e.Form.controls("table1").Table
Dim r As Row = t.Rows(0)
Dim k As Integer = val(txt1.Text)
r("第二列") = Format(k,"0000")
For i As Integer = 1 To t.Rows.Count - 1
    Dim r2 As Row = t.Rows(i)
    If r("第一列") = r2("第一列") Then
        r2("第二列") = r("第二列")
    Else
        k += 1
        r2("第二列") = Format(k,"0000")
    End If
    r = r2
Next

 回到顶部
帅哥哟,离线,有人找我吗?
旭日生
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:339 积分:3364 威望:0 精华:0 注册:2011/3/22 22:52:00
  发帖心情 Post By:2019/7/17 17:34:00 [只看该作者]

谢谢蓝版。在这段代码启发之下,弄了半天还是没写出没有瑕疵的代码。我想要的是在原列(第一列)直接改写数据,而不是写到第二列中。
这段代码有点接近想要的,但还是有瑕疵。2个相同列数据时能得到正确结果,3个以上得不到。
Dim txt1 As WinForm.TextBox = e.Form.Controls("TextBox1")
Dim k As Integer = val(txt1.Text)
Dim t As Table = e.Form.controls("table1").Table

For i As Integer = t.TopPosition To t.BottomPosition
    Dim r As Row = t.Rows(i)
    Dim r2 As Row = t.Rows(i+1)
    
    If r("第一列") = r2("第一列") Then
        msgbox(r("第一列"))
        msgbox(r2("第一列"))
        r("第一列") = format(val(txt1.text)+(i-t.TopPosition), "0000")
        r2("第一列") =  r("第一列")
    Else
        r2("第一列") = format(val(txt1.text)+(i-t.TopPosition), "0000")
    End If
    r("第二列") = format(val(txt1.text)+(i-t.TopPosition), "0000")
    
    
Next
[此贴子已经被作者于2019/7/17 17:44:27编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107660 积分:547615 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/7/17 17:56:00 [只看该作者]

Dim txt1 As WinForm.TextBox = e.Form.Controls("TextBox1")
Dim t As Table = e.Form.controls("table1").Table
Dim r As Row = t.Rows(0)
Dim m As String = r("第一列")
Dim k As Integer = val(txt1.Text)
r("第一列") = Format(k,"0000")
For i As Integer = 1 To t.Rows.Count - 1
    Dim r2 As Row = t.Rows(i)
    If m = r2("第一列") Then
        r2("第一列") = r("第一列")
    Else
        k += 1
        m = r2("第一列")
        r2("第一列") = Format(k,"0000")
    End If
    r = r2
Next

 回到顶部
帅哥哟,离线,有人找我吗?
旭日生
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:339 积分:3364 威望:0 精华:0 注册:2011/3/22 22:52:00
  发帖心情 Post By:2019/7/17 18:19:00 [只看该作者]

好的。谢谢。还是简单好,想复杂了。

 回到顶部