以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  新手求助!  (http://www.foxtable.com/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”的转换无效。
输入字符串的格式不正确。



图片点击可在新窗口打开查看此主题相关图片如下:1.jpg
图片点击可在新窗口打开查看


--  作者:有点蓝
--  发布时间: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