以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  粘贴一列多个数据的问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=160497)

--  作者:wangglby
--  发布时间:2021/2/4 16:03:00
--  粘贴一列多个数据的问题

在表的 DATACOLCHANGED 事件中加入了一些代码,这些代码 包含 currenttable.position, 都与当前行有关,当我把数据一格一格粘贴到表上时,正常,

若是同时粘贴1列中的多格数据,事件执行只按第一行的currenttable.position执行,导致后面几行的代码执行不正确,请问这个如何解决。


--  作者:有点蓝
--  发布时间:2021/2/4 16:11:00
--  
贴出完整代码说明
--  作者:wangglby
--  发布时间:2021/2/4 16:21:00
--  
If e.DataCol.Name = "物料信息_物料编码" Then  
If Tables("表A").current("物料信息_级别") = 1 Then
e.DataRow("物料信息_层级") = e.DataRow("物料信息_物料编码")
End If
End If
If e.DataCol.Name = "物料信息_物料编码" Then
If Tables("表A").current("物料信息_级别") = 2
Dim A As Integer = CurrentTable.Position
Dim t As Table = Tables("表A")
Dim C As Integer = t.Rows(A)("物料信息_级别")
Dim D As Integer = 0
Do While  C > 1
      If C = 2 Then
          D = D+1
End If
          A=A-1
          C = t.Rows(A)("物料信息_级别")
Loop
e.DataRow("物料信息_层级") = t.Rows(A)("物料信息_物料编码") & "." & D
End If
End If

 

 

表的列有     物料信息_级别,       物料信息_层级,        物料信息_物料编码

 

 

如果我把第一行,第二行,第三行的 “物料信息_级别"列数字分别输入为 1,2, 2 ,再在“物料信息_物料编码”列中粘贴3个编码,这时,“物料信息_层级“只按  If Tables("表A").current("物料信息_级别") = 1 ”执行。

 


 


--  作者:有点蓝
--  发布时间:2021/2/4 16:32:00
--  
没看懂的第二段代码要做什么,这种表事件请直接使用e.DataRow,而不是current,currenttable这种东西

If e.DataCol.Name = "物料信息_物料编码" Then
    If e.DataRow("物料信息_级别") = 1 Then
        e.DataRow("物料信息_层级") = e.DataRow("物料信息_物料编码")
    End If
End If

具体请上传实例说明

--  作者:wangglby
--  发布时间:2021/2/4 16:45:00
--  
以下是引用有点蓝在2021/2/4 16:32:00的发言:
没看懂的第二段代码要做什么,这种表事件请直接使用e.DataRow,而不是current,currenttable这种东西

If e.DataCol.Name = "物料信息_物料编码" Then
    If e.DataRow("物料信息_级别") = 1 Then
        e.DataRow("物料信息_层级") = e.DataRow("物料信息_物料编码")
    End If
End If

具体请上传实例说明

简单说下,

 

就是  物料信息_级别为 1时,执行事件代码1,物料信息_级别为2时,执行事件代码2,

 

该2个代码都与当前行有关。

 

 

但我若是同时粘贴多个数据  到物料信息_物料编码列,软件只按当前行对应的  "物料信息_级别"  上的数字执行,

 

比如如下:

物料信息_级别    物料信息_层级       物料信息_物料编码       

        1                 77125453         77125453

        2                 77125454         77125454

        2                 77125455         77125455

 

物料信息_物料编码 列的数字若是1个个粘贴或是手工输入,执行代码后结果如下,这是正确的运行结果

 

 

物料信息_级别    物料信息_层级       物料信息_物料编码        

        1                 77125453          77125453

        2                 77125453.1       77125454

        2                 77125453.2       77125455

 

 

 

 

[此贴子已经被作者于2021/2/4 16:46:59编辑过]

--  作者:有点蓝
--  发布时间:2021/2/4 17:20:00
--  
使用文字说明一下事件代码2的逻辑和计算规则