以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]根据客户名称,自动出现身份证号码或者出现下拉列表共选择  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=55152)

--  作者:ahbrq
--  发布时间:2014/8/11 21:59:00
--  [求助]根据客户名称,自动出现身份证号码或者出现下拉列表共选择

[求助]在“积分兑换明细表”中,输入客户名称,自动出现身份证号码;或者同名时,身份证号码处出现下拉列表供选择。

 

功能如何实现?

 

 Select Case e.DataCol.name
        Case  "客户名称","身份证号码"
            Dim filter As String = "客户名称 = \'" & e.DataRow("客户名称") & "\' and 身份证号码 = \'" & e.DataRow("身份证号码") & "\'"
            Dim str As String = DataTables("客户资料").GetComboListString("身份证号码", filter)
           
            If str.Split("|").Length = 1 Then
                e.DataRow("身份证号码") = str
            Else
              \'  e.DataRow("身份证号码") = "多个重复值"
                Tables(e.DataTable.Name).Cols("身份证号码").ComboList = str
            End If
    End Select

 

 


以上代码实现不了,请指教。谢谢

 下载信息  [文件大小:   下载次数: ]
点击浏览该文件:管理项目0808.table


--  作者:有点甜
--  发布时间:2014/8/11 22:12:00
--  

    Select Case e.DataCol.name
        Case  "客户名称"
            Dim filter As String = "客户名称 = \'" & e.DataRow("客户名称") & "\'"
            Dim str As String = DataTables("客户资料").GetComboListString("身份证号码", filter)
           
            If str.Split("|").Length = 1 Then
                e.DataRow("身份证号码") = str
            Else
              \'  e.DataRow("身份证号码") = "多个重复值"
                Tables(e.DataTable.Name).Cols("身份证号码").ComboList = str
            End If
    End Select

 


--  作者:ahbrq
--  发布时间:2014/8/13 21:24:00
--  

当出现有重名的时候,通过下拉列表可以选择正确的身份证,但是下一条记录中身份证列的下拉列表中还有上面重名的身份证下拉列表值,

 

我通过给身份证列赋值为空,但是没有起到效果,什么原因?

 

 Select Case e.DataCol.name
        Case  "客户名称"
            e.DataRow("身份证号码") = "                "
            Dim filter As String = "客户名称 = \'" & e.DataRow("客户名称") & "\'  "
            Dim str As String = DataTables("客户资料").GetComboListString("身份证号码", filter)
           
            If str.Split("|").Length = 1 Then
                e.DataRow("身份证号码") = str
            Else
                e.DataRow("身份证号码") = "多个重复值"
                Tables(e.DataTable.Name).Cols("身份证号码").ComboList = str
            End If
    End Select


--  作者:有点甜
--  发布时间:2014/8/13 21:36:00
--  

 prepareEdit事件,加入代码

 

Select Case e.Col.name
    Case  "身份证号码"
        Dim filter As String = "客户名称 = \'" & e.Row("客户名称") & "\'  "
        Dim str As String = DataTables("客户资料").GetComboListString("身份证号码", filter)
       
        If str.Split("|").Length > 1 Then
            e.Table.Cols("身份证号码").ComboList = str
        Else
            e.Table.Cols("身份证号码").ComboList = Nothing
        End If
End Select


--  作者:ahbrq
--  发布时间:2014/8/13 21:44:00
--  

那么datacolchanged事件中这部分代码是否需要去掉?

 


--  作者:有点甜
--  发布时间:2014/8/13 21:48:00
--  

 回复5楼不需要去到,也可以改成

 

Select Case e.DataCol.name
    Case  "客户名称"
        Dim filter As String = "客户名称 = \'" & e.DataRow("客户名称") & "\'  "
        Dim fdr As DataRow = DataTables("客户资料").find(filter)
              
        If fdr IsNot Nothing Then
            e.DataRow("身份证号码") = fdr("身份证号码")
        Else
            e.DataRow("身份证号码") = Nothing
        End If      
End Select

[此贴子已经被作者于2014-8-13 21:48:57编辑过]