Foxtable(狐表)用户栏目专家坐堂 → 关于组合框加载不同列数据


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

主题:关于组合框加载不同列数据

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


加好友 发短信
等级:八尾狐 帖子:2007 积分:12794 威望:0 精华:0 注册:2017/4/3 15:01:00
关于组合框加载不同列数据  发帖心情 Post By:2019/7/26 8:32:00 [只看该作者]

怎样设置将组合框加载符合条件的表中某一行数据几个列的值呢?

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


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

使用find查找得到行,然后
dim s as string = dr("第一列") & "|" & dr("第二列") & "|" ......
组合框.combolist = s

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


加好友 发短信
等级:八尾狐 帖子:2007 积分:12794 威望:0 精华:0 注册:2017/4/3 15:01:00
  发帖心情 Post By:2019/7/26 20:03:00 [只看该作者]

假如一组数据(电话1、电话2、电话3)是正常显示 、另一组对应的数据(电话1掩码显示、电话2掩码显示、电话3掩码显示)收是掩码显示 ,当登录程序的身份为操作员的时候,打开组合框显示的是掩码显示,当单击某一项的时候选值是正常显示的字段去给数据库另一表赋值,怎么设置一下呢?
因为在 DataColChanging事件中写了如下代码



If e.DataCol.name ="注册手机号掩码" Then
    If e.NewValue = "" Then
        systemready = False
        e.DataRow(e.DataCol.name.SubString(0,e.DataCol.name.length-4)) = ""
        systemready = True
    ElseIf e.newvalue.contains("*") = False  Then
        Dim r_tele As New System.Text.RegularExpressions.Regex("^1[0-9]{10}$")
        If r_tele.IsMatch(e.newvalue) = False Then
            msgbox("电话号码不正确")
            e.cancel = True
           End If
        If e.Cancel = False Then
            systemready = False
            e.DataRow(e.DataCol.name.SubString(0,e.DataCol.name.length-2)) = e.newvalue
            e.NewValue = e.NewValue.SubString(0, 3) & "*****" & e.NewValue.SubString(8,3)
            systemready = True
        End If
    Else
   
     msgbox("不能这样修改")
        e.cancel = True
    End If
End If


 

在组合框的Enter事件中写了如下代码

Dim khID As WinForm.DropDownBox= e.Form.controls("kehuIDDropBox")

Dim zcsjh As WinForm.ComboBox=e.Form.Controls("zhuceshoujihaoComboBox")

Dim dr As DataRow

If khID.text<>"" Then

dr = DataTables("客户资料").Find("客户ID= '"& khID.text &"'")                                

Dim zfc As String=dr("手机号1") & "|" & dr("手机号2") & "|" & dr("手机号3")

Dim zfc1 As String=dr("手机号1掩码") & "|" & dr("手机号2掩码") & "|" & dr("手机号3掩码")

If _UserGroup <> "系统管理员"  Then

 zcsjh.BindingField = "商户资料表.注册手机号掩码"

zcsjh.ComboList=zfc1

Else

'zfc =dr("手机号1") & "|" & dr("手机号2") & "|" & dr("手机号3")

 zcsjh.BindingField = "商户资料表.注册手机号"

zcsjh.ComboList=zfc

End If

End If


如果不照样选择就会报错的。.提醒  "不能这样修改"
[此贴子已经被作者于2019/7/26 20:11:46编辑过]

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


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

请上传实例测试

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


加好友 发短信
等级:八尾狐 帖子:2007 积分:12794 威望:0 精华:0 注册:2017/4/3 15:01:00
  发帖心情 Post By:2019/7/26 21:11:00 [只看该作者]

他是综合的没法上传实例,我就是想实现当打开组合框显示的是掩码列,当中其中一项时怎样将对应的另外一列(取值)的数据赋值给某一个字段

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


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

新建项目做个类似的功能。我们没有办法凭想象去解决这个问题

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


加好友 发短信
等级:八尾狐 帖子:2007 积分:12794 威望:0 精华:0 注册:2017/4/3 15:01:00
  发帖心情 Post By:2019/7/27 0:32:00 [只看该作者]

老师麻烦测试一下
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:组合框测试.rar



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


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

If e.DataCol.name ="注册电话掩码" Then
    If e.NewValue = "" Then
        systemready = False
        e.DataRow(e.DataCol.name.SubString(0,e.DataCol.name.length-4)) = ""
        systemready = True
    ElseIf e.newvalue.contains("*") Then
        Dim dr As DataRow = DataTables("客户资料表").Find("客户ID='" & e.DataRow("客户ID") & "'")
        If dr IsNot Nothing Then
            Dim dh As String
            For Each dc As DataCol In DataTables("客户资料表").DataCols
                If dc.Name.EndsWith("掩码") Then
                    If dr(dc.Name) = e.NewValue Then
                        dh = dr(dc.Name.Replace("掩码",""))
                        Exit For
                    End If
                End If
            Next
            If dh > "" Then
                Dim r_tele As New System.Text.RegularExpressions.Regex("^1[0-9]{10}$")
                If r_tele.IsMatch(dh) = False Then
                    msgbox("电话号码不正确")
                    e.cancel = True
                End If
                If e.Cancel = False Then
                    systemready = False
                    e.DataRow(e.DataCol.name.SubString(0,e.DataCol.name.length-2)) = dh
                    'e.NewValue = e.NewValue.SubString(0, 3) & "*****" & e.NewValue.SubString(8,3)
                    systemready = True
                End If
            Else
                e.Cancel = True
            End If
        Else
            e.Cancel = True
        End If
    Else
        msgbox("不能这样修改")
        e.cancel = True
    End If
End If

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


加好友 发短信
等级:八尾狐 帖子:2007 积分:12794 威望:0 精华:0 注册:2017/4/3 15:01:00
  发帖心情 Post By:2019/7/27 14:59:00 [只看该作者]

(1)虽然不弹出提示了,但选择后也不赋值了,什么原因?
(2)如果是文本框输入电话号码会弹出同样的提示框

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:组合框测1试.rar


 

[此贴子已经被作者于2019/7/27 16:35:31编辑过]

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


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

我测试没有问题

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