以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  关于组合框加载不同列数据  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=138240)

--  作者:裴保民
--  发布时间:2019/7/26 8:32:00
--  关于组合框加载不同列数据
怎样设置将组合框加载符合条件的表中某一行数据几个列的值呢?
--  作者:有点蓝
--  发布时间:2019/7/26 8:47:00
--  
使用find查找得到行,然后
dim s as string = dr("第一列") & "|" & dr("第二列") & "|" ......
组合框.combolist = s

--  作者:裴保民
--  发布时间: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编辑过]

--  作者:有点蓝
--  发布时间:2019/7/26 20:47:00
--  
请上传实例测试
--  作者:裴保民
--  发布时间:2019/7/26 21:11:00
--  
他是综合的没法上传实例,我就是想实现当打开组合框显示的是掩码列,当中其中一项时怎样将对应的另外一列(取值)的数据赋值给某一个字段
--  作者:有点蓝
--  发布时间:2019/7/26 21:16:00
--  
新建项目做个类似的功能。我们没有办法凭想象去解决这个问题
--  作者:裴保民
--  发布时间:2019/7/27 0:32:00
--  
老师麻烦测试一下
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:组合框测试.rar



--  作者:有点蓝
--  发布时间: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

--  作者:裴保民
--  发布时间:2019/7/27 14:59:00
--  
(1)虽然不弹出提示了,但选择后也不赋值了,什么原因?
(2)如果是文本框输入电话号码会弹出同样的提示框

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


 

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

--  作者:有点蓝
--  发布时间:2019/7/27 16:47:00
--  
我测试没有问题