以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]会计科目自动定义问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=64112)

--  作者:blsu33
--  发布时间:2015/2/5 10:41:00
--  [求助]会计科目自动定义问题
老师,
   1、科目类别档案已经定义好了 1 资产 2负债 3所有者权益 ...
   2、在会计科目档案中有一列“科目类别”需要自动判定 1开头的为资产 2开头为负债


会计科目档案的datacol changing代码怎么写呢?
 Dim rts As new List(of String)
        rts = DataTables("科目类别").GetValues("编码名称","","编码规则 ")
If e.DataCol.Name = "科目类别" Then
    Dim dc As DataCol
    dc("科目类别") = SubString(dc("编码规则"),1,1)
if........
End If

还是
Dim lbbm As String  = DataTables("科目类别").GetComboListString("编码规则")
If e.DataCol.Name = "科目类别" Then
    Dim dr As DataRow
   dr("科目类别") = SubString(DataTables("会计科目").dr("编码规则"),1,1)    
If .......
End If

--  作者:Bin
--  发布时间:2015/2/5 10:49:00
--  
没看懂

1开头自动为 科目类别赋值 资产?



--  作者:blsu33
--  发布时间:2015/2/5 11:03:00
--  
举例 
存在两个表
1、会计科目档案里 1002 代表银行存款科目  表中还有一列 科目类别 需要自动根据 1001 的第一位1 去另外一个档案 “科目类别” 中去找 1 代表什么 

在科目类别档案中 事先定义了 1 资产 2负债 ....

--  作者:有点甜
--  发布时间:2015/2/5 11:41:00
--  

  直接取当前行的编号列的第一位,然后去查类别档案表,得到值后赋值进去即可啊。

[此贴子已经被作者于2015-2-5 11:42:20编辑过]

--  作者:有点甜
--  发布时间:2015/2/5 11:43:00
--  

http://www.foxtable.com/help/topics/0396.htm

 


--  作者:blsu33
--  发布时间:2015/2/5 16:03:00
--  
老师,
   麻烦您给改改啊,完全迷糊了

Select Case e.DataCol.Name
    Case "科目类别"
        Dim dc As DataTables("会计科目").DataCols
        Dim dr As DataTables("会计科目").DataRows
        dc("科目类别")=SubString(dc("编码规则"),1,1)
        dr = DataTables("科目类别").Find("编码规则= \'" & SubString(dr3("编码规则"),1,1) & "\'")
        If dr Is Nothing Then
            MessageBox.Show("不存在相应类别,请添加类别!")
            e.Cancel = True
        Else
            
        End If
End Select

--  作者:有点甜
--  发布时间:2015/2/5 16:08:00
--  
Select Case e.DataCol.Name
    Case "科目类别"
        Dim dr As DataRow = DataTables("科目类别").Find("编码规则= \'" & e.DataRow("编码规则").SubString(0,1) & "\'")
        If dr Is Nothing Then
            MessageBox.Show("不存在相应类别,请添加类别!")
            e.Cancel = True
        Else
           
        End If
End Select

--  作者:blsu33
--  发布时间:2015/2/5 16:17:00
--  
Select Case e.DataCol.Name
    Case "科目类别"
        Dim dr As DataRow = DataTables("科目类别").Find("编码规则= \'" & e.DataRow("编码规则").SubString(0,1) & "\'")
        If dr Is Nothing Then
            MessageBox.Show("不存在相应类别,请添加类别!")
            e.Cancel = True
        Else
            e.DataRow("编码规则")=dr("编码名称")   有点甜老师,这块是否对呢,未出现提示和错误。
        End If
End Select
[此贴子已经被作者于2015-2-5 16:20:13编辑过]

--  作者:有点甜
--  发布时间:2015/2/5 16:44:00
--  
e.DataRow("科目类别") = dr("编码名称")
--  作者:blsu33
--  发布时间:2015/2/5 16:59:00
--  
有点甜老师,
昨天回家测试,发现代码未执行,这里的字段类型都是字符型
Select Case e.DataCol.Name
    Case "编码规则"
        Dim dr As DataRow = DataTables("科目类别").Find("编码规则= \'" & e.DataRow("编码规则").SubString(0,1) & "\'")  ...两个字符的判断怎么写 是LIKE吗,用了也不行
        If dr Is Nothing Then
            MessageBox.Show("不存在相应类别,请添加类别!")
            e.Cancel = True
        Else
            e.DataRow("科目类别")=dr("编码名称")   
        End If
End Select

[此贴子已经被作者于2015-2-6 11:45:28编辑过]