Foxtable(狐表)用户栏目专家坐堂 → 关于代码联动的问题?


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

主题:关于代码联动的问题?

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


加好友 发短信
等级:管理员 帖子:47477 积分:251256 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2016/10/5 7:09:00 [显示全部帖子]

ExecuteReader生成的是一个临时表,你并没有为这个表设置事件,也木有办法设置事件,所以你只能手工编码计算:


Sel ect Case e.DataCol.name
    Case "入库单价"
        Dim dr As DataRow = e.DataRow
        Dim cmd As New SQLCommand
        Dim dt As DataTable
        cmd.C
        cmd.CommandText = "SEL ECT * F rom {材料} Where [定额编码] = '" & dr("定额编码") & "'"
        dt = cmd.ExecuteReader(True)
        If dt.DataRows.Count > 0 Then
            Dim dr1 AS DataRow = dt.DataRows(0)
            dr1("成本价") = dr("入库单价")
            if dr1.isnull("运杂费") then
                 dr1("材料原价")=(dr1("成本价")*dr1("主材损耗率") * ( 1+dr1("利润率")+dr1("挂靠管理费率")))*(1+dr1("增值税率"))
            Else
                 dr1("材料原价")=((dr1("运杂费")+dr1("成本价")*dr1("主材损耗率") )* ( 1+dr1("利润率")+dr1("挂靠管理费率")))*(1+dr1("增值税率"))
            End if
            dt.Save()
        End If
[此贴子已经被作者于2016/10/5 7:14:41编辑过]

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


加好友 发短信
等级:管理员 帖子:47477 积分:251256 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2016/10/5 21:47:00 [显示全部帖子]

代码无所谓繁琐,能高效执行就行。
如果材料表只是2万行,何不全部加载?
全部加载的话,就可以常规编码了:
http://www.foxtable.com/webhelp/scr/1451.htm


 回到顶部