Foxtable(狐表)用户栏目专家坐堂 → 代码问题


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

主题:代码问题

美女呀,离线,留言给我吧!
mamasong
  1楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:182 积分:1168 威望:0 精华:0 注册:2012/10/26 14:22:00
代码问题  发帖心情 Post By:2012/12/19 16:55:00 [只看该作者]

我设置了两个表,销售信息表和销售汇总表

其中我想销售信息表中每次新增加一个合同时,销售汇总表都自动增加一行,然后客商名称和项目名彻骨,合同单价三列自动复制内容。我在销售信息表的

DataColChanged中设置如下代码:

Select Case e.DataCol.name
    Case "项目名称"
        Dim dr As DataRow = DataTables("销售_汇总").Find("项目名称 = '" & e.OldValue & "'")
        If dr Is Nothing Then
            dr = DataTables("销售_汇总").AddNew()
            dr("客商名称") = e.DataRow("客商名称")
            dr("项目名称") = e.DataRow("项目名称")
            dr("合同单价") = e.DataRow("合同单价")
        Else
            dr("项目名称") = e.DataRow("项目名称")
        End If

end select

新增行记录后,其他都正常,只是合同单价为什么显示为0 呢


 回到顶部
美女呀,离线,留言给我吧!
mamasong
  2楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:182 积分:1168 威望:0 精华:0 注册:2012/10/26 14:22:00
  发帖心情 Post By:2012/12/19 16:57:00 [只看该作者]

补充:是在合同信息表中新增航记录后,输入各项目内容,合同汇总表中,客商名称和项目名称都显示正常,只有合同单价不显示信息表中的数值,只显示零。不知何故?

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2012/12/19 17:08:00 [只看该作者]

看看两个表的合同弹夹的列类型是否相同,别一个整数,一个小数。

 


 回到顶部
美女呀,离线,留言给我吧!
mamasong
  4楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:182 积分:1168 威望:0 精华:0 注册:2012/10/26 14:22:00
  发帖心情 Post By:2012/12/20 8:28:00 [只看该作者]

这个问题早就察看了,都为单精度小数,数据列,列设置一样啊。。。还是找不出原因来。。。


 回到顶部
美女呀,离线,留言给我吧!
mamasong
  5楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:182 积分:1168 威望:0 精华:0 注册:2012/10/26 14:22:00
  发帖心情 Post By:2012/12/20 8:47:00 [只看该作者]

Select Case e.DataCol.name
    Case "项目名称"
        Dim dr As DataRow = DataTables("销售_汇总").Find("项目名称 = '" & e.OldValue & "'")
        If dr Is Nothing Then
            dr = DataTables("销售_汇总").AddNew()
            dr("客商名称") = e.DataRow("客商名称")
            dr("项目名称") = e.DataRow("项目名称")
            dr("合同单价") = e.DataRow("合同单价")
        Else
            dr("项目名称") = e.DataRow("项目名称")
        End If
    Case "客商名称","合同单价"
        Dim dr As DataRow = DataTables("销售_汇总").Find("项目名称 = '" & e.oldvalue & "'")
        If dr IsNot Nothing Then
            dr(e.DataCol.Name) = e.DataRow(e.DataCol.Name)
        End If
    Case "合同单价","合同数量"
        If e.DataRow.Isnull("合同单价") Or e.DataRow.Isnull("合同数量") Then
            e.DataRow("合同总额") = Nothing
        Else
            e.DataRow("合同总额") = e.DataRow("合同单价") * e.DataRow("合同数量")
        End If
End Select

这是全部的代码,有什么问题吗?


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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/12/20 8:54:00 [只看该作者]

 在datacolchanged事件里,用msgbox查看一下具体的值,你单给一段代码也看不出什么。

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


加好友 发短信
等级:幼狐 帖子:183 积分:1645 威望:0 精华:0 注册:2012/1/4 13:13:00
  发帖心情 Post By:2012/12/20 9:17:00 [只看该作者]

你好!

    我认为,你在增加新合同记录的时候,修改项目名称时,可能在汇总表中增加新记录,将单价复制到汇总表中,此时单价可能是零。当你修改单价时,并没更新单价列,只是更新了金额列。

 

供你参考。

 

下述代码中是无法更新单价列或数量列的信息

 

 Case "合同单价","合同数量"
If e.DataRow.Isnull("合同单价") Or e.DataRow.Isnull("合同数量") Then
e.DataRow("合同总额") = Nothing
Else
e.DataRow("合同总额") = e.DataRow("合同单价") * e.DataRow("合同数量")
End If


 回到顶部
美女呀,离线,留言给我吧!
mamasong
  8楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:182 积分:1168 威望:0 精华:0 注册:2012/10/26 14:22:00
  发帖心情 Post By:2012/12/20 9:33:00 [只看该作者]

恩,是这样,不是更新单价出现的问题,是新增的时候就总动在汇总表里面生成零了

 回到顶部