以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  输入拼音首字母获取数据  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=115898)

--  作者:zyxhx
--  发布时间:2018/3/16 10:45:00
--  输入拼音首字母获取数据
利用窗口设计-自定义录入界面之三,建立了一录入界面,可是只能输入姓名或者编码搜索。请问用代码如何直接输入姓名的拼音首字母搜索。

请问下面代码如何修改:
If e.Col.Name = "姓名" Then \'如果编辑的是姓名列
    If e.Col.DroppedDown Then \'如果下拉窗口已经打开
        Dim tbl As Table = Tables("个人档案列表窗口_Table1") 
        If e.Text = "" Then \'如果内容为空
            tbl.Filter = "" \'显示所有客户
        Else \'否则根据输入内容进行模糊筛选
            Dim txt As String = "\'%" & e.Text & "%\'"
            tbl.Filter = "健康档案号 Like " & txt & " Or 姓名 Like " & txt & " Or 身份证号码 Like " & txt & " Or 联系电话 Like " & txt
        End If
    End If
End If

--  作者:有点甜
--  发布时间:2018/3/16 10:52:00
--  

你要有拼音列才行的,参考

 

下载信息  [文件大小:324.0 KB  下载次数:28]
图片点击可在新窗口打开查看点击浏览该文件:拼音_下拉窗口_示例.table

 

如果要在你代码基础上改,你要加入一个拼音列,然后把姓名的拼音赋值过去,datacolchanged事件

 

Select Case e.DataCol.Name
    Case "姓名"
        If e.NewValue <> "" Then
            e.DataRow("拼音") = GetPy(e.NewValue, True)
        End If
End Select

 

然后,修改筛选代码,如

 

tbl.Filter = "健康档案号 Like " & txt & " Or 姓名 Like " & txt & " Or 身份证号码 Like " & txt & " Or 联系电话 Like " & txt & " or 拼音 like " & txt


--  作者:zyxhx
--  发布时间:2018/3/16 11:28:00
--  
能不能不加入拼音列,直接用代码修改。
--  作者:有点甜
--  发布时间:2018/3/16 11:48:00
--  
以下是引用zyxhx在2018/3/16 11:28:00的发言:
能不能不加入拼音列,直接用代码修改。

 

做不到。不加拼音列,每次都要循环每一行,把姓名转换成拼音然后比较是否匹配,效率很低。

 

加入拼音列有什么问题?你担心什么?


--  作者:zyxhx
--  发布时间:2018/3/16 13:46:00
--  
如果在已有的姓名列表中插入拼音列后,利用以上代码,当在姓名列中输入时拼音列会自动生成,可是姓名列之前已有很多数据,如何快速生成拼音缩写,应该将代码写在哪个事件中?


--  作者:有点甜
--  发布时间:2018/3/16 14:05:00
--  
以下是引用zyxhx在2018/3/16 13:46:00的发言:
如果在已有的姓名列表中插入拼音列后,利用以上代码,当在姓名列中输入时拼音列会自动生成,可是姓名列之前已有很多数据,如何快速生成拼音缩写,应该将代码写在哪个事件中?

 

重置列

 

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