以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]datarow的选定问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=88905) |
||||
-- 作者:青鸟 -- 发布时间:2016/8/11 12:46:00 -- [求助]datarow的选定问题 我输出报表时,无法在模版中设置条件表达式的方式来设置打印范围, 因此希望通过代码来选定符合条件的要打印的行: Dim drs As List(Of DataRow) drs = DataTables("订单").Select("下单日期 = #" & xdrq & "#") \'For Each dr As DataRow In drs \'dr.Selected = True \'Next drs返回了符合条件的行的集合,如何选定这些行呢?红色代码显然是错的。 请教!
|
||||
-- 作者:大红袍 -- 发布时间:2016/8/11 14:43:00 -- 要筛选才行。
Tables("订单").Filter = "下单日期 = #" & xdrq & "#" |
||||
-- 作者:青鸟 -- 发布时间:2016/8/11 21:15:00 -- 谢谢大红袍! 筛选了还是没有选定Table("订单")中符合条件的行啊,我是这样解决的,但这样的缺点是符合条件的行必须是连续的,如果不连续就出问题,能优化代码吗?Dim wz1 As Integer Dim wz2 As Integer Dim dr1 As DataRow Dim dr2 As DataRow dr1 = DataTables("订单").Find("[下单日期] = #" & xdrq & "#", "订单ID") \'查找符合条件的第一行记录 If dr1 IsNot Nothing Then wz1 = Tables("订单").FindRow(dr1) \'确定符合条件的第一行记录在Table中的位置 \'msgbox(wz1) Else msgbox("该天没有订单,请重新输入\'下单日期\'!",0,"提示:") Forms("发货清单").Controls("DateTimePicker1").Selected Return End If dr2 = DataTables("订单").Find("[下单日期] = #" & xdrq & "#", "订单ID Desc") \'查找符合条件的最后一行记录 If dr2 IsNot Nothing Then wz2 = Tables("订单").FindRow(dr2) \'确定符合条件的最后一行记录在Table中的位置 \'msgbox(wz2) End If With Tables("订单") .Select(wz1, 0, wz2, 0) \'选择符合条件的订单行(多行) End With |
||||
-- 作者:大红袍 -- 发布时间:2016/8/11 21:49:00 -- 1、代码 Tables("订单").Filter = "下单日期 = #" & xdrq & "#"
2、模板那里,条件设置成<All> http://www.foxtable.com/webhelp/scr/0201.htm
|
||||
-- 作者:青鸟 -- 发布时间:2016/8/12 15:59:00 -- 还是不行,可能是我细节区引用的数据不是订单表的,而是订单明细表的,订单明细是订单的子表。 我还有2个很痛苦的事情:
1、订单录入窗口中,日期输入框直接打不开,必须先录入其它控件值后(比如客户姓名),日期输入框才能打开。
2、同在订单窗口,订单明细的录入是通过窗口中的table录入的,窗口中的table在“订单ID”列属性中,设置有目录树表输入。第一次录入订单时没有问题,增加订单行的时候就出错,必须关闭程序重启后录入才正确。我知道原因是保存了记录后,失去了焦点,但怎样把焦点重新设回来呢?目的是每条记录在保存后,又能新增录入不出错。
传个附件上来,请大红袍帮忙看看怎么解决,谢谢!
|
||||
-- 作者:大红袍 -- 发布时间:2016/8/12 16:30:00 -- 1、
此主题相关图片如下:qq截图20160812162956.png |
||||
-- 作者:大红袍 -- 发布时间:2016/8/12 16:47:00 -- 1、锁定行,不能录入啊
2、列属性设置的目录树,你设置了多少列,你就必须点击对应的最后一层,才能取得值的。 |