以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 窗口中执行筛选后双击明细打开编辑窗口焦点始终在第一行 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=110313) |
-- 作者:whx007 -- 发布时间:2017/11/30 17:59:00 -- 窗口中执行筛选后双击明细打开编辑窗口焦点始终在第一行 1、选择日期筛选 执行日期筛选,选择第五行双击打开订单修改窗口,实际打开的是第一行的订单,无论点击哪一行打开订单修改窗口的都是第一行
2、选择客户名称筛选 选任意一行双击出错,如下: .NET Framework 版本:2.0.50727.5420 Foxtable 版本:2017.10.26.1 错误所在事件:窗口,订单修改,AfterLoad 详细错误信息: 未将对象引用设置到对象的实例。 关闭错误提示后打开的窗口是没有经过筛选的,当关闭弹窗后,窗口筛选的内容全无 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编辑过]
|
-- 作者:有点甜 -- 发布时间: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 -- 发布时间: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"销售明细查询"代码有问题 |
-- 作者:有点蓝 -- 发布时间:2017/12/2 8:52:00 -- 上传实例说明 |
-- 作者:whx007 -- 发布时间:2017/12/5 16:10:00 -- 1、销售查询窗口-销售明细系查询 2、选择起始日期和截止日期,执行筛选,双击除第一行外的任意其他行,打开的始终是第一行。 3、客户名称和客户电话问题相同。
[此贴子已经被作者于2017/12/6 16:39:30编辑过]
|
-- 作者:有点甜 -- 发布时间:2017/12/5 16:52:00 -- 这个是bug。当你的筛选条件,是表达式列,表达式列引用父表数据,这种情况。对主表设置属性的时候,就会导致子表跳到第一行去。
你订单修改窗口AfterLoad事件改一下,把红色代码写到最后
If Forms("销售查询").opened Then Tables("销售订单").Sort = "订单号 DESC,日期 DESC"
|
-- 作者:whx007 -- 发布时间:2017/12/6 3:42:00 -- 没有别的办法解决了吗? |
-- 作者:有点甜 -- 发布时间:2017/12/6 12:04:00 -- 方法一:不要用表达式列直接做筛选条件。改成,先根据日期等条件,在父表查找到对应的订单号,然后设置子表的筛选条件为这些订单号。
方法二:像6楼的方式。 |
-- 作者:whx007 -- 发布时间:2017/12/6 16:41:00 -- 好的,谢谢! |
-- 作者:whx007 -- 发布时间:2017/12/8 3:30:00 -- 再次请教: 打开项目的时候大多数时间是正常的,但有时候打开项目的时候报错: 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 |