以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  用姓名的拼音首字母定位记录  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=110181)

--  作者:刘林
--  发布时间:2017/11/28 14:27:00
--  用姓名的拼音首字母定位记录
Dim txt As String = e.sender.Text
If txt > ""
    txt = "\'%" & txt & "%\'"
    Dim dr As DataRow
           Dim po As Integer
        po = Tables("初中上分_table1").FindRow("[考号] Like" & txt)
        If po >= 0 Then \'如果找到
            Tables("初中上分_table1").Position = po \'选定
        Else
            Tables("初中上分_table1").Position = 0
            MessageBox.show("该考号在所选学生范围内不存在")
            e.sender.text = ""
        End If
    End If

老师,上面代码是输入考号的几位定位学生记录,我想同样在这个文本框中如果输入表中的某个姓名的拼音首字母来定位学生怎样做?

--  作者:有点甜
--  发布时间:2017/11/28 15:13:00
--  

 1、用一列记录拼音首字母

 

http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=103586&skin=0

 

 2、查找条件改成

 

po = Tables("初中上分_table1").FindRow("[考号] Like " & txt & " or 拼音 like " & txt)

 


--  作者:刘林
--  发布时间:2017/11/28 16:23:00
--  

po = Tables("初中上分_table1").FindRow("[考号] Like " & txt & " or 拼音 like " & txt)

 

table1表中有一列是姓名,我想输入姓名的拼音首字母来定位,拼音这里是什么意思,如何写?
--  作者:有点甜
--  发布时间:2017/11/28 16:32:00
--  

增加一列拼音列,把根据姓名列得到对应拼音字母

 

http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=103586&skin=0


--  作者:刘林
--  发布时间:2017/11/28 16:33:00
--  
Dim txt As String = e.sender.Text
If txt > ""
    Dim reg2 As new System.Text.RegularExpressions.Regex("^[a-zA-Z]+$")
    Dim reg1 As new System.Text.RegularExpressions.Regex("^[0-9]+$")
    If reg1.Ismatch(txt) = True Then
        txt = "\'%" & txt & "%\'"
       
        Dim po As Integer
        po = Tables("初中上分_table1").FindRow("[考号] Like" & txt)
        If po >= 0 Then \'如果找到
            Tables("初中上分_table1").Position = po \'选定
        Else
            Tables("初中上分_table1").Position = 0
            MessageBox.show("该考号在所选学生范围内不存在")
            e.sender.text = ""
        End If
    ElseIf reg2.Ismatch(txt) = True Then
        msgbox("字母")
        txt = "\'%" & txt & "%\'"
              Dim py As Integer
        py = Tables("初中上分_table1").FindRow("getpinyin([姓名],1) Like" & txt)
        If py >= 0 Then \'如果找到
            Tables("初中上分_table1").Position = py \'选定
        Else
            Tables("初中上分_table1").Position = 0
            MessageBox.show("该姓名学生不在所选范围内")
            e.sender.text = ""
        End If
        
    Else
        messagebox.show("不能输入字母和数字组合,请输入考号后4位数字或姓名拼音首字母")
        e.Form.Controls("textbox6").text=""
        e.Form.controls("textbox6").Select
    End If
End If

拼音如何做?

--  作者:有点蓝
--  发布时间:2017/11/28 17:16:00
--  
你要先增加一个列,比如名称叫“拼音”,先通过getpinyin方法把所有的姓名的拼音存储到“拼音”列中。查询的时候直接查拼音列
--  作者:刘林
--  发布时间:2017/11/28 17:49:00
--  
这样增加了数据量,我的想法是可不可以直接转换出来,不去增加一列
--  作者:有点甜
--  发布时间:2017/11/28 17:56:00
--  
以下是引用刘林在2017/11/28 17:49:00的发言:
这样增加了数据量,我的想法是可不可以直接转换出来,不去增加一列

 

不可以。这一列可以是临时列,可以在打开项目的时候动态加入,其值,可以在afterLoad事件动态生成。


--  作者:刘林
--  发布时间:2017/11/28 21:51:00
--  
刘强的拼音首字母是lj 而我们正常都是lq,这如何办?
--  作者:有点蓝
--  发布时间:2017/11/28 23:06:00
--  
没有办法,只能手工改改。或者添加一个字典表记录多音字的用法