以文本方式查看主题

-  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=87777)

--  作者:feixianzhi
--  发布时间:2016/7/19 12:43:00
--  对账代码问题
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:对账.rar

此项目里有三个表,总账、付款和发票。要按月核对总账与付款和发票表的内容。核对关系是当月,公司编码和金额相同的行,总账与付款或发票的核对列自动选中。代码怎么写,请各位大师帮忙。总账的日期与付款或发票的日期不同,核对当月就行。


--  作者:feixianzhi
--  发布时间:2016/7/19 12:43:00
--  

图片点击可在新窗口打开查看此主题相关图片如下:总账.png
图片点击可在新窗口打开查看

--  作者:feixianzhi
--  发布时间:2016/7/19 13:17:00
--  
请各位大师帮忙,急用。
--  作者:feixianzhi
--  发布时间:2016/7/19 13:57:00
--  
请大红袍老师帮忙。
--  作者:大红袍
--  发布时间:2016/7/19 14:38:00
--  
 For Each dr As DataRow In DataTables("总账").Select("")
    Dim dt As DataTable = Nothing
    Dim je As Double =  0
    If dr.Isnull("借方") = False
        dt = DataTables("付款")
        je = dr("借方")
    ElseIf dr.IsNull("贷方") = False
        dt = DataTables("发票")
        je = dr("贷方")
    End If
    If dt IsNot Nothing Then
        Dim d As Date = dr("月份")
        d = new Date(d.Year, d.Month, 1)
        Dim fdr As DataRow = dt.Find("公司编码 = \'" & dr("公司代码") & "\' and 金额 = " & je & " And 月份 >= #" & d & "# and 月份 < #" & d.AddMonths(1) & "#")
        If fdr IsNot Nothing Then
            dr("核对") = True
            fdr("核对") = True
        End If
    End If
Next

--  作者:feixianzhi
--  发布时间:2016/7/19 14:39:00
--  
大红袍老师,是放在哪个事件里?
--  作者:feixianzhi
--  发布时间:2016/7/19 15:10:00
--  
For Each dr As DataRow In DataTables("总账").Select("")
    Dim dt As DataTable = Nothing
    Dim je As Double =  0
    If dr.Isnull("借方") = False
        dt = DataTables("付款")
        je = dr("借方")
    ElseIf dr.IsNull("贷方") = False
        dt = DataTables("发票")
        je = dr("贷方")
    End If
    If dt IsNot Nothing Then
        Dim d As Date = dr("月份")
        d = new Date(d.Year, d.Month, 1)
        Dim fdr As DataRow = dt.Find("公司编码 = \'" & dr("公司代码") & "\' and 金额 = " & je & " And 月份 >= #" & d & "# and 月份 < #" & d.AddMonths(1) & "#")
        If fdr IsNot Nothing Then
            dr("核对") = True
            fdr("核对") = True
        Else
            dr("核对") = False
            fdr("核对") = False
        End If
    End If


我改了一下,如果对不上,则核对由选中变为未选中,但代码不知哪出错了,请大红袍老师指教。

--  作者:大红袍
--  发布时间:2016/7/19 15:13:00
--  

单独做一个按钮

 

For Each dr As DataRow In DataTables("总账").Select("")
    Dim dt As DataTable = Nothing
    Dim je As Double =  0
    If dr.Isnull("借方") = False
        dt = DataTables("付款")
        je = dr("借方")
    ElseIf dr.IsNull("贷方") = False
        dt = DataTables("发票")
        je = dr("贷方")
    End If
    If dt IsNot Nothing Then
        Dim d As Date = dr("月份")
        d = new Date(d.Year, d.Month, 1)
        Dim fdr As DataRow = dt.Find("公司编码 = \'" & dr("公司代码") & "\' and 金额 = " & je & " And 月份 >= #" & d & "# and 月份 < #" & d.AddMonths(1) & "#")
        If fdr IsNot Nothing Then
            dr("核对") = True
            fdr("核对") = True
        Else
            dr("核对") = False
        End If
    Else
        dr("核对") = False 
    End If
Next


--  作者:feixianzhi
--  发布时间:2016/7/19 16:58:00
--  
感谢大红袍老师。
--  作者:feixianzhi
--  发布时间:2016/7/20 15:20:00
--  
大红袍老师,麻烦问一下,我的这个表有10000行,结果运行这个代码核对,不是死机,就是闪退。怎样解决呀。