Foxtable(狐表)用户栏目专家坐堂 → 自定义录入界面三问题,请教老师们


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

主题:自定义录入界面三问题,请教老师们

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


加好友 发短信
等级:四尾狐 帖子:824 积分:6288 威望:0 精华:0 注册:2012/3/1 3:17:00
自定义录入界面三问题,请教老师们  发帖心情 Post By:2013/1/9 4:40:00 [显示全部帖子]

订单表中有"客户姓名"列跟"产品名称"列,下拉窗口做在"产品名称"列中,想实现"客户姓名"列输入内容后,下拉窗口就根据客户姓名筛选出对应的产品名称,下拉窗口的Table绑定的是"客户产品"表,底下是自己研究半天的代码,一直不行,请老师指导下代码哪里出错了,其它位置代码需要改吗?

 

订单表的ChangeEdit事件代码:

Dim dr As DataRow
If e.Col.Name = "产品名称" Then '如果编辑的是客户ID列
    If e.Col.DroppedDown Then '如果下拉窗口已经打开
        Dim tbl As Table = Tables("客户产品下拉窗口_Table1")
        If e.Text = "" Then '如果内容为空
            tbl.Filter = "客户姓名 = '" & dr("客户姓名") & "'"
        Else '否则根据输入内容进行模糊筛选
            Dim txt As String = "'*" & e.Text & "*'"
            tbl.Filter = "客户姓名 = '" & dr("客户姓名") & "'"And "产品名称 Like " & txt
        End If
    End If
End If

 

下拉窗口DropDownOpened事件代码:

Dim dr As DataRow
Dim txt As String = e.Form.DropDownBox.Text
Dim tbl As Table = Tables("客户产品下拉窗口_Table1")
If txt = "" Then
    Tables("客户产品下拉窗口_Table1").Filter = "客户姓名 = '" & dr("客户姓名") & "'"
Else
    txt = "'*" & txt & "*'"
    tbl.Filter = "客户姓名 = '" & dr("客户姓名") & "'"And "产品名称 Like " & txt
End If
e.Form.DropDownBox.Select() '将输入焦点返回下拉列表框


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


加好友 发短信
等级:四尾狐 帖子:824 积分:6288 威望:0 精华:0 注册:2012/3/1 3:17:00
  发帖心情 Post By:2013/1/9 17:33:00 [显示全部帖子]

感谢林总的帮助,再次请教下,下面的代码执行的时候出现错误提示"未将对象引用设置到对象实例",学生感觉是没定义好"Dim dr As DataRow"订单表的列,在下拉窗口中又怎么指定好订单表的客户姓名列?

下拉窗口DropDownOpened事件代码:

Dim dr As DataRow
Dim txt As String = e.Form.DropDownBox.Text
Dim tbl As Table = Tables("客户产品下拉窗口_Table1")
If txt = "" Then
    Tables("客户产品下拉窗口_Table1").Filter = "客户姓名 = '" & dr("客户姓名") & "'"
Else
    txt = "'*" & txt & "*'"
    tbl.Filter = "客户姓名 = '" & dr("客户姓名") & "'"And "产品名称 Like " & txt
End If
e.Form.DropDownBox.Select() '将输入焦点返回下拉列表框


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


加好友 发短信
等级:四尾狐 帖子:824 积分:6288 威望:0 精华:0 注册:2012/3/1 3:17:00
  发帖心情 Post By:2013/1/9 17:37:00 [显示全部帖子]

还有个问题,下拉窗口打开后用键盘"上下箭"移动或鼠标选择的时候怎么设置行的颜色?在表样式里一直尝试都不行,只针对列,不针对一整行

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


加好友 发短信
等级:四尾狐 帖子:824 积分:6288 威望:0 精华:0 注册:2012/3/1 3:17:00
  发帖心情 Post By:2013/1/9 17:45:00 [显示全部帖子]

设置行的颜色找到方法了图片点击可在新窗口打开查看

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


加好友 发短信
等级:四尾狐 帖子:824 积分:6288 威望:0 精华:0 注册:2012/3/1 3:17:00
  发帖心情 Post By:2013/1/9 18:44:00 [显示全部帖子]

请教林总,下拉窗口的的代码该怎么改?怎么定义"订单表"?下面的代码执行的时候出现错误提示"未将对象引用设置到对象实例"

 

下拉窗口DropDownOpened事件代码:

Dim dr As DataRow
Dim txt As String = e.Form.DropDownBox.Text
Dim tbl As Table = Tables("客户产品下拉窗口_Table1")
If txt = "" Then
    Tables("客户产品下拉窗口_Table1").Filter = "客户姓名 = '" & dr("客户姓名") & "'"
Else
    txt = "'*" & txt & "*'"
    tbl.Filter = "客户姓名 = '" & dr("客户姓名") & "'"And "产品名称 Like " & txt
End If
e.Form.DropDownBox.Select() '将输入焦点返回下拉列表框


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


加好友 发短信
等级:四尾狐 帖子:824 积分:6288 威望:0 精华:0 注册:2012/3/1 3:17:00
  发帖心情 Post By:2013/1/9 19:20:00 [显示全部帖子]

以下是引用布莱克朱在2013-1-9 19:13:00的发言:
dr 的变量从何而来?

纠结就在这,一直在研究怎么指定表,一直尝试不行, dr = Tables("订单")不行


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


加好友 发短信
等级:四尾狐 帖子:824 积分:6288 威望:0 精华:0 注册:2012/3/1 3:17:00
  发帖心情 Post By:2013/1/9 21:55:00 [显示全部帖子]

好了,最后将代码改成这样

Dim txt As String = e.Form.DropDownBox.Text
Dim dr As Row = Tables("订单明细").current
Dim tbl As Table = Tables("客户产品下拉窗口_Table1")
If txt = "" Then
    Tables("客户产品下拉窗口_Table1").Filter = "客户姓名 = '" & dr("客户姓名") & "'"
Else
    txt = "'*" & txt & "*'"
    tbl.Filter =  "客户姓名 = '" & dr("客户姓名") & "' Or 产品名称 Like " & txt
End If
e.Form.DropDownBox.Select() '将输入焦点返回下拉列表框

 

实现了想要的功能了,感谢林总跟布莱克朱老师,

 

学生愚钝再请教下这行代码,"客户姓名 = '" & dr("客户姓名") & "' Or 产品名称 Like " & txt  中为什么用or来连接呢?而不是用And? 还望老师赐教

 

帮助文件中的的解说看了很长时间了看不明白,能否用通俗的词概括下

And 逻辑与,如果左右表达式的值都为True,则返回True,否则返回False
AndAlso 逻辑与,如果左右表达式的值都为True,则返回True,否则返回False
Or 逻辑或,如果左右表达式的值至少有一个True,则返回True,否则返回False
OrElse 逻辑或,如果左右表达式的值至少有一个True,则返回True,否则返回False

 


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


加好友 发短信
等级:四尾狐 帖子:824 积分:6288 威望:0 精华:0 注册:2012/3/1 3:17:00
  发帖心情 Post By:2013/1/10 1:15:00 [显示全部帖子]

图片点击可在新窗口打开查看奇了怪了,上面的代码在"产品名称"为空时实现了筛选出"客户姓名"中的产品,但"产品名称"一旦输入"张"字后下拉窗口筛选出所有"产品名称"带张字的产品名称,违反了前面的筛选条件

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


加好友 发短信
等级:四尾狐 帖子:824 积分:6288 威望:0 精华:0 注册:2012/3/1 3:17:00
  发帖心情 Post By:2013/1/10 1:20:00 [显示全部帖子]

难道是订单表的"客户姓名 = '" & e.Row("客户姓名") & "' Or 产品名称 Like " & txt这行代码出问题了?

If e.Col.Name = "产品名称" Then '如果编辑的是客户ID列
    If e.Col.DroppedDown Then '如果下拉窗口已经打开
        Dim tbl As Table = Tables("客户产品下拉窗口_Table1")
        If e.Text = "" Then '如果内容为空
            tbl.Filter = "客户姓名 = '" & e.Row("客户姓名") & "'"
        Else '否则根据输入内容进行模糊筛选
            Dim txt As String = "'*" & e.Text & "*'"
            tbl.Filter = "客户姓名 = '" & e.Row("客户姓名") & "' Or 产品名称 Like " & txt
        End If
    End If
End If


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


加好友 发短信
等级:四尾狐 帖子:824 积分:6288 威望:0 精华:0 注册:2012/3/1 3:17:00
  发帖心情 Post By:2013/1/10 16:47:00 [显示全部帖子]

以下是引用lin_hailun在2013-1-10 8:57:00的发言:
 你这句要实现什么样的筛选?

"客户姓名 = '" & e.Row("客户姓名") & "' Or 产品名称 Like " & txt

这行是要实现根据"客户姓名"列中的客户姓名筛选出对应的产品名称, 前面代码是这样"客户姓名 = '" & e.Row("客户姓名") & "' And 产品名称 Like " & txt,用 And做连接,但不成功,提

 

示符号设置错误,后面又把代码改为"客户姓名 = '" & e.Row("客户姓名") & "'" And 产品名称 Like " & txt,  & "'" And 这里加上符号后是代表结束了,代码又不对

 

再则客户姓名列的内容是存在的,因为订单表是子表,关联的是"客户姓名"列

[此贴子已经被作者于2013-1-10 16:48:33编辑过]

 回到顶部
总数 13 1 2 下一页