Foxtable(狐表)用户栏目专家坐堂 → 窗口中执行筛选后双击明细打开编辑窗口焦点始终在第一行


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

主题:窗口中执行筛选后双击明细打开编辑窗口焦点始终在第一行

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


加好友 发短信
等级:童狐 帖子:228 积分:2057 威望:0 精华:0 注册:2017/8/18 17:51:00
窗口中执行筛选后双击明细打开编辑窗口焦点始终在第一行  发帖心情 Post By:2017/11/30 17:59:00 [只看该作者]

1、选择日期筛选

 
此主题相关图片如下:01.png
按此在新窗口浏览图片

执行日期筛选,选择第五行双击打开订单修改窗口,实际打开的是第一行的订单,无论点击哪一行打开订单修改窗口的都是第一行

 

2、选择客户名称筛选

 
此主题相关图片如下:02.png
按此在新窗口浏览图片

选任意一行双击出错,如下:

.NET Framework 版本:2.0.50727.5420

Foxtable 版本:2017.10.26.1

错误所在事件:窗口,订单修改,AfterLoad

详细错误信息:

未将对象引用设置到对象的实例。


关闭错误提示后打开的窗口是没有经过筛选的,当关闭弹窗后,窗口筛选的内容全无

此主题相关图片如下:03.png
按此在新窗口浏览图片

3、选择客户电话执行筛选和选择客户名称情况完全一样
4、选择产品型号筛选正常
5、订单查询窗口都正常

筛选按钮代码如下:
Dim Filter As String
Dim qsrq As WinForm.DateTimePicker = e.Form.Controls("DateTimePicker2")
Dim jzrq As WinForm.DateTimePicker = e.Form.Controls("DateTimePicker3")
Dim cpxh As WinForm.DropDownBox = e.Form.Controls("cmbproduct")
Dim khmc As WinForm.ComboBox = e.Form.Controls("cmbcustomer1")
Dim khdh As WinForm.ComboBox = e.Form.Controls("cmbPoneNo.1")
With e.Form.Controls("DateTimePicker2")
    If .Value IsNot Nothing Then
        If Filter > "" Then
            filter = filter & " and 日期 >= #" & qsrq.Value & "#"
        End If
        filter = "日期 >= #" & qsrq.value & "#"
    End If
End With

If jzrq.Value IsNot Nothing Then
    If filter > "" Then
        filter = filter & " and 日期 <= #" & jzrq.Value & "#"
    Else
        filter = "日期 <= #" & jzrq.value & "#"
    End If
End If

With e.Form.Controls("cmbProduct")
    If .Value IsNot Nothing Then
        If Filter > "" Then
            Filter = Filter & " And "
        End If
        Filter = "产品型号 like '%" & cpxh.value & "%'"
    End If
End With

With e.Form.Controls("cmbCustomer1")
    If .Value IsNot Nothing Then
        If Filter > "" Then
            Filter = Filter & " And "
        End If
        Filter = "客户名称 like '%" & khmc.value & "%'"
    End If
End With
With e.Form.Controls("cmbPoneNo.1")
    If .Value IsNot Nothing Then
        If Filter >"" Then
            Filter = Filter & " And "
        End If
        Filter = "客户电话 like '%" & khdh.value & "%'"
    End If
End With

If Filter > "" Then
    Tables("销售查询_table3").Filter = Filter
End If

doubleclick:Forms("订单修改").Open

订单修改窗口的afterload:
If Forms("销售查询").opened Then
    Dim tab As WinForm.TabControl = forms("销售查询").controls("TabControl1")
    Select Case tab.selectedpage.Text
        Case "订单查询"
            Tables("销售订单").Filter = "订单号 = '" &  Tables("销售查询_Table1").Current("订单号") & "'"
        Case "销售明细查询"
            Tables("销售订单").Filter = "订单号 = '" &  Tables("销售查询_Table3").Current("订单号") & "'"

    End Select
End If

销售查询_Table1:绑定的销售订单
销售查询_Table3:绑定的销售明细表

请专家帮我看看什么问题,谢谢!


[此贴子已经被作者于2017/11/30 18:48:03编辑过]

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


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

1、代码不能这样写

 

Filter = "产品型号 like '%" & cpxh.value & "%'"

 

要这样写

 

Filter = Filter & "产品型号 like '%" & cpxh.value & "%'"

 

2、窗口控件显示内容总是第一行的问题,你可以绑定窗口表,而不是绑定主表,或者是做到窗口表和主表同步

 

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

 

3、当表格没有内容时报错的问题,你currentChanged事件是不是写了代码?要判断一下

 

If e.Table.Rows.Count = 0 Then Return

 


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


加好友 发短信
等级:童狐 帖子:228 积分:2057 威望:0 精华:0 注册:2017/8/18 17:51:00
  发帖心情 Post By:2017/12/2 4:21:00 [只看该作者]

@有点甜,按照提示做了还是不行。
对于第二条,有点筛选条件比如通过产品型号筛选是可以打开对应订单号的订单,但是通过日期,客户名称和电话筛选后打开的始终是筛选后表中的第一行的订单。
双击打开还要执行一次订单修改窗口的afterload:
If Forms("销售查询").opened Then
    Dim tab As WinForm.TabControl = forms("销售查询").controls("TabControl1")
    Select Case tab.selectedpage.Text
        Case "订单查询"
            Tables("销售订单").Filter = "订单号 = '" &  Tables("销售查询_Table1").Current("订单号") & "'"
        Case "销售明细查询"
            Tables("销售订单").Filter = "订单号 = '" &  Tables("销售查询_Table3").Current("订单号") & "'"
    End Select
End If

Case"订单查询"执行所有筛选条件后双击打开"订单修改窗口"均正常
Case"销售明细查询"只有执行产品型号筛选条件后双击打开"订单修改窗口"正常,其他都不正常
是不是订单修改窗口的afterload中Case"销售明细查询"代码有问题

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


加好友 发短信
等级:超级版主 帖子:110592 积分:562856 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/12/2 8:52:00 [只看该作者]

上传实例说明

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


加好友 发短信
等级:童狐 帖子:228 积分:2057 威望:0 精华:0 注册:2017/8/18 17:51:00
  发帖心情 Post By:2017/12/5 16:10:00 [只看该作者]


1、销售查询窗口-销售明细系查询
2、选择起始日期和截止日期,执行筛选,双击除第一行外的任意其他行,打开的始终是第一行。
3、客户名称和客户电话问题相同。
[此贴子已经被作者于2017/12/6 16:39:30编辑过]

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


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

这个是bug。当你的筛选条件,是表达式列,表达式列引用父表数据,这种情况。对主表设置属性的时候,就会导致子表跳到第一行去。

 

你订单修改窗口AfterLoad事件改一下,把红色代码写到最后

 

If Forms("销售查询").opened Then
    Dim tab As WinForm.TabControl = forms("销售查询").controls("TabControl1")
    Select Case tab.selectedpage.Text
        Case "订单查询"
            Tables("销售订单").Filter = "订单号 = '" &  Tables("销售查询_Table1").Current("订单号") & "'"
        Case "销售明细查询"
            Tables("销售订单").Filter = "订单号 = '" &  Tables("销售查询_Table3").Current("订单号") & "'"
    End Select
End If
DataTables("销售明细表").AddUserStyle("a", Color.Red, Color.White)
DataTables("销售订单").AddUserStyle("a", Color.Red, Color.White)

Tables("销售订单").Sort = "订单号 DESC,日期 DESC"

 


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


加好友 发短信
等级:童狐 帖子:228 积分:2057 威望:0 精华:0 注册:2017/8/18 17:51:00
  发帖心情 Post By:2017/12/6 3:42:00 [只看该作者]

没有别的办法解决了吗?

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


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

方法一:不要用表达式列直接做筛选条件。改成,先根据日期等条件,在父表查找到对应的订单号,然后设置子表的筛选条件为这些订单号。

 

方法二:像6楼的方式。


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


加好友 发短信
等级:童狐 帖子:228 积分:2057 威望:0 精华:0 注册:2017/8/18 17:51:00
  发帖心情 Post By:2017/12/6 16:41:00 [只看该作者]

好的,谢谢!

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


加好友 发短信
等级:童狐 帖子:228 积分:2057 威望:0 精华:0 注册:2017/8/18 17:51:00
  发帖心情 Post By:2017/12/8 3:30:00 [只看该作者]

再次请教:
打开项目的时候大多数时间是正常的,但有时候打开项目的时候报错:

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

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

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


TopicLinkClick事件代码如下:


Select Case e.Link.Name
    Case "销售主界面"
        Forms("销售主界面").Show
    Case "销售查询"
        Forms("销售查询").Show
    Case "流水账"
        Forms("流水账").Show
        
    Case "产品入库"
        Forms("产品入库").Show
    Case "库存查询"
        Forms("库存查询").Show
        
    Case "今日销售数量"
        Tables("销售订单").Filter = "日期 = #"  & Date.Today & "#"
    Case "今日销售金额"
        Tables("销售订单").Filter = "日期 = #"  & Date.Today & "#"
        
    Case "日销售额"
        Forms("按日统计").Show
    Case "日销售汇总"
        Forms("按日汇总").Show
    Case "月销售额"
        Forms("按月统计").Show
    Case "分类统计"
        Forms("分类统计").Show     
End Select



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