Foxtable(狐表)用户栏目专家坐堂 → 凭证明细,如何在:科目代码变化 后,取:一级,二级,三级科目?


  共有2226人关注过本帖树形打印复制链接

主题:凭证明细,如何在:科目代码变化 后,取:一级,二级,三级科目?

帅哥哟,离线,有人找我吗?
yancheng
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:843 积分:5982 威望:0 精华:0 注册:2013/6/29 9:36:00
凭证明细,如何在:科目代码变化 后,取:一级,二级,三级科目?  发帖心情 Post By:2017/5/31 11:17:00 [只看该作者]

在凭证明细,表datacolchanged。。。。写晕了。下面写得乱
'科目代码变化后,提取一级科目,二级科目等信息--------------------------------------------------------------------------------
If e.DataCol.Name = "科目代码" Then
    Dim dr As DataRow = e.DataRow
    Dim strs() As String={"1","2","3"}
    Dim strs1() As String={"4","6","8"}
    Dim strs2() As String={"会计科目_一级科目","会计科目_二级科目","会计科目_三级科目"}
    Dim i1 As Integer = CStr(dr("科目代码")).Length
    For i As Integer = 0 To i1/2-1
    Dim cmd As New SQLCommand
    Dim dt As DataTable
    cmd.C
    cmd.CommandText = "SE LECT * From {会计科目} Where [科目代码] = '" & CStr(dr("科目代码")).SubString(0,i1) & "'"
    dt = cmd.ExecuteReader
    If dt.DataRows.Count > 0 Then
        dr(strs1(i)) = dt.DataRows(0)("科目名称")
        'dr("银行帐号") = dt.DataRows(0)("取值列2")
        'dr("帐户类别") = dt.DataRows(0)("类别")
    Else
        dr(strs1(i) = Nothing
        'dr("银行帐号") = Nothing
        'dr("帐户类别") = Nothing
    End If
Next
End If


 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/5/31 11:23:00 [只看该作者]

 没看懂你写的代码。做个例子上来说明你的需求。

 回到顶部
帅哥哟,离线,有人找我吗?
yancheng
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:843 积分:5982 威望:0 精华:0 注册:2013/6/29 9:36:00
  发帖心情 Post By:2017/5/31 11:28:00 [只看该作者]

会计科目:
科目代码    科目名称
1                A              一级科目
10             AB                  二级科目
100            ABC                          三级科目

我在,凭证明细,表,科目代码,变化为:为:100时,我希望,凭证明细,的一级,二级,三级科目都提取出来

 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/5/31 11:44:00 [只看该作者]

加入代码 msgbox(dr("科目代码").SubString(0,i1))

 

看弹出的信息是否正确,如果正确,那就肯定能找到对应的值。


 回到顶部
帅哥哟,离线,有人找我吗?
yancheng
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:843 积分:5982 威望:0 精华:0 注册:2013/6/29 9:36:00
  发帖心情 Post By:2017/5/31 12:04:00 [只看该作者]

嗯。试了一下,这样可以:

'科目代码变化后,提取一级科目,二级科目等信息--------------------------------------------------------------------------------
If e.DataCol.Name = "科目代码" Then
    Dim dr As DataRow = e.DataRow
    Dim strs1() As String={"4","6","8"}
    Dim strs2() As String={"会计科目_一级科目","会计科目_二级科目","会计科目_三级科目"}
    Dim i1 As Integer = CStr(dr("科目代码")).Length
    For i As Integer = 0 To i1/2-2
        Dim cmd As New SQLCommand
        Dim dt As DataTable
        cmd.C
        cmd.CommandText = "SELE CT * From {会计科目} Where [科目代码] = '" & CStr(dr("科目代码")).SubString(0,strs1(i)) & "'"
        dt = cmd.ExecuteReader
        If dt.DataRows.Count > 0 Then
            dr(strs2(i)) = dt.DataRows(0)("科目名称")
        Else
            dr(strs2(i)) = Nothing
        End If
    Next
End If

 回到顶部