以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- integer内容发生变化时要执行事件出现的错误 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=67338) |
-- 作者:kao_go -- 发布时间:2015/4/22 15:15:00 -- integer内容发生变化时要执行事件出现的错误 我在窗口表中,列的类型是integer 1、选中单元格然后用键盘delete删除内容,不会触发changeEdit事件?? 2、输入数字的时候,会提示string类型“”不能传换成integer类型,然后才可以显示数字(好像,修改的时候,内容先变成了空【""】,然后才是我输入的数字) 这个要怎么处理??
|
-- 作者:Bin -- 发布时间:2015/4/22 15:19:00 -- 1.不会触发,因为还未进入编辑 2.不会出现这种情况,应该是你代码有问题,代码发出来或者上个例子看看
|
-- 作者:Bin -- 发布时间:2015/4/22 15:19:00 -- 1.用DataColChangINg 事件会触发 |
-- 作者:kao_go -- 发布时间:2015/4/22 15:24:00 -- 回复:(Bin)1.不会触发,因为还未进入编辑2.不会出现... 这是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 -- 发布时间:2015/4/22 15:25:00 -- 字符串和数值是不能直接 随意赋值的 |
-- 作者:kao_go -- 发布时间:2015/4/22 15:40:00 -- 中间确实会转换成“”,才显示数字,用DataColChangINg 事件加上,中间为“”的时候显示0,OK了,就是这样会多计算了一次 |