Foxtable(狐表)用户栏目专家坐堂 → integer内容发生变化时要执行事件出现的错误


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

主题:integer内容发生变化时要执行事件出现的错误

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


加好友 发短信
等级:二尾狐 帖子:562 积分:4845 威望:0 精华:0 注册:2014/4/29 14:32:00
integer内容发生变化时要执行事件出现的错误  发帖心情 Post By:2015/4/22 15:15:00 [只看该作者]

我在窗口表中,列的类型是integer
1、选中单元格然后用键盘delete删除内容,不会触发changeEdit事件??
2、输入数字的时候,会提示string类型“”不能传换成integer类型,然后才可以显示数字(好像,修改的时候,内容先变成了空【""】,然后才是我输入的数字)

这个要怎么处理??

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


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

1.不会触发,因为还未进入编辑
2.不会出现这种情况,应该是你代码有问题,代码发出来或者上个例子看看

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


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

1.用DataColChangINg 事件会触发

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


加好友 发短信
等级:二尾狐 帖子:562 积分:4845 威望:0 精华:0 注册:2014/4/29 14:32:00
回复:(Bin)1.不会触发,因为还未进入编辑2.不会出现...  发帖心情 Post By:2015/4/22 15:24:00 [只看该作者]

这是changeEdit中的事件代码
If e.Form.Controls("ckdm").text<>"cpc" Then  '只有选择成品仓时才执行以下代码
    Return
End If
Dim ckmc As String = e.F+orm.Name
Dim shang1 As Table = Tables(ckmc+"_shang1")
Dim drkhdm As String = shang1.current("khdm")
Dim drdjbh As String = shang1.current("djbh")

Dim dckhdm As String = "cpc"
Dim spdm As String = e.Row("spdm")
Dim ysdm As String = e.Row("gg1dm")
Dim cmdm As String = e.Row("gg2dm")
Dim sl As Integer=e.text

Dim djbh As String=Tables(_fckmc+"_"+_glb).current(_gldm)  '父窗口单据编号

If Forms(_fckmc).Controls("bianji").text="1" Then
    Tables(_fckmc+"_"+_glb).save  '如果主表状态是新增,则同时保存主表,做到实时保存,并且重置主表状态为编辑
    Forms(_fckmc).Controls("xiugai").performclick
    'Forms(_fckmc).Controls("bianji").text="2"
End If

Dim cmd As New SQLCommand
Dim dt As DataTable
Dim dr As DataRow
Dim cmb As WinForm.ComboBox
cmd.C
Dim a1 As String ="SELECT * F+rom bhd1mx"
Dim a2 As String =" where djbh='"+djbh+"' And drdjbh='"+drdjbh+"' And dckhdm='"+dckhdm+"'"
Dim a3 As String =" And spdm='"+spdm+"' and ysdm='"+ysdm+"' and cmdm='"+cmdm+"'"
Dim taba As String =a1+a2+a3
cmd.CommandText = taba
dt = cmd.ExecuteReader(True)
If dt.DataRows.Count=0 Then  '如果不存在则添加
    dr= dt.AddNew
    dr("djbh")=djbh  '获取父窗口的单据编号
    dr("spdm")=spdm
    dr("ysdm")=ysdm
    dr("cmdm")=cmdm
    dr("sl")=sl
    dr("drkhdm")=drkhdm
    dr("drdjbh")=drdjbh
    dr("dckhdm")=dckhdm
    dr.save
Else   '否则更新
    dt.DataRows(0)("sl")=sl
    dt.DataRows(0).save
End If

'配货数量溢出提示(配货数量)
If e.Row("wwgsl")-e.Row("tzdsl")-e.Row("phsl")<0 Then
MessageBox.Show("配货数量超出未完工数量,请修改!")
End If

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


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

字符串和数值是不能直接 随意赋值的


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


加好友 发短信
等级:二尾狐 帖子:562 积分:4845 威望:0 精华:0 注册:2014/4/29 14:32:00
  发帖心情 Post By:2015/4/22 15:40:00 [只看该作者]

 中间确实会转换成“”,才显示数字,用DataColChangINg 事件加上,中间为“”的时候显示0,OK了,就是这样会多计算了一次

 回到顶部