Foxtable(狐表)用户栏目专家坐堂 → [求助]SQLFind


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

主题:[求助]SQLFind

帅哥哟,离线,有人找我吗?
crazyfengyu
  11楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:45 积分:383 威望:0 精华:0 注册:2019/8/12 17:36:00
  发帖心情 Post By:2019/10/10 11:13:00 [只看该作者]

例如数据库查询到的是000-00-00-00000
现在要得到000-00-00-00001

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


加好友 发短信
等级:婴狐 帖子:45 积分:383 威望:0 精华:0 注册:2019/8/12 17:36:00
  发帖心情 Post By:2019/10/10 11:14:00 [只看该作者]

可是00000 +1 以后就是1了  省略掉了前面的0

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


加好友 发短信
等级:超级版主 帖子:35369 积分:180029 威望:0 精华:8 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/10/10 11:16:00 [只看该作者]

还是没看懂,截图说明一下,原来数据是怎么样的,希望得到什么样的结果

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


加好友 发短信
等级:婴狐 帖子:45 积分:383 威望:0 精华:0 注册:2019/8/12 17:36:00
  发帖心情 Post By:2019/10/10 11:30:00 [只看该作者]

那个问题我解决了
就是现在在表的ChangeEdit事件里面
监听某一行改变,然后到指定位置自动填充,显示没有变化,但是弹出值却是正确的
例如: 输入 000-000-000-的时候自动
判断满足条件然后
e.Row("编号") = "000-000-000-00000"
使用MessageBox可以弹出正确值
但是表格框里面还是显示的000-000-000-
这个怎么解决

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


加好友 发短信
等级:超级版主 帖子:35369 积分:180029 威望:0 精华:8 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/10/10 11:32:00 [只看该作者]

代码!代码!代码!

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


加好友 发短信
等级:婴狐 帖子:45 积分:383 威望:0 精华:0 注册:2019/8/12 17:36:00
  发帖心情 Post By:2019/10/10 13:21:00 [只看该作者]

Dim fdr As DataRow = DataTables("编号信息").SQLFind(" 编号 Like '" & e.Text & "%_____'","[_Identify] desc")
                If fdr IsNot Nothing Then
                    Dim num As Integer = fdr("编号").SubString(10,5)
                    Dim lastNum As String =  num + 1
                    Dim linstr As String = ""
                    If Len(lastNum) < 5 Then
                        Dim i As Integer
                        For i =1 To (5 - Len(lastNum))
                            linstr = linstr & "0"
                        Next
                    End If
                    e.Row("编号") = e.Text & linstr & lastNum
                Else
                    e.Row("编号") = e.Text & "00000"
                End If

当编号列的数据达到指定长度以后就执行上面的代码,然后需要给编号列重新赋值,但是不生效,其他列赋值都可以生效


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


加好友 发短信
等级:超级版主 帖子:35369 积分:180029 威望:0 精华:8 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/10/10 14:20:00 [只看该作者]

Dim fdr As DataRow = DataTables("编号信息").SQLFind(" 编号 Like '%" & e.Text & "_____'","[_Identify] desc")

取最大的编号?

dim max as string = DataTables("编号信息").SQLCompute("max(编号)"," 编号 Like '%" & e.Text & "_____'")
if max > "" then
    Dim num As Integer = max.SubString(max.length - 5,5) + 1
    e.Row("编号") = e.Text & format(num,"00000")
else
    e.Row("编号") = e.Text & "00000"
end if

 回到顶部
总数 17 上一页 1 2