以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]生僻字 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=174515) |
||||
-- 作者:michl -- 发布时间:2022/1/18 21:42:00 -- [求助]生僻字 生僻字占了字符位 但是显示不出来怎么办 \'\'\' If e.DataCol.Name = "示例" And e.DataRow.IsNull("示例") = False Then e.DataRow("取左2") = left(e.DataRow("示例"),2) End If |
||||
-- 作者:有点蓝 -- 发布时间:2022/1/18 22:19:00 -- 我测试可以,请上传实例说明 |
||||
-- 作者:michl -- 发布时间:2022/1/19 8:59:00 -- 请老师看下示例怎么处理
|
||||
-- 作者:有点蓝 -- 发布时间:2022/1/19 9:31:00 -- 这种一个字符居然占2个长度,这样可以: e.DataRow("取左2") = left(e.DataRow("示例"),3) 但是普通字符就有问题了,网上搜了一圈,没有找到合适的方法 |
||||
-- 作者:michl -- 发布时间:2022/1/19 9:41:00 -- 呃…那就先这样空白着吧。取3位不行的,影响大量普通字符 |
||||
-- 作者:有点蓝 -- 发布时间:2022/1/19 9:55:00 -- 试试这样处理一下 If e.DataCol.Name = "示例" And e.DataRow.IsNull("示例") = False Then e.DataRow("取左2") = left(e.DataRow("示例"),2) Dim bs() As Byte = System.Text.Encoding.GetEncoding("GB2312").GetBytes(e.DataRow("取左2")) If bs(bs.length - 1) = 63 Then e.DataRow("取左2") = left(e.DataRow("示例"),3) End If End If |
||||
-- 作者:michl -- 发布时间:2022/1/19 11:15:00 -- 可以取出的 用在select里也试了一下,同样正确! If e.DataCol.Name = "示例" And e.DataRow.IsNull("示例") = False Then Dim s1 = left(e.DataRow("示例"),2) Dim drs1 As List(of DataRow) = DataTables("表A").Select("示例 like\'" & s1 & "*\'") e.DataRow("取左2") = s1 e.DataRow("左2同数") = drs1.Count Dim bs() As Byte = System.Text.Encoding.GetEncoding("GB2312").GetBytes(e.DataRow("取左2")) If bs(bs.length - 1) = 63 Then Dim s2 = left(e.DataRow("示例"),3) Dim drs2 As List(of DataRow) = DataTables("表A").Select("示例 like\'" & s2 & "*\'") e.DataRow("取左2") = s2 e.DataRow("左2同数") = drs2.Count End If End If |
||||
-- 作者:有点蓝 -- 发布时间:2022/1/19 11:22:00 -- 可以优化一下 If e.DataCol.Name = "示例" And e.DataRow.IsNull("示例") = False Then Dim s1 = left(e.DataRow("示例"),2) Dim bs() As Byte = System.Text.Encoding.GetEncoding("GB2312").GetBytes(s1) If bs(bs.length - 1) = 63 Then s1 = left(e.DataRow("示例"),3) End If Dim drs1 As List(of DataRow) = DataTables("表A").Select("示例 like\'" & s1 & "*\'") e.DataRow("取左2") = s1 e.DataRow("左2同数") = drs1.Count End If
|
||||
-- 作者:michl -- 发布时间:2022/1/19 11:50:00 -- 好的谢谢 |