以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]datarow的选定问题  (http://foxtable.com/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”列属性中,设置有目录树表输入。第一次录入订单时没有问题,增加订单行的时候就出错,必须关闭程序重启后录入才正确。我知道原因是保存了记录后,失去了焦点,但怎样把焦点重新设回来呢?目的是每条记录在保存后,又能新增录入不出错。
 
传个附件上来,请大红袍帮忙看看怎么解决,谢谢!
 
 
 下载信息  [文件大小:   下载次数: ]
点击浏览该文件:sr.rar


--  作者:大红袍
--  发布时间:2016/8/12 16:30:00
--  

1、

 

 


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

--  作者:大红袍
--  发布时间:2016/8/12 16:47:00
--  

1、锁定行,不能录入啊

 

2、列属性设置的目录树,你设置了多少列,你就必须点击对应的最后一层,才能取得值的。