Foxtable(狐表)用户栏目专家坐堂 → [求助]datarow的选定问题


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

主题:[求助]datarow的选定问题

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


加好友 发短信
等级:幼狐 帖子:151 积分:1110 威望:0 精华:0 注册:2015/1/24 15:26:00
[求助]datarow的选定问题  发帖心情 Post By:2016/8/11 12:46:00 [显示全部帖子]

我输出报表时,无法在模版中设置条件表达式的方式来设置打印范围,
因此希望通过代码来选定符合条件的要打印的行:
Dim drs As List(Of DataRow)
drs = DataTables("订单").Select("下单日期 = #" & xdrq & "#")
'For Each dr As DataRow In drs
    'dr.Selected = True
'Next
drs返回了符合条件的行的集合,如何选定这些行呢?红色代码显然是错的。
请教!

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


加好友 发短信
等级:幼狐 帖子:151 积分:1110 威望:0 精华:0 注册:2015/1/24 15:26:00
  发帖心情 Post By: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

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


加好友 发短信
等级:幼狐 帖子:151 积分:1110 威望:0 精华:0 注册:2015/1/24 15:26:00
  发帖心情 Post By:2016/8/12 15:59:00 [显示全部帖子]

还是不行,可能是我细节区引用的数据不是订单表的,而是订单明细表的,订单明细是订单的子表。

我还有2个很痛苦的事情:
 
1、订单录入窗口中,日期输入框直接打不开,必须先录入其它控件值后(比如客户姓名),日期输入框才能打开。
2、同在订单窗口,订单明细的录入是通过窗口中的table录入的,窗口中的table在“订单ID”列属性中,设置有目录树表输入。第一次录入订单时没有问题,增加订单行的时候就出错,必须关闭程序重启后录入才正确。我知道原因是保存了记录后,失去了焦点,但怎样把焦点重新设回来呢?目的是每条记录在保存后,又能新增录入不出错。
 
传个附件上来,请大红袍帮忙看看怎么解决,谢谢!
 
 
 下载信息  [文件大小:   下载次数: ]
点击浏览该文件:sr.rar


 回到顶部