Foxtable(狐表)用户栏目专家坐堂 → [求助]帮忙分析一下代码,谢谢!


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

主题:[求助]帮忙分析一下代码,谢谢!

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


加好友 发短信
等级:二尾狐 帖子:581 积分:4989 威望:0 精华:0 注册:2014/6/12 14:55:00
[求助]帮忙分析一下代码,谢谢!  发帖心情 Post By:2015/3/4 18:28:00 [只看该作者]

If e.DataCol.name = "每箱净重" Then
    Dim dr As DataRow = e.DataRow
    If dr("计价") = 1 AndAlso dr("等级") = "一等品" Then
        Dim dr1 As DataRow = DataTables("订单明细表").SQLfind("客户订单号 = '" & e.DataRow("客户订单号") & "'and 客户代号 = '"&  e.DataRow("客户代号") & "'and 规格 = '"& e.datarow("产品规格") & "'and 厂商代号 = '" & e.DataRow("厂商代号") & "' and 作废 = 0")
        If dr1 IsNot Nothing Then
            dr("单价") = dr1("单价")
        End If
    End If
    If dr("计价") = 1 AndAlso dr("等级") <> "一等品"Then
        Dim dr2 As DataRow = DataTables("销售价格表").SQLfind("客户代号 = '" & e.DataRow("客户代号") & "'and 物料类型 = '" & e.DataRow("物料类型") & "' and 规格 = '"& e.datarow("产品规格") & "'and 型号 = '"& e.datarow("产品型号") & "'and 基材来源 = '" & e.DataRow("基材来源") & "' and 厂商代号 = '" & e.DataRow("厂商代号") & "'and 物料等级 = '二等品'")
        If dr2 IsNot Nothing Then
            dr("单价") = dr2("单价")
        End If
    End If
    If dr("计价") = 0 Then
        dr("单价") = 0
    End If
End If

以上代码用来生成单价,想实现以下功能:
1.当“计价”列为true时,“等级”列为一等品时,从“订单明细表”中提取单价;
2.当“计价”列为true时,“等级”列不等于一等品时,从“销售价格表”中提取单价;
2.当“计价”列为true时,单价为0;
在运行以上代码时,提示错误:“未将对象引用设置到对象的实例。”,请问是何原因?

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


加好友 发短信
等级:四尾狐 帖子:953 积分:7252 威望:0 精华:0 注册:2011/9/6 13:36:00
  发帖心情 Post By:2015/3/4 18:52:00 [只看该作者]

If e.DataCol.name = "每箱净重" Then
    Dim dr As DataRow = e.DataRow
    If dr("计价") = true 
If dr("等级") = "一等品" Then
           Dim dr1 As DataRow = DataTables("订单明细表").SQLfind("客户订单号 = '" & e.DataRow("客户订单号") & "'and 客户代号 = '"&  e.DataRow("客户代号") & "'and 规格 = '"& e.datarow("产品规格") & "'and 厂商代号 = '" & e.DataRow("厂商代号") & "' and 作废 = 0")
          If dr1 IsNot Nothing Then
                dr("单价") = dr1("单价")
            End If
        Else
            Dim dr2 As DataRow = DataTables("销售价格表").SQLfind("客户代号 = '" & e.DataRow("客户代号") & "'and 物料类型 = '" & e.DataRow("物料类型") & "' and 规格 = '"& e.datarow("产品规格") & "'and 型号 = '"& e.datarow("产品型号") & "'and 基材来源 = '" & e.DataRow("基材来源") & "' and 厂商代号 = '" & e.DataRow("厂商代号") & "'and 物料等级 = '二等品'")
            If dr2 IsNot Nothing Then
                dr("单价") = dr2("单价")
            End If
End If
    Else
        dr("单价") = 0
    End If
End If

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2015/3/4 19:11:00 [只看该作者]

 你的代码不会报这个错,肯定是别的代码影响了。

 

 具体可以上传例子测试。


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


加好友 发短信
等级:二尾狐 帖子:581 积分:4989 威望:0 精华:0 注册:2014/6/12 14:55:00
  发帖心情 Post By:2015/3/5 17:24:00 [只看该作者]

现在不出现提示,但也无法出现单价。烦请指导,谢谢!
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.foxdb




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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2015/3/5 17:30:00 [只看该作者]

If e.DataCol.name = "每箱净重" Then
    Dim dr As DataRow = e.DataRow
    If dr("计价") = True AndAlso dr("等级") = "一等品" Then
        Dim dr1 As DataRow = DataTables("订单明细表").SQLfind("客户订单号 = '" & e.DataRow("客户订单号") & "'and 客户代号 = '"&  e.DataRow("客户代号") & "'and 规格 = '"& e.datarow("产品规格") & "'and 厂商代号 = '" & e.DataRow("厂商代号") & "' and 作废 = 0")
        If dr1 IsNot Nothing Then
            dr("单价") = dr1("单价")
        End If
    End If
    If dr("计价") = True AndAlso dr("等级") <> "一等品"Then
        Dim dr2 As DataRow = DataTables("销售价格表").SQLfind("客户代号 = '" & e.DataRow("客户代号") & "'and 物料类型 = '" & e.DataRow("物料类型") & "' and 规格 = '"& e.datarow("产品规格") & "'and 型号 = '"& e.datarow("产品型号") & "'and 基材来源 = '" & e.DataRow("基材来源") & "' and 厂商代号 = '" & e.DataRow("厂商代号") & "'and 物料等级 = '二等品'")
        If dr2 IsNot Nothing Then
            dr("单价") = dr2("单价")
        End If
    End If
    If dr("计价") = 0 Then
        dr("单价") = 0
    End If
End If

Select Case e.DataCol.Name
    Case "单价","每箱净重"
        Dim dr As DataRow = e.DataRow
        dr("产品金额") = dr("单价") * dr("每箱净重")
End Select


 回到顶部