以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  自定义录入界面三问题,请教老师们  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=27740)

--  作者:mamuaiqing
--  发布时间: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() \'将输入焦点返回下拉列表框


--  作者:lin_hailun
--  发布时间:2013/1/9 8:51:00
--  
这样试一下

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
--  发布时间: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
--  发布时间:2013/1/9 17:37:00
--  
还有个问题,下拉窗口打开后用键盘"上下箭"移动或鼠标选择的时候怎么设置行的颜色?在表样式里一直尝试都不行,只针对列,不针对一整行
--  作者:mamuaiqing
--  发布时间:2013/1/9 17:45:00
--  
设置行的颜色找到方法了图片点击可在新窗口打开查看
--  作者:lin_hailun
--  发布时间:2013/1/9 18:35:00
--  
以下是引用mamuaiqing在2013-1-9 17:37:00的发言:
还有个问题,下拉窗口打开后用键盘"上下箭"移动或鼠标选择的时候怎么设置行的颜色?在表样式里一直尝试都不行,只针对列,不针对一整行


看看,整行突出。

http://www.foxtable.com/help/topics/0016.htm

--  作者:mamuaiqing
--  发布时间: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() \'将输入焦点返回下拉列表框


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

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


--  作者:布莱克朱
--  发布时间:2013/1/9 19:36:00
--  
dim dr as row
dr=tables("订单").current