以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  会计科目的运用  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=64832)

--  作者:zhangxl1964
--  发布时间:2015/3/3 9:41:00
--  会计科目的运用
老师:你好!

     怎样将会计科目自动输入到凭证明细的一级科目及明细科目中?

--  作者:Bin
--  发布时间:2015/3/3 9:42:00
--  
http://www.foxtable.com/help/topics/1451.htm
--  作者:zhangxl1964
--  发布时间:2015/3/3 9:50:00
--  
我的意思是:在凭证中一次输入明细的会计代码,就在凭证中自动的分别输入会计一级科目和明细科目?
                 如何通过科目代码的输入从科目名称中找出一级科目和明细科目然后自动输入到凭证的一级科目和明细科目列中。
                求帮助!

--  作者:Bin
--  发布时间:2015/3/3 9:52:00
--  
参考这里和2楼  http://www.foxtable.com/help/topics/1458.htm

搞不定就上例子.

--  作者:zhangxl1964
--  发布时间:2015/3/3 10:10:00
--  
要求在入库明细中输入存货编码后自动输入存货大类(二位数的存货名称)、存货二类(四位数的存货名称)、存货三类、存货名称、存货规格、存货单位
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:递归加载树.table


--  作者:Bin
--  发布时间:2015/3/3 10:11:00
--  
你根本就没看,直接复制4楼的代码就可以用
--  作者:zhangxl1964
--  发布时间:2015/3/3 10:16:00
--  
4楼的没错,但请看看我上传的示例,稍有不同,存货名称是一列,在存货明细中要对应多列。
--  作者:Bin
--  发布时间:2015/3/3 10:17:00
--  
你到底有没看,完全一致的.
--  作者:有点甜
--  发布时间:2015/3/3 10:20:00
--  
If e.DataCol.Name = "存货编码" AndAlso e.NewValue <> Nothing AndAlso e.NewValue.Length = 8 Then
    Dim cmd As New SQLCommand
    Dim dt As DataTable
    Dim dr As DataRow = e.DataRow

    cmd.CommandText = "SELECT * F rom {存货BOM} Where [存货编码] = \'" & dr("存货编码") & "\'"
    dt = cmd.ExecuteReader
    If dt.DataRows.Count > 0 Then
        dr("存货编码") = dt.DataRows(0)("存货编码")
        dr("存货名称") = dt.DataRows(0)("存货名称")
        dr("存货规格") = dt.DataRows(0)("存货规格")
        dr("存货单位") = dt.DataRows(0)("存货单位")
        cmd.CommandText = "SELECT * F rom {存货BOM} Where [存货编码] = \'" & e.NewValue.Substring(0,2) & "\'"
        dt = cmd.ExecuteReader
        If dt.DataRows.Count > 0 Then
            dr("存货大类") = dt.DataRows(0)("存货名称")
        End If
        cmd.CommandText = "SELECT * F rom {存货BOM} Where [存货编码] = \'" & e.NewValue.Substring(2,4) & "\'"
        dt = cmd.ExecuteReader
        If dt.DataRows.Count > 0 Then
            dr("存货二类") = dt.DataRows(0)("存货名称")
        End If
        cmd.CommandText = "SELECT * F rom {存货BOM} Where [存货编码] = \'" & e.NewValue.Substring(6,2) & "\'"
        dt = cmd.ExecuteReader
        If dt.DataRows.Count > 0 Then
            dr("存货三类") = dt.DataRows(0)("存货名称")
        End If
    Else
        dr("存货名称") = Nothing
        dr("存货规格") = Nothing
        dr("存货单位") = Nothing
        \'dr("存货大类") = Nothing
        \'dr("存货二类") = Nothing
        \'dr("存货三类") = Nothing
    End If
End If

--  作者:zhangxl1964
--  发布时间:2015/3/3 10:34:00
--  
真不好意思,真的不一致,应为存货BOM表中没有存货大类、存货二类和存货三类的列,而入库明细中有这三列,这三列需从存货BOM表的存货名称中根据存货代码的位数长度来甄别后分别输入存货明细这不同的三列中。我所求助的是如何通过代码的长度来选择后自动输入存货明细的三列内容。

谢谢!