以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]普通用户登录,下拉列表窗口报错  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=93635)

--  作者:pladic
--  发布时间:2016/12/2 17:41:00
--  [求助]普通用户登录,下拉列表窗口报错

以普通用户登录后,第一次增加行,在地址列输入字符,打开下拉列表窗口,可正常选择。以后,再增加行,在地址列打开下拉列表窗口后,报错。截图如下:


此主题相关图片如下:地址列下拉列表错误.jpg
按此在新窗口浏览图片

 

但是,以开发者登录,则不会出现上述错误。

 

源代码:

 

表事件

 

订户信息表_PrepareEdit

 

Select Case e.Col.name

    Case "地址"

        e.Col.dropform="地址窗口-订户表"

\'vars("")

    Case "单位"

        e.Col.dropform="级别窗口"

End Select

 

订户信息表_ValidateEdit

 

If e.Col.DroppedDown Then \'如果下拉窗口已经打开

    e.Col.CloseDropDown() \'则关闭下拉窗口

End If

 

订户信息表_ChangeEdit

 

If e.Col.name = "地址" Then \'如果输入的是产品编码

    \'    e.Col.dropform="地址窗口-订户表"

    If e.Col.DroppedDown Then \'如果下拉窗口已经打开

        Dim trv As WinForm.TreeView = Forms("地址窗口-订户表").Controls("TreeView1")

        If e.Text > "" Then \'如果内容为空

            For Each nd As WinForm.TreeNode In trv.AllNodes

                If nd.Text.IndexOf(e.Text) >= 0 Then

                    trv.StopRedraw()

                    trv.SelectedNode = nd

                    nd.EnsureVisible()

                    trv.ResumeRedraw()

                    trv.Select()

                    Exit For

                End If

            Next

        End If

    End If

End If

 

订户信息表_KeyPressEdit

 

\'If e.Col.name = "三级" Then

    \'If e.Col.DroppedDown = False \'如果下拉窗口没有打开

        \'e.Col.OpenDropDown() \'打开下拉窗口

    \'End If

\'End If

 

If e.Col.name = "地址" Then

    If e.Col.DroppedDown = False \'如果下拉窗口没有打开

        e.Col.OpenDropDown() \'打开下拉窗口

    End If

End If

 

 

nodemouseclick代码与说明文件一样,只是列名称不同

 

TreeView(目录树)的NodeMouseClick事件代码设置为:

If e.Node.Level = 1 Then \'如果单击的是第二层节点
    Dim tr As Row = Tables("客户").Current
    Dim dr As DataRow = e.Node.DataRow \'获取生成此节点的DataRow
    tr("省市") = dr("省市")
    tr("县市") = dr("县市")
    tr("区号") = dr("区号")
    tr("邮编") = dr("邮编")
    e.Form.DropDownBox.Value = tr("县市") \'这行不是多余的,省略此行,无法在表中正常使用此下拉窗口输入数据.
|
    e.Form.DropDownBox.CloseDropdown()

End
 If

 

<!--EndFragment-->

[此贴子已经被作者于2016/12/2 17:48:23编辑过]

--  作者:有点蓝
--  发布时间:2016/12/2 17:56:00
--  
上例子测试看看
--  作者:pladic
--  发布时间:2016/12/2 19:10:00
--  回复:(有点蓝)上例子测试看看
用的是在服务器上的SQL server

怎么传例子?数据表和代码

--  作者:有点蓝
--  发布时间:2016/12/3 8:44:00
--  
把有问题的表和窗口导入新项目测试,如果还有同样的问题,就上传这个新项目