以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]填充  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=101265)

--  作者:苏州老街
--  发布时间:2017/5/27 13:01:00
--  [求助]填充
老师,怎样才能重置“已开票”列不再自动把数据填充到收支表中。(只填充一次)

If e.DataCol.Name = "已开票"
    If e.DataRow("已开票") = True Then
        Dim nma() As String = {"_Identify","出库单编号", "出库_税率","开票日期" ,"发票号码","出库_税金","出库_税金" } \'A表数据来源列
        Dim nmb() As String = {"ID" ,"单据编号","规格", "日期","发票号码","单价","支出" } \'B表数据接收列
        e.DataRow.save
        Dim dr As DataRow = DataTables("收支表").AddNew
        For i As Integer = 0 To nma.Length - 1
            dr(nmb(i)) = e.DataRow(nma(i))
        Next
        dr("来源") = "支出" \'入库表就改为"采购",其他表改为"其它"
        dr("单位") = "份"
        dr("数量") = "1"
        dr("客户ID") = "S001"
        dr("客户") = "园区国税"
        dr("项目名称") = "增值税"
    Else
        DataTables("收支表").deletefor("ID = \'" & e.DataRow("_Identify") & "\'")
    End If
End If

我搞了个禁止重复还是没用
If e.DataCol.Name = "发票号码" Then
    Dim dr As DataRow 
    dr = e.DataTable.Find("发票号码 = \'" & e.NewValue & "\'")
    If dr IsNot Nothing Then
        MessageBox.Show("此发票号码号已经存在!")
        e.Cancel = True
    End If
End If



--  作者:有点蓝
--  发布时间:2017/5/27 15:02:00
--  
If e.DataCol.Name = "已开票"
    If e.DataRow("已开票") = True Then
        Dim nma() As String = {"_Identify","出库单编号", "出库_税率","开票日期" ,"发票号码","出库_税金","出库_税金" } \'A表数据来源列
        Dim nmb() As String = {"ID" ,"单据编号","规格", "日期","发票号码","单价","支出" } \'B表数据接收列
        e.DataRow.save
        Dim dr As DataRow = DataTables("收支表").Find("发票号码 = \'" & e.DataRow("发票号码") & "\'")
        If dr Is Nothing Then
            Dim dr As DataRow = DataTables("收支表").AddNew
            For i As Integer = 0 To nma.Length - 1
                dr(nmb(i)) = e.DataRow(nma(i))
            Next
            dr("来源") = "支出" \'入库表就改为"采购",其他表改为"其它"
            dr("单位") = "份"
            dr("数量") = "1"
            dr("客户ID") = "S001"
            dr("客户") = "园区国税"
            dr("项目名称") = "增值税"
        End If
    Else
        DataTables("收支表").deletefor("ID = \'" & e.DataRow("_Identify") & "\'")
    End If
End If

--  作者:苏州老街
--  发布时间:2017/5/27 21:46:00
--  
 老师,下面两组代码可以合并吗?



If e.DataCol.Name = "审核"
        If e.DataRow("审核") = True Then
            Dim nma() As String = {"_Identify","出库单编号" , "出库日期","客户ID","客户","商品ID","商品名称","规格","出库_数量","出库_售价","出库_单位","出库_价税合计","出库单编号明细"} \'A表数据来源列
            Dim nmb() As String = {"ID" ,"单据编号" , "日期","客户ID","客户","商品ID","项目名称","规格","数量","单价","单位","收入","出库单编号明细" } \'B表数据接收列
            e.DataRow.save
            Dim dr1 As DataRow = DataTables("收支表").Find("出库单编号明细 = \'" & e.DataRow("出库单编号明细") & "\'")             \'找到指定返回的行
            If dr1 Is Nothing Then
                Dim dr As DataRow = DataTables("收支表").AddNew
                For i As Integer = 0 To nma.Length - 1
                    dr(nmb(i)) = e.DataRow(nma(i))
                Next
                dr("来源") = "销售" \'入库表就改为"采购",其他表改为"其它"
            End If
        Else
            DataTables("收支表").deletefor("ID = \'" & e.DataRow("_Identify") & "\'")
        End If
    End If    
    
    
   












 If e.DataCol.Name = "已开票"
        If e.DataRow("已开票") = True Then
            Dim nma() As String = {"_Identify","出库单编号", "出库_税率","开票日期" ,"发票号码","出库_税金","出库_税金" } \'A表数据来源列
            Dim nmb() As String = {"ID" ,"单据编号","规格", "日期","发票号码","单价","支出" } \'B表数据接收列
            e.DataRow.save
            Dim dr1 As DataRow = DataTables("收支表").Find("发票号码 = \'" & e.DataRow("发票号码") & "\'")             \'找到指定返回的行
            If dr1 Is Nothing Then
                Dim dr As DataRow = DataTables("收支表").AddNew
                For i As Integer = 0 To nma.Length - 1
                    dr(nmb(i)) = e.DataRow(nma(i))
                Next
                dr("来源") = "支出" \'入库表就改为"采购",其他表改为"其它"
                dr("单位") = "份"
                dr("数量") = "1"
                dr("客户ID") = "S001"
                dr("客户") = "园区国税"
                dr("项目名称") = "增值税"
            End If
        Else
            DataTables("收支表").deletefor("ID = \'" & e.DataRow("_Identify") & "\'")
        End If
    End If




老师,有点搞不清思路,"审核"列是通过按钮触发该事件"已开票"列是发票号码列触发的。如果已开是否的话不把"税金"列填充到收支表中。
[此贴子已经被作者于2017/5/27 22:30:45编辑过]

--  作者:有点色
--  发布时间:2017/5/28 10:12:00
--  

 回复3楼,没看懂你的问题。请举例说明具体问题。

 

 上传简单例子。