Foxtable(狐表)用户栏目专家坐堂 → 请看列类型的问题


  共有19777人关注过本帖树形打印复制链接

主题:请看列类型的问题

帅哥哟,离线,有人找我吗?
mr725
  11楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2009/6/27 15:11:00 [只看该作者]

这样可以了 对吗? 在startedit中加上:
if e.Row("记功等级").contains("★") then  
    e.Row("记功等级") = ""
end if
这样修改时不会出问题了。
[此贴子已经被作者于2009-6-27 15:11:23编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
kylin
  12楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 F6
等级:狐精 帖子:3030 积分:19188 威望:0 精华:2 注册:2008/9/1 7:50:00
  发帖心情 Post By:2009/6/27 15:56:00 [只看该作者]

以下是引用mr725在2009-6-27 15:11:00的发言:
这样可以了 对吗? 在startedit中加上:
if e.Row("记功等级").contains("★") then  
    e.Row("记功等级") = ""
end if
这样修改时不会出问题了。
[此贴子已经被作者于2009-6-27 15:11:23编辑过]

其实不用这样,以上可以限定只可以录入数字,在KeyPressEdit中如下设定
If Char.IsPunctuation(e.KeyChar) OrElse Char.IsSymbol(e.KeyChar)  OrElse Char.IsLetter(e.KeyChar)  Then
    e.Cancel = True
End If


不仅达到这个目的,还可以防止无厘头的录入,比如小数、英文/中文字符等等

[此贴子已经被作者于2009-6-27 16:00:04编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
mr725
  13楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2009/6/27 18:25:00 [只看该作者]

kylin老师12楼说的很好,应该这样录入的时候只允许输入数字,这样保证了第一次录入的正确性。
但我10、11楼的意思是:
在修改某个带"★"号单元格时,如不小心碰了空格键或双击了这个单元格,如不加与判断清除"★"号,则仍就可以继续在"★"号后面继续输入数字(有些人录入速度快,不抬头就enter了)。
为确保录入、修改数据,11和12楼代码都用上,万无一失了~ 

 回到顶部
帅哥哟,离线,有人找我吗?
八婺
  14楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:252 积分:1355 威望:0 精华:0 注册:2009/4/5 13:06:00
  发帖心情 Post By:2009/6/27 21:05:00 [只看该作者]

4、7楼代码都有问题的,假如在记功等级列输入0就会出错。
[此贴子已经被作者于2009-6-27 21:07:28编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  15楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47448 积分:251048 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2009/6/27 22:01:00 [只看该作者]

以下是引用八婺在2009-6-27 21:05:00的发言:
4、7楼代码都有问题的,假如在记功等级列输入0就会出错。
[此贴子已经被作者于2009-6-27 21:07:28编辑过]


再来一个:

If e.DataCol.Name = "记功等级" Then
    If e.DataRow.IsNull("记功等级") Then
        e.DataRow("奖励") = Nothing
    Else
        Dim s As Integer
        If Integer.TryParse(e.DataRow("记功等级"),s) AndAlso s > 0 Then
            e.DataRow("记功等级") = "★".PadLeft(s,"★")
            e.DataRow("奖励") =s * 50
        End If
    End If
End If

[此贴子已经被作者于2009-6-27 22:00:49编辑过]

 回到顶部
总数 15 上一页 1 2