Foxtable(狐表)用户栏目专家坐堂 → 从“级码”中提取“单位编码”


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

主题:从“级码”中提取“单位编码”

帅哥,在线噢!
有点蓝
  21楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107864 积分:548683 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/3/17 13:38:00 [只看该作者]

Dim r As Row = Tables("项目总表").Current
If r IsNot Nothing andalso DataTables("项目明细表").compute("count(项目编号)","项目编号='" & r("项目编号") & "'") = 0 Then
    If MessageBox.Show("确认是否真的要删除?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question)=6 Then
        r.delete
    End If
End If

 回到顶部
帅哥,在线噢!
jhxb8821
  22楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:707 积分:5039 威望:0 精华:0 注册:2016/4/15 22:24:00
老师,帮我看看红色代码  发帖心情 Post By:2022/3/17 14:21:00 [只看该作者]

Dim r As Row = Tables("项目总表").Current
If r IsNot Nothing AndAlso DataTables("项目明细表").compute("count(项目编号)","项目编号='" & r("项目编号") & "'") = 0 Then
    If MessageBox.Show("确认是否真的要删除?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question)=6 Then
        r.delete
    ElseIf DataTables("项目明细表").compute("count(项目编号)","项目编号='" & r("项目编号") & "'") > 0 Then
        MessageBox.show("发现有明细单,请先删除明细再删除!", "提示" )
    End If
End If

 回到顶部
帅哥,在线噢!
有点蓝
  23楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107864 积分:548683 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/3/17 14:32:00 [只看该作者]

Dim r As Row = Tables("项目总表").Current
If r IsNot Nothing 
if DataTables("项目明细表").compute("count(项目编号)","项目编号='" & r("项目编号") & "'") = 0 Then
    If MessageBox.Show("确认是否真的要删除?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question)=6 Then
        r.delete
    End If
else
MessageBox.show("发现有明细单,请先删除明细再删除!", "提示" )
endif
End If

 回到顶部
帅哥,在线噢!
jhxb8821
  24楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:707 积分:5039 威望:0 精华:0 注册:2016/4/15 22:24:00
  发帖心情 Post By:2022/3/17 20:03:00 [只看该作者]

非常感谢蓝老师

 回到顶部
帅哥,在线噢!
jhxb8821
  25楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:707 积分:5039 威望:0 精华:0 注册:2016/4/15 22:24:00
  发帖心情 Post By:2023/7/22 10:51:00 [只看该作者]

'假设8位固定长度"编码",直接转换生成"级码"

Select e.DataCol.Name

    Case "编码"

        If e.DataRow.IsNull("编码") Then

            e.DataRow("级码") = Nothing

        Else

            Dim bm As String = e.DataRow("编码")

            e.DataRow("级码") = val(bm.SubString(0, 2)) & "." & val(bm.SubString(2, 2)) & "." & val(bm.SubString(4, 2)) & "." & val(bm.SubString(6, 2))

        End If

End Select

上述代码比较完美

如果"编码"不固定为任意长度,又如何改写代码?

如何根据不同长度的编号直接生成级码,比如,编号010111,生成级码1.1.11,而不是01.01.11 

编号          级码

01            1

0101          1.1

010111        1.1.11

01011103      1.1.11.3

请教老师如何改写



 回到顶部
帅哥,在线噢!
有点蓝
  26楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107864 积分:548683 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/7/22 12:07:00 [只看该作者]

生成后把0去掉。比如

dim s as string = "01.01.11 "
s = s.replace("0","")
msgbox(s)

 回到顶部
帅哥,在线噢!
jhxb8821
  27楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:707 积分:5039 威望:0 精华:0 注册:2016/4/15 22:24:00
  发帖心情 Post By:2023/7/22 12:07:00 [只看该作者]

Select e.DataCol.Name

    Case "编码"

        If e.DataRow.IsNull("编码") Then

            e.DataRow("级码") = Nothing

        Else

            Dim bm As String = e.DataRow("编码")

            If bm.length = 2 Then

                e.DataRow("级码") = val(bm.SubString(0, 2))

            Else If bm.length = 4 Then

            e.DataRow("级码") = val(bm.SubString(0, 2)) & "." & val(bm.SubString(2, 2))

            Else If bm.length = 6 Then

            e.DataRow("级码") = val(bm.SubString(0, 2)) & "." & val(bm.SubString(2, 2)) & "." & val(bm.SubString(4, 2))

            Else If bm.length = 8 Then

                e.DataRow("级码") = val(bm.SubString(0, 2)) & "." & val(bm.SubString(2, 2)) & "." & val(bm.SubString(4, 2)) & "." & val(bm.SubString(6, 2))

            Else If bm.length >= 9 Then

            MessageBox.Show("长度超过9位数,生成级码有误,请重新核对!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error)

            End If

        End If

End Select

这样写代码,长度超过9位面临无法计算,请教老师帮忙完善


 回到顶部
帅哥,在线噢!
有点蓝
  28楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


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

完善什么东西?超过9位想怎么处理?

 回到顶部
帅哥,在线噢!
jhxb8821
  29楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:707 积分:5039 威望:0 精华:0 注册:2016/4/15 22:24:00
  发帖心情 Post By:2023/7/22 15:15:00 [只看该作者]

对,超过9位,也就是不固定长度,请教蓝老师帮助解决
[此贴子已经被作者于2023/7/22 17:13:44编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  30楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


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

超过9位想怎么处理?具体举例说明一下

 回到顶部
总数 64 上一页 1 2 3 4 5 6 7 下一页