以文本方式查看主题

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

--  作者:江南小镇
--  发布时间:2020/10/19 16:25:00
--  [求助]复制分流
老师好,这个代码怎样终止。


If e.DataCol.Name = "收/支"
    If e.DataRow("收/支") = "支出" Then
        \'===========================================================================================
        \'If e.DataCol.Name = "审核"
        \' If e.DataRow("审核") = True Then
        Dim nma() As String = {"交易时间","交易类型","交易对方","商品","收/支","金额(元)","支付方式","当前状态","交易单号","商户单号","备注" } \'A表数据来源列
        Dim nmb() As String = {"交易时间","交易类型","交易对方","商品","收/支","金额(元)","支付方式","当前状态","交易单号","商户单号","备注" } \'B表数据接收列
        e.DataRow.save
        Dim dr2 As DataRow = DataTables("支出账单").Find("编号  = \'" & e.DataRow("编号") & "\'")             \'找到指定返回的行
        If dr2 Is Nothing Then
            Dim dr3 As DataRow = DataTables("支出账单").AddNew
            For i As Integer = 0 To nma.Length - 1
                dr3(nmb(i)) = e.DataRow(nma(i))
            Next
            \' dr3("来源") = "采购" \'入库表就改为"采购",其他表改为"其它"
            \'End If
        Else
            DataTables("支出账单").deletefor("编号 = \'" & e.DataRow("编号") & "\'")
            \'End If
        End If
        \' 对支出表的操作
    ElseIf e.DataRow("收/支") = "收入" Then
        Dim nma() As String = {"交易时间","交易类型","交易对方","商品","收/支","金额(元)","支付方式","当前状态","交易单号","商户单号","备注" } \'A表数据来源列
        Dim nmb() As String = {"交易时间","交易类型","交易对方","商品","收/支","金额(元)","支付方式","当前状态","交易单号","商户单号","备注" } \'B表数据接收列
        e.DataRow.save
        Dim dr2 As DataRow = DataTables("收入账单").Find("编号  = \'" & e.DataRow("编号") & "\'")             \'找到指定返回的行
        If dr2 Is Nothing Then
            Dim dr3 As DataRow = DataTables("收入账单").AddNew
            For i As Integer = 0 To nma.Length - 1
                dr3(nmb(i)) = e.DataRow(nma(i))
            Next
            \' dr3("来源") = "采购" \'入库表就改为"采购",其他表改为"其它"
            \'End If
        Else
            DataTables("收入账单").deletefor("编号 = \'" & e.DataRow("编号") & "\'")
            \'End If
        End If
        \' 对收入表的操作
    Else
        \' 输入其它值的操作
    End If
End If

--  作者:有点酸
--  发布时间:2020/10/19 16:41:00
--  
这个代码的任务是? 说着说设计逻辑是?
--  作者:江南小镇
--  发布时间:2020/10/20 1:21:00
--  
老师, 
1、重置“微信收入支付总账单"表的"收/支”列总是重复复制数据。
2、"微信收入支付总账单"表的"金额(元)"列的数据不自动复制到”微信支出账单、微信收入账单”金额(元)列中。

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:复制1.table
 
--  作者:有点蓝
--  发布时间:2020/10/20 8:35:00
--  
都说了不要使用_Identify 做业务关联。再说2个表的_Identify 完全没有任何关系的,用来查找数据是永远都找不到正确的数据的。
--  作者:江南小镇
--  发布时间:2020/10/20 11:29:00
--  
老师,我用入账编号做关现在重置列变成删除了。


If e.DataCol.Name = "收/支"
    If e.DataRow("收/支") = "支出" Then        
        Dim nma() As String = {"入帐编号","交易时间","交易类型","交易对方","商品","收/支","金额(元)","支付方式","当前状态","交易单号","商户单号","备注" } \'A表数据来源列
        Dim nmb() As String = {"入帐编号","交易时间","交易类型","交易对方","商品","收/支","金额(元)","支付方式","当前状态","交易单号","商户单号","备注" } \'B表数据接收列
        e.DataRow.save
        Dim dr2 As DataRow = DataTables("微信支出账单").Find("入帐编号  = \'" & e.DataRow("入帐编号") & "\'")             \'找到指定返回的行
        If dr2 Is Nothing Then
            Dim dr3 As DataRow = DataTables("微信支出账单").AddNew
            For i As Integer = 0 To nma.Length - 1
                dr3(nmb(i)) = e.DataRow(nma(i))
            Next            
        Else
            DataTables("微信支出账单").deletefor("入帐编号 = \'" & e.DataRow("入帐编号") & "\'")            
        End If        
    ElseIf e.DataRow("收/支") = "收入" Then
        Dim nma() As String = {"入帐编号","交易时间","交易类型","交易对方","商品","收/支","金额(元)","支付方式","当前状态","交易单号","商户单号","备注" } \'A表数据来源列
        Dim nmb() As String = {"入帐编号","交易时间","交易类型","交易对方","商品","收/支","金额(元)","支付方式","当前状态","交易单号","商户单号","备注" } \'B表数据接收列
        e.DataRow.save
        Dim dr2 As DataRow = DataTables("微信收入账单").Find("入帐编号  = \'" & e.DataRow("入帐编号") & "\'")             \'找到指定返回的行
        If dr2 Is Nothing Then
            Dim dr3 As DataRow = DataTables("微信收入账单").AddNew
            For i As Integer = 0 To nma.Length - 1
                dr3(nmb(i)) = e.DataRow(nma(i))
            Next            
        Else
            DataTables("微信收入账单").deletefor("入帐编号 = \'" & e.DataRow("入帐编号") & "\'")
        End If
    Else
    End If
End If

--  作者:有点蓝
--  发布时间:2020/10/20 11:34:00
--  
您自己的代码逻辑本来就是这样的

       If dr2 Is Nothing Then 没有找到就新增
            Dim dr3 As DataRow = DataTables("微信支出账单").AddNew
            For i As Integer = 0 To nma.Length - 1
                dr3(nmb(i)) = e.DataRow(nma(i))
            Next            
        Else 找到就删除
            DataTables("微信支出账单").deletefor("入帐编号 = \'" & e.DataRow("入帐编号") & "\'")            
        End If 

--  作者:江南小镇
--  发布时间:2020/10/20 12:05:00
--  
老师,我急用谢谢老师帮我修改一下吧。谢谢了。



--  作者:有点蓝
--  发布时间:2020/10/20 13:32:00
--  
改什么?如果不想删除就去掉删除的代码不就行了
--  作者:江南小镇
--  发布时间:2020/10/20 17:01:00
--  
老师,复制后怎样终止代码。现在重置收/支列总是重复复制行。

If e.DataCol.Name = "收/支"
    If e.DataRow("收/支") = "支出" Then        
        Dim nma() As String = {"入帐编号","交易时间","交易类型","交易对方","商品","收/支","金额(元)","支付方式","当前状态","交易单号","商户单号","备注" } \'A表数据来源列
        Dim nmb() As String = {"入帐编号","交易时间","交易类型","交易对方","商品","收/支","金额(元)","支付方式","当前状态","交易单号","商户单号","备注" } \'B表数据接收列
        e.DataRow.save
        Dim dr2 As DataRow = DataTables("微信支出账单").Find("入帐编号  = \'" & e.DataRow("入帐编号") & "\'")             \'找到指定返回的行
        Dim ddd As Row = Tables("微信支出账单").AddNew
        For i As Integer = 0 To nma.Length - 1
            ddd(nmb(i)) = e.DataRow(nma(i))
        Next

--  作者:有点蓝
--  发布时间:2020/10/20 17:07:00
--  
去掉删除的代码就可以了,判断的代码没有必要去掉啊。
If dr2 Is Nothing Then 没有找到就新增
            Dim dr3 As DataRow = DataTables("微信支出账单").AddNew
            For i As Integer = 0 To nma.Length - 1
                dr3(nmb(i)) = e.DataRow(nma(i))
            Next                   
        End If