Foxtable(狐表)用户栏目专家坐堂 → [求助]会计科目自动定义问题


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

主题:[求助]会计科目自动定义问题

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


加好友 发短信
等级:九尾狐 帖子:2928 积分:20184 威望:0 精华:0 注册:2012/2/3 17:45:00
[求助]会计科目自动定义问题  发帖心情 Post By: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

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


加好友 发短信
等级:九尾狐 帖子:2928 积分:20184 威望:0 精华:0 注册:2012/2/3 17:45:00
  发帖心情 Post By:2015/2/5 11:03:00 [显示全部帖子]

举例 
存在两个表
1、会计科目档案里 1002 代表银行存款科目  表中还有一列 科目类别 需要自动根据 1001 的第一位1 去另外一个档案 “科目类别” 中去找 1 代表什么 

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

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


加好友 发短信
等级:九尾狐 帖子:2928 积分:20184 威望:0 精华:0 注册:2012/2/3 17:45:00
  发帖心情 Post By: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

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


加好友 发短信
等级:九尾狐 帖子:2928 积分:20184 威望:0 精华:0 注册:2012/2/3 17:45:00
  发帖心情 Post By: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编辑过]

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


加好友 发短信
等级:九尾狐 帖子:2928 积分:20184 威望:0 精华:0 注册:2012/2/3 17:45:00
  发帖心情 Post By: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编辑过]

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


加好友 发短信
等级:九尾狐 帖子:2928 积分:20184 威望:0 精华:0 注册:2012/2/3 17:45:00
  发帖心情 Post By:2015/2/6 13:04:00 [显示全部帖子]

.NET Framework 版本:2.0.50727.3053
Foxtable 版本:2014.11.11.1
错误所在事件:表,会计科目,DataColChanging
详细错误信息:
Exception has been thrown by the target of an invocation.
Index and length must refer to a location within the string.
Parameter name: length


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


加好友 发短信
等级:九尾狐 帖子:2928 积分:20184 威望:0 精华:0 注册:2012/2/3 17:45:00
  发帖心情 Post By:2015/2/6 14:53:00 [显示全部帖子]

有点甜老师,

麻烦您了。

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:科目类别.foxdb

 


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


加好友 发短信
等级:九尾狐 帖子:2928 积分:20184 威望:0 精华:0 注册:2012/2/3 17:45:00
  发帖心情 Post By:2015/2/6 15:44:00 [显示全部帖子]

谢谢您,有点甜老师,我干会计干了10多年了,大学学过FOXPRO,但是底子差,让您费心了。

 

继续上这个破班还是辞职专门去做软件,面对自己编程底子薄我心里没底;

帮助看了又看,几遍了,代码差一点也不行,心理还是没底;

下班回家还要看两个孩子都快10点了,软件理想是否还要继续,心理没底;

天天熬到半夜12点,还是没搞懂那几句代码,心理没底;

 

但是,有点甜老师您在,我心里有底!

 


 回到顶部