Foxtable(狐表)用户栏目专家坐堂 → 关于单元格里百分比的输入效率问题


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

主题:关于单元格里百分比的输入效率问题

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


加好友 发短信
等级:童狐 帖子:251 积分:2392 威望:0 精华:0 注册:2011/11/12 10:39:00
关于单元格里百分比的输入效率问题  发帖心情 Post By:2013/9/10 8:45:00 [只看该作者]

表里有一列“含水率”含水7.6%,比如输入0.076,就会变成7.6%,这样要敲键盘5次,效率不高。
能不能直接输入7.6就会变成7.6%呢,在狐表4.16之前的版本都是可以的,
升级到6.2版后,输入7.6就变成760%。不知道我表达清楚没有,那位老师出手帮忙啊,谢谢!!!

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/9/10 8:58:00 [只看该作者]

你好,这个一直都是这样的吧.你可以考虑在DataColChanged中把输入的值除以100来实现你这个需求.

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


加好友 发短信
等级:童狐 帖子:251 积分:2392 威望:0 精华:0 注册:2011/11/12 10:39:00
  发帖心情 Post By:2013/9/10 9:39:00 [只看该作者]

bin老师我没弄好,你再出手啊。
这样不行你帮我改改吧
If e.DataCol.Name = "含水率" Then
    e.DataRow("含水率") = e.DataRow("含水率")/100
End If

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/9/10 9:43:00 [只看该作者]

不行,刚才忽略了! 这样做不行的,会死循环. 你老老实实用输入多几个0吧 要不你用录入窗口做,然后在窗口文本框处理,这样就好了.

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


加好友 发短信
等级:童狐 帖子:251 积分:2392 威望:0 精华:0 注册:2011/11/12 10:39:00
  发帖心情 Post By:2013/9/10 9:48:00 [只看该作者]

狐爸给的代码在表的AfterEdit事件中写
If e.Col.Name = "含水率" Then
    e.Row("含水率") = e.Row("含水率") / 100
End If

这样也不行

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


加好友 发短信
等级:九尾狐 帖子:2609 积分:16926 威望:0 精华:11 注册:2011/9/20 16:13:00
  发帖心情 Post By:2013/9/10 9:56:00 [只看该作者]

呵呵,要这样写

If e.DataCol.Name = "损耗" Or e.DataCol.Name = "利用率" Then
    If e.NewValue >= 1 Then
            e.Cancel = True
            e.DataRow(e.DataCol.Name) = e.NewValue/100
    End If
End If


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/9/10 14:21:00 [只看该作者]

可以直接设置e.NewValue:

 

If e.DataCol.Name = "损耗" OrElse e.DataCol.Name = "利用率" Then
    If e.NewValue >= 1 Then
            e.NewValue = e.NewValue/100
    End If
End If


 回到顶部