以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  DropDownOpened和DropDownClosed  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=124697)

--  作者:yetle
--  发布时间:2018/9/12 9:26:00
--  DropDownOpened和DropDownClosed

点单元格下拉窗口还没出来弹出会有下图提示,

选定行关闭下拉窗口后离开单元格也弹出来这个提示:


图片点击可在新窗口打开查看此主题相关图片如下:111.png
图片点击可在新窗口打开查看

DropDownOpened


Dim txt As String = e.Form.DropDownBox.Text
Dim tbl As Table = Tables("款号录入_Table1")
If txt = "" Then
    tbl.Filter = ""
Else
     txt = "\'%" & txt & "%\'"
    tbl.Filter = "款号 Like " & txt 
End If
e.Form.DropDownBox.Select()

DropDownClosed

If e.Selected Then \'如果选择了值
    Dim tbl As Table = Tables("款号录入_Table1")
    If tbl.Current IsNot Nothing Then
      If e.Form.DropCol.name= "款号" Then
        e.Form.DropDownBox.Value = tbl.Current("款号")
        Tables("销售订单_table2").Current("客款号") = tbl.Current("客款号")
        Tables("销售订单_table2").Current("货品名") = tbl.Current("货品名")
        Tables("销售订单_table2").Current("系列") = tbl.Current("系列")
        Tables("销售订单_table2").Current("尺码组") = tbl.Current("尺码组")
        Tables("销售订单_table2").Current("款号ID") = tbl.Current("款号ID")
      End If

    End If
End If



Validating

Dim drp As WinForm.DropDownBox = e.sender
If drp.DroppedDown Then \'如果下拉窗口已经打开 
    drp.CloseDropdown(False) \'关闭下拉窗口
End If


KeyDown

Dim drp As WinForm.DropDownBox = e.sender
If drp.DroppedDown Then \'如果下拉窗口已经打开
    Dim tbl As Table = Tables("款号录入_Table1")
    If e.KeyCode = Keys.Up Then \'如果按下的是上箭头按键
        tbl.Position = tbl.Position - 1 \'向上移动一行
        e.Cancel = True
    ElseIf e.KeyCode = Keys.Down Then \'如果按下的是下箭头按键
        tbl.Position = tbl.Position + 1 \'向下移动一行
        e.Cancel = True
    End If
End If
[此贴子已经被作者于2018/9/12 9:40:56编辑过]

--  作者:有点甜
--  发布时间:2018/9/12 9:58:00
--  
应该是表格的currentChanged或者datacolchanged事件有问题导致的错误。
--  作者:yetle
--  发布时间:2018/9/12 11:07:00
--  

currentchanged:
If Forms("销售订单").Opened() \'一定要判断用于模拟关联表的窗口是否已经打开

    Dim b As Table = Tables("销售明细尺码数")   
    Dim c As Table = Tables("销售订单_Table4")  
    With Tables("销售订单_Table2")

        If .Current("款号") Is Nothing Then
            c.Filter = "False"
            b.Filter = "False"
        Else
Tables("销售明细尺码数").Cols("尺码信息").Combolist = DataTables("款式尺码").GetComboListString("尺码","[款号] = \'" & Tables("销售订单_Table2").current("款号") & "\'")
            b.Filter = "订单号 = " & .Current("流水订单号")
            c.Filter = "款号 = " & .Current("款号")
        End If
    End With
End If

--  作者:有点甜
--  发布时间:2018/9/12 11:13:00
--  
            b.Filter = "订单号 = " & .Current("流水订单号")
            c.Filter = "款号 = " & .Current("款号")

 

改成

 

            b.Filter = "订单号 = \'" & .Current("流水订单号") & "\'"
            c.Filter = "款号 = \'" & .Current("款号") & "\'"

--  作者:yetle
--  发布时间:2018/9/12 11:47:00
--  
还是有这个提示


--  作者:有点甜
--  发布时间:2018/9/12 11:57:00
--  
以下是引用yetle在2018/9/12 11:47:00的发言:
还是有这个提示

 

具体做一个出错的实例发上来测试。

 

不然,自己调试 http://www.foxtable.com/webhelp/scr/1485.htm