以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  代码  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=84250)

--  作者:爱相随
--  发布时间:2016/4/26 16:36:00
--  代码
老师,下面的代码是:从凭证明细表生成科目明细账,如果在科目明细表找到相同的凭证号和一级科目名称、明细科目、金方金额都有,根据新内容更新相关数据并返回不生成明细,如果没有找到,则将相关的列内容复制到科目明细。但有个问题是:橙色字体段不执行,就是有相同的行了,还是会增加相同凭证号的行,同时如果一个凭证号有几行明细,如果其中有两行的一级科目名称相同,则同一个一级科目名称的借方或贷方都只取第一个明细行的数据。比如会计凭证的明细是:
                                                                     借:主营业务成本   2500
                                                                     借:主营业务成本   2000
                                                                            贷:银行存款                4500
生成科目明细表后,主营业务成本科目明细账的两行都是2500,而不是一行是2500,另一行是2000。


If User.IsRole("财务") OrElse USER.NAME = "开发者" Then
    For Each r As Row In CurrentTable.Rows
        If r("选择") = True Then
            Dim dr1 As DataRow
            \'否则在科目明细表查找同名的凭证号和一级科目名称行,将找到的行赋值给变量dr1
            dr1 = DataTables("科目明细").Find("[凭证号]  = \'" & r("凭证号") & "\'And [一级科目名称] = \'" & r("一级科目名称") & "\'And [明细科目] = \'" & r("明细科目") & "\'And [借方金额] = \'" & r("借方金额") & "\'")
            If dr1 IsNot Nothing Then \'如果没有找到同名的凭证号和一级科目名称行,也就是dr1为Nothing
                Return \'那么返回
            Else
                Dim nma() As String = { "日期","科目编码","凭证号","一级科目名称","明细科目","借方金额","贷方金额" } \'A表数据来源列
                Dim nmb() As String = { "日期","科目编码","凭证号","一级科目名称","明细科目","借方金额","贷方金额"  } \'B表数据接收列
                Dim dr As DataRow = DataTables("科目明细").AddNew
                For i As Integer = 0 To nma.Length - 1
                    dr(nmb(i)) = r(nma(i))
                Next
                MainTable = Tables("科目明细") \'选择表B作为主表.
            End If
        End If
    Next
End If
[此贴子已经被作者于2016/4/26 16:39:09编辑过]

--  作者:大红袍
--  发布时间:2016/4/26 16:46:00
--  
 应该是 借方金额 的数据类型、保留小数位数 的设置不同造成的,你两个表这个列的设置,必须一模一样。
--  作者:爱相随
--  发布时间:2016/4/26 17:04:00
--  
以下是引用大红袍在2016/4/26 16:46:00的发言:
 应该是 借方金额 的数据类型、保留小数位数 的设置不同造成的,你两个表这个列的设置,必须一模一样。
列的类型和保留小数的位数是一样的呢
凭证号、一级科目名称、科目明细,其中有一个不同就不会出现取第一个数的情况,但实际工作中这样的
比如:同一银行账户手续费和存款利息做在一张凭证上,支付手续费:借财务费  125  贷:银行存款  125  存款利息 借:银行存款   300    贷财务费用   300 生成科目明细账后,银行存款科目就两行数据,但都只取贷方金额125,两行都是

[此贴子已经被作者于2016/4/26 17:08:34编辑过]

--  作者:大红袍
--  发布时间:2016/4/26 17:05:00
--  
 那不可能有问题,做实例测试。
--  作者:爱相随
--  发布时间:2016/4/26 17:11:00
--  
我用这个给一个幼儿园做的软件,2015年的账全是这样的,就是因为这个导致凭证明细和科目明细不等,一查原因就是这个问题
[此贴子已经被作者于2016/4/26 17:11:54编辑过]

--  作者:大红袍
--  发布时间:2016/4/26 17:13:00
--  
 做个具体例子说明问题。
--  作者:爱相随
--  发布时间:2016/4/26 17:19:00
--  
还有老师,两个表明明设置了关联,但项目打开后,两个表却不关联,如果按照设置关联表的步骤去设置一下,什么都不动,只按步骤走一遍,关联又出来了。请问老师是什么情呢,怎么解决这个问题呢/
--  作者:大红袍
--  发布时间:2016/4/26 17:20:00
--  
  一个问题,一个问题的解决啊,上传上传实例