以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助] DataRowAdding 部分复制列  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=96588)

--  作者:riverzhang163
--  发布时间:2017/2/23 18:57:00
--  [求助] DataRowAdding 部分复制列

If e.DataTable.DataRows.Count = 0 Then \'如果是一个空表
   
Return \'那么返回
End
If
Dim
ColNames As String() = {"日期","客户","雇员"} \'定义一个数组,保存复制列的名称
Dim
dr As DataRow = e.DataTable.DataRows(e.DataTable.DataRows.Count - 1) \'获得最后一行
For
Each ColName As String in ColNames
    e.
DataRow(ColName) = dr(ColName) \'将最后一行的内容复制到新增行中.

Next


假如这是一个订单明细表,希望只有订单编号相同的情况下才复制以上列,否则不复制,请问要如何写语句?


谢谢!


--  作者:有点色
--  发布时间:2017/2/23 20:26:00
--  

DataColChanging事件

 

If e.DataCol.name = "订单编号" AndAlso e.oldvalue Is Nothing Then
    Dim fdr As DataRow = e.DataTable.find("订单编号 = \'" & e.newvalue & "\'", "_Identify desc")
    Dim ColNames As String() = {"日期","客户","雇员"} \'定义一个数组,保存复制列的名称
    For Each ColName As String in ColNames
        e.DataRow(ColName) = fdr(ColName) \'将最后一行的内容复制到新增行中.
    Next
end if


--  作者:riverzhang163
--  发布时间:2017/2/23 20:49:00
--  
试了一下但是会显示:

.NET Framework 版本:2.0.50727.8745
Foxtable 版本:2016.7.29.1
错误所在事件:表,出货明细,DataColChanging
详细错误信息:
调用的目标发生了异常。
未将对象引用设置到对象的实例。

其它都OK了,请帮忙指正,谢谢!


--  作者:有点色
--  发布时间:2017/2/23 20:57:00
--  

If e.DataCol.name = "订单编号" Then
    Dim fdr As DataRow = e.DataTable.find("订单编号 = \'" & e.newvalue & "\'", "_Identify desc")
    If fdr IsNot Nothing Then
        Dim ColNames As String() = {"日期","客户","雇员"} \'定义一个数组,保存复制列的名称
        For Each ColName As String in ColNames
            e.DataRow(ColName) = fdr(ColName) \'将最后一行的内容复制到新增行中.
        Next
    end if
end if

 


--  作者:riverzhang163
--  发布时间:2017/2/23 21:04:00
--  
成功了,非常感谢!!!赞!