以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]计件工资录入  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=13237)

--  作者:zhangqinyun
--  发布时间:2011/10/4 16:43:00
--  [求助]计件工资录入

由于一个人要做几个工序,所以我要设计以下功能

 

如: 姓名    工序               数量

       张三    R1,R2,R3

输入工序后自动变成:

       姓名    工序               数量

      张三    R1        

      张三    R2    

      张三    R3

 

所以,我在ValidateEdit里加了以下代码

 

If e.Col.Name = "工序" Then
    If e.Text.Contains(",") Then
        Dim Values() As String
        Values = e.Text.split(",")
        e.Text = Values(0)
        Dim cr As Row = e.Row
        Dim Ar As Row
        For Index As Integer = 1 To Values.Length - 1
            Ar = Tables("计件表").InsertNew
            Ar("日期") = cr("日期")
            Ar("令号") = cr("令号")
            Ar("部门") = cr("部门")
            Ar("姓名") = cr("姓名")
            Ar("工种") = cr("工种")
            Ar("工序") = Values(Index)
        Next
    End If
End If

 

 

 

但是运行就自动跳出了。。。。我试了下把Tables("计件表").InsertNew改为DataTables("计件表").AddNew可以,但是那个加行加在最后面。。

谁帮我改改代码啊


--  作者:zhangqinyun
--  发布时间:2011/10/4 17:06:00
--  
谁帮帮我啊,我想了半天都没想出来哪里错了,,
--  作者:yangming
--  发布时间:2011/10/4 18:08:00
--  

发狐表文件上来看看吧,也可以另加一列排序列,通过排序来达到插入行的效果

[此贴子已经被作者于2011-10-4 18:10:17编辑过]

--  作者:zhangqinyun
--  发布时间:2011/10/5 11:56:00
--  

我试了,上面的代码是死循环,但我想不明白怎么就死循环le。。


--  作者:kylin
--  发布时间:2011/10/5 11:58:00
--  
你把例子上传来,大家一起看看才可以诊断,光凭几个数据确实很难细致帮助你的。
--  作者:lruiqiu
--  发布时间:2011/10/5 12:18:00
--  

 For Index As Integer = 1 To Values.Length - 1
            Ar = Tables("计件表").InsertNew
            Ar("日期") = cr("日期")
            Ar("令号") = cr("令号")
            Ar("部门") = cr("部门")
            Ar("姓名") = cr("姓名")
            Ar("工种") = cr("工种")
            Ar("工序") = Values(Index)
Next

这段就是一个死循环啊,每插入一行,Values.Length - 1的值也会增加啊


--  作者:zhangqinyun
--  发布时间:2011/10/5 13:46:00
--  

我搞明白了,,楼上的说错了,上面的不是死循环

下面的是死循环了

If e.Col.Name = "工序" Then
    If e.Text.Contains(",") Then
        Dim Values() As String
        Values = e.Text.split(",")
        e.Text = Values(0)
        Dim cr As Row = e.Row
        Dim Ar As Row
        For Index As Integer = 1 To Values.Length - 1

因为

Ar = Tables("计件表").InsertNew
插入行会改变Current,离开编辑单元格,但是ValidateEdit里的代码还没完成,,