以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 新手求助! (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=110059) |
-- 作者:HarryPotter_9527 -- 发布时间:2017/11/25 14:15:00 -- 新手求助! 此主题相关图片如下:3.jpg 此主题相关图片如下:2.jpg 我想再类型为字符串的"数量"列中实现,输入数字如:85, 然后在datacolchanged事件中让显示的内容变为85PCS,我写好了datacolchanged事件后,输入85,报错了,提示类型转换错误,请问对于字符串类型的列的事件,里面的e.newValue到底是什么类型的? 我的datacolchanged事件代码如下: If e.DataCol.Name="数量" Then If e.NewValue IsNot Nothing Then If cint(e.NewValue)<=0 Then If messagebox.show("数量不能为负数,重新输入","提示")=dialogresult.ok Then e.DataRow("数量")=Nothing End If Else If cint(e.NewValue)>0 Then e.DataRow("数量")=cstr(e.DataRow("数量") ) & "PCS" End If Else e.DataRow("数量")=Nothing End If End If 输入85后,表格中能显示85PCS,但是会出现报错框,里面的内容是: .NET Framework 版本:2.0.50727.8669 Foxtable 版本:2017.10.26.1 错误所在事件:表,产品,DataColChanged 详细错误信息: 调用的目标发生了异常。 从字符串“85PCS”到类型“Integer”的转换无效。 输入字符串的格式不正确。 |
-- 作者:有点蓝 -- 发布时间:2017/11/25 14:49:00 -- 数量经常会参与计算,不应该使用字符列,也不应该添加单位。单位一般另外用一列显示。 如果一定要在数量列显示,可以利用drawcell事件虚拟增加一个单位显示:http://www.foxtable.com/webhelp/scr/0656.htm 数量列改为整型 If e.Col.Name = "数量" andalso e.Row(e.Col.Name) > 0 Then e.Text = e.Row(e.Col.Name) & "PCS" End IF
|