Foxtable(狐表)用户栏目专家坐堂 → 类似掩码格式提取多列字段形成型号规格


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

主题:类似掩码格式提取多列字段形成型号规格

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


加好友 发短信
等级:幼狐 帖子:62 积分:533 威望:0 精华:0 注册:2014/9/3 21:16:00
类似掩码格式提取多列字段形成型号规格  发帖心情 Post By:2017/1/11 17:37:00 [只看该作者]

老师您好!我现在型号规格列中用取字段形成像掩码格式那样的怎么弄,比如:型号列的FKZC-G,电压列的480,容量列40,相别列3(有电抗率列有数据时选电抗率,没有才选该列),电抗率列7%(有数据时取,没数据时取相别列),那型号规格列则为:FKZC-G480-40-3或FKZC-G480-40-7%
图片点击可在新窗口打开查看此主题相关图片如下:qq截图20170111172234.png
图片点击可在新窗口打开查看

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/1/11 17:46:00 [只看该作者]

 startEdit事件,写代码

 

If e.Col.Name = "xxx" Then

    e.Table.grid.Cols(e.Col.name).editmask = e.row("第三列") & "-" & e.row("第四列")

End If

 

 afterEdit事件,写代码

 

If e.Col.Name = "xxx" Then

    e.Table.grid.Cols(e.Col.name).editmask = ""

End If


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


加好友 发短信
等级:幼狐 帖子:62 积分:533 威望:0 精华:0 注册:2014/9/3 21:16:00
  发帖心情 Post By:2017/1/13 17:08:00 [只看该作者]

老师您好!为什么我用这代码会出现下划线和取得数据有缺失,就是丢失的用下划线代替了,而且还乱取。

图片点击可在新窗口打开查看此主题相关图片如下:qq截图20170113171341.png
图片点击可在新窗口打开查看
[此贴子已经被作者于2017/1/13 17:14:05编辑过]

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/1/13 17:11:00 [只看该作者]

 不能写在validateEdit事件。看2楼的方法。


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


加好友 发短信
等级:幼狐 帖子:62 积分:533 威望:0 精华:0 注册:2014/9/3 21:16:00
  发帖心情 Post By:2017/1/13 17:15:00 [只看该作者]

以下是引用有点色在2017/1/13 17:11:00的发言:

 不能写在validateEdit事件。看2楼的方法。

刚才写错地方了,


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


加好友 发短信
等级:幼狐 帖子:62 积分:533 威望:0 精华:0 注册:2014/9/3 21:16:00
  发帖心情 Post By:2017/1/13 17:17:00 [只看该作者]

以下是引用有点色在2017/1/13 17:11:00的发言:

 不能写在validateEdit事件。看2楼的方法。

还是那样子,K和0取不了

 


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


加好友 发短信
等级:幼狐 帖子:62 积分:533 威望:0 精华:0 注册:2014/9/3 21:16:00
  发帖心情 Post By:2017/1/13 17:23:00 [只看该作者]

"C"也取不出来
图片点击可在新窗口打开查看此主题相关图片如下:qq截图20170113172003.png
图片点击可在新窗口打开查看

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/1/13 17:28:00 [只看该作者]

特殊字符要加 \ 符号

 

http://www.foxtable.com/webhelp/scr/3100.htm

 

代码改成

 

If e.Col.Name = "第二列" Then
    Dim ary() As String = {"第三列", "第四列"}
    dim nstr as string = ""
    For Each c As String In ary
        Dim str As String = e.Row(c)
        For Each s As String In str
            nstr &= "\" & s
        Next
        nstr &= "-"
    Next
    e.Table.grid.Cols(e.Col.name).editmask = nstr.trim("-") & "-000"
End If


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


加好友 发短信
等级:幼狐 帖子:62 积分:533 威望:0 精华:0 注册:2014/9/3 21:16:00
  发帖心情 Post By:2017/1/13 17:40:00 [只看该作者]

以下是引用有点色在2017/1/13 17:28:00的发言:

特殊字符要加 \ 符号

 

http://www.foxtable.com/webhelp/scr/3100.htm

 

代码改成

 

If e.Col.Name = "第二列" Then
    Dim ary() As String = {"第三列", "第四列"}
    dim nstr as string = ""
    For Each c As String In ary
        Dim str As String = e.Row(c)
        For Each s As String In str
            nstr &= "\" & s
        Next
        nstr &= "-"
    Next
    e.Table.grid.Cols(e.Col.name).editmask = nstr.trim("-") & "-000"
End If

OK了,谢谢


此主题相关图片如下:qq截图20170113173909.png
按此在新窗口浏览图片

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/1/13 18:03:00 [只看该作者]

 我觉得你不需要用掩码处理这种情况吧?你可以在datacolchanged事件写代码

 

Select Case e.DataCol.Name

    case "型号", "电压", "容量", "相别"

        e.DataRow("规格型号") = e.DataRow("型号") & "-" & e.DataRow("电压") & "-" & e.DataRow("容量") & "-" & e.DataRow("相别")

End Select

 

 


 回到顶部
总数 11 1 2 下一页