以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]录入窗口部分代码问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=71706)

--  作者:blsu33
--  发布时间:2015/7/16 14:51:00
--  [求助]录入窗口部分代码问题
老师,
   录入窗口的保存按钮有问题,麻烦您给看下哪里不对

位置 点击“增加”按钮 然后进入“JOBCARD编辑窗口”

保存按钮的代码这部分 在对应为空的时候 没有执行,请老师给看下
If Tables("ar_table5").Current IsNot Nothing Then
    For Each st As String In sts2
        If Tables("ar_table5").Current.isnull(st) = True Then
            MessageBox.Show("Pre show<- "& ST &" ->列未填写完整,不能保存!","提醒")
            Return
        




[此贴子已经被作者于2015/7/16 16:33:28编辑过]

--  作者:大红袍
--  发布时间:2015/7/16 15:07:00
--  
 有什么问题?只要填入了内容,就没问题啊。
--  作者:blsu33
--  发布时间:2015/7/16 15:09:00
--  
哦  没填 就可以保存 
--  作者:大红袍
--  发布时间:2015/7/16 15:10:00
--  

 

[此贴子已经被作者于2015/7/16 15:10:21编辑过]

--  作者:大红袍
--  发布时间:2015/7/16 15:14:00
--  

If Tables("ar_table5").Current IsNot Nothing Then
    For Each st As String In sts2
        If Tables("ar_table5").Current.isnull(st) = True Then
            MessageBox.Show("Pre show<- "& ST &" ->列未填写完整,不能保存!","提醒")
            Return
        End If
    Next
    Tables("ar_table5").Current("录入人")=_username
    Tables("ar_table5").Current.save
    Dim Result As DialogResult
    For Each st3 As String In sts3
        If Tables("ar_table5").Current.isnull(st3) = True Then
            Result=MessageBox.Show("Post show填写不完整,不能保存Post show,是否返回!","提醒",MessageBoxButtons.YesNo)
            If Result=DialogResult.Yes Then
                Return
            Else
                Exit For
            End If
        End If
    Next
    Tables("ar_table5").Current("录入人")=_username
    
    Tables("ar_table5").Current.Locked=True
    Tables("ar_table5").Current.save


    Dim bt1 As WinForm.Button = e.Form.Controls("Button1")
    Dim bt2 As WinForm.Button = e.Form.Controls("Button2")
    bt1.Enabled=True
    bt2.Enabled=True
End If


--  作者:blsu33
--  发布时间:2015/7/16 15:59:00
--  
老师,
  在录入 旧项目号:
AAAER14001-001   我是粘贴进去的
为什么速度特变慢,第一遍没有执行 第二遍才执行 AR窗口的 Table5 Datacolchanged 的代码下面黄色标注的

Select e.DataCol.Name
    Case "旧项目号"
        
        
        Dim dt,dt1,dt2 As DataTable
        Dim cmd,cmd1,cmd2 As New SQLCommand
        cmd.C
        cmd1.C
        cmd2.C
        cmd.CommandText = "SELECT * Fr om {ERPcode} where 1=2"
        cmd1.CommandText = "SELECT * Fr om {组别转换} where 1=2"
        cmd2.CommandText = "SELECT * Fr om {Showcode转换} where 1=2"
        dt = cmd2.ExecuteReader()
        dt1 = cmd1.ExecuteReader()
        dt2 = cmd.ExecuteReader()
        
        If e.NewValue IsNot Nothing AndAlso e.NewValue.Length >2 Then
            Dim dr,dr1,dr3 As DataRow
            dr = dt.sqlFind("旧项目号= \'"& e.NewValue &"\'")
            If dr IsNot Nothing Then
                e.DataRow("项目号") =dr("项目号")
                e.DataRow("ShowName")=dr("ProjectName")
                e.DataRow("组别")=e.DataRow("项目号").SubString(0,2)
                dr1 = dt1.sqlFind("原组别=\'"& e.DataRow("组别") &"\'")
                If dr1 IsNot Nothing Then
                    e.DataRow("组别")=""
                    e.DataRow("组别")=dr1("组别")
                End If
            Else
                dr3=dt2.sqlFind("Project= \'" & e.DataRow("项目号") &"\'")
                If dr3 IsNot Nothing Then
                    e.DataRow("项目号")=dr3("Project")
                    e.DataRow("组别") =e.DataRow("项目号").SubString(0,2)
                    e.DataRow("pic")=dr3("PIC name")
                    e.DataRow("ShowName")=dr3("Name")
                Else
                    e.DataRow("项目号")=e.DataRow("旧项目号")
                    e.DataRow("组别") =e.DataRow("项目号").SubString(0,2)
                End If
            End If
        End If
        



--  作者:大红袍
--  发布时间:2015/7/16 16:09:00
--  

尽量不要在输入的时候查询,因为每查一次,都耗时。

 

 TextChanged事件代码

 

If e.Sender.Text IsNot Nothing Then
    e.sender.Text =e.Sender.Text.ToUpper
End If

 

 Leave事件代码

 

Tables("ar_table5").Current("旧项目号") =e.Sender.Text.ToUpper


--  作者:blsu33
--  发布时间:2015/7/16 16:31:00
--  
老师,
  黄色部分的代码 测试了 不知道哪里有问题 不执行 麻烦您再给看看 

--  作者:大红袍
--  发布时间:2015/7/16 16:34:00
--  

 你确定这个时候你的 项目号 有值吗?你加入msgbox调试一下

 

dr3=dt2.sqlFind("Project= \'" & e.DataRow("项目号") &"\'")