Foxtable(狐表)用户栏目专家坐堂 → 请教在窗口中输入报错问题


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

主题:请教在窗口中输入报错问题

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


加好友 发短信
等级:小狐 帖子:349 积分:3329 威望:0 精华:0 注册:2016/3/8 18:13:00
请教在窗口中输入报错问题  发帖心情 Post By:2019/4/24 17:33:00 [只看该作者]

老师好!我做了个窗口输入,目的是想在“单位名称”中输入“单位1”,在产品中输入“惠普”后,在“价格”总自动输入“4000”。

我在datacolchanged中写的代码:

Dim txt1 As String =e.Form.Controls("DropBox1").text
Dim txt2 As String =e.Form.Controls("TextBox2").text
Dim txt3 As String =e.Form.Controls("TextBox3").text

 Dim dr As DataRow = DataTables("单位资料").find("单位名称 = '" & txt1 & "'and 产品 ='" & txt2 &"'")
            If dr IsNot Nothing Then
                txt3 = dr("价格")
  End If

运行后报错
“.NET Framework 版本:2.0.50727.8800
Foxtable 版本:2019.4.12.1
错误所在事件:表,单位资料,DataColChanged
详细错误信息:
调用的目标发生了异常。
未将对象引用设置到对象的实例。”

请教老师该如何修改!
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:价格.table



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


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

没必要这样写,参考

 

http://www.foxtable.com/webhelp/scr/1451.htm

 


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


加好友 发短信
等级:小狐 帖子:349 积分:3329 威望:0 精华:0 注册:2016/3/8 18:13:00
  发帖心情 Post By:2019/4/26 14:53:00 [只看该作者]

老师,我修改后,对应的价格还是出不来,请指教! 窗口中单位名称是用的DropDownBox取值

If e.DataCol.Name = "产品" Then 
    If e.NewValue Is Nothing Then 
        e.DataRow("价格") = Nothing 
    Else
        Dim dr As DataRow
        
        dr = DataTables("单位资料").Find("[单位名称] = '" & e.NewValue & "'and [产品]='" & e.newvalue &"'")
        If dr IsNot Nothing Then 
            e.DataRow("价格") = dr("价格") 
        End If
    End If
End If

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:价格.table


[此贴子已经被作者于2019/4/26 14:59:11编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:105473 积分:536350 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/4/26 15:03:00 [只看该作者]

Select Case e.DataCol.Name
    Case "单位名称","产品"
        If e.DataRow("单位名称") = "单位1" AndAlso e.DataRow("产品") = "惠普" Then
            e.DataRow("价格") = 4000
        End If
End Select

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


加好友 发短信
等级:小狐 帖子:349 积分:3329 威望:0 精华:0 注册:2016/3/8 18:13:00
  发帖心情 Post By:2019/4/26 15:16:00 [只看该作者]

我想根据表“单位资料”中的字段“单位名称”和“产品”自动判断“价格”。

Select Case e.DataCol.Name
    Case "单位名称","产品"
        If e.DataRow("单位名称") = "单位1" AndAlso e.DataRow("产品") = "惠普" Then
            e.DataRow("价格") = 4000
        End If
End Select

这个如果在代码中规定死,就不能执行自动判断了。

我的想法是在表中输入一次“单位名称”和“产品”对应的价格后,以后再输入相同的“单位名称”及“产品”后,就能自动显示出“价格”。


[此贴子已经被作者于2019/4/26 15:19:37编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:105473 积分:536350 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/4/26 15:20:00 [只看该作者]

那您想做到什么样子?根据什么逻辑?取什么值?

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


加好友 发短信
等级:小狐 帖子:349 积分:3329 威望:0 精华:0 注册:2016/3/8 18:13:00
  发帖心情 Post By:2019/4/26 15:20:00 [只看该作者]

我的想法是在表中输入一次“单位名称”和“产品”对应的价格后,以后再输入相同的“单位名称”及“产品”,就能自动显示出“价格”。
[此贴子已经被作者于2019/4/26 15:20:51编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:105473 积分:536350 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/4/26 15:30:00 [只看该作者]

Select Case e.DataCol.Name
    Case "单位名称","产品"
        Dim dr As DataRow = e.DataTable.find("[单位名称] = '" & e.DataRow("单位名称") & "' and [产品]='" & e.DataRow("产品") & "' and 价格 is not null And [_Identify] <> " & e.DataRow("_Identify"))
        If dr IsNot Nothing Then
            e.DataRow("价格") = dr("价格") 
        End If
End Select

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


加好友 发短信
等级:小狐 帖子:349 积分:3329 威望:0 精华:0 注册:2016/3/8 18:13:00
  发帖心情 Post By:2019/4/26 15:43:00 [只看该作者]

完美,谢谢!  请问下_Identify在这里主要是起什么作用?
[此贴子已经被作者于2019/4/26 15:44:35编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:105473 积分:536350 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/4/26 15:47:00 [只看该作者]

查询的时候忽略当前行

 回到顶部