Foxtable(狐表)用户栏目专家坐堂 → 如何提取关联表最后一条记录数据


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

主题:如何提取关联表最后一条记录数据

帅哥,在线噢!
狐狸爸爸
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2008/10/21 9:56:00 [显示全部帖子]

呵呵,不太明白你的意思。
直觉就是:这样的设计有点无厘头。


 回到顶部
帅哥,在线噢!
狐狸爸爸
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2008/10/21 10:01:00 [显示全部帖子]

从关联表提取最后一行数据,可以参考下面的资料:

 

Find

在DataTable查找符合条件的行,如果找到的话,返回找到的行,否则返回Nothing。
如果有多个符合条件的行,默认返回第一个,也可以指定返回第几个符合条件的行。

语法:

Find(Filter,Sort,Index)

Filter:  条件表达式。
Sort:    可选参数,指定排序方式。
Index:   可选参数,指定返回第几个符合条件的行。

示例:

Dim dr As DataRow
dr =
DataTables("产品").Find("产品编号 = '03'") '找出编号为03的产品
With DataTables(
"订单")
    dr = .Find(
"产品 = 'PD01'","日期") '找出第一次订购PD01产品的记录
    dr = .Find(
"产品 = 'PD01'","日期",1) '找出第二次订购PD01产品的记录
    dr = .Find(
"产品 = 'PD01'","日期 Desc") '找出最后一次订购PD01产品的记录
    dr = .Find(
"产品 = 'PD01'","日期 Desc",1) '找出倒数第二次订购PD01产品的记录

End With


 回到顶部
帅哥,在线噢!
狐狸爸爸
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2008/10/21 10:32:00 [显示全部帖子]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:仓库管理.table


[本帖被加为精华]
 回到顶部
帅哥,在线噢!
狐狸爸爸
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2008/10/21 11:26:00 [显示全部帖子]

呵呵,怎么可能啊,这是我的份内事。

当然,我希望用户在做系统之前,能够掌握基本的原理和概念,能够看懂我写的代码,能够举一反三。

我肯定不希望自己只是一个“代码编辑器”,能看到用户进步,是我最大的动力。

 回到顶部
帅哥,在线噢!
狐狸爸爸
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2008/10/21 14:30:00 [显示全部帖子]

你只看到了电缆仓明细的DataColChanged事件中的代码:

If e.DataCol.Name = "分段" Then
  Dim Dr As DataRow = e.Datarow.GetParentRow("电缆仓")
  If Dr IsNot Nothing Then
     DataTables("电缆仓").DataCols("分段").Recalc(dr)
  End if
End if

却没有看到在电缆仓的分段列,还有计算代码:

Dim Dr As DataRow = DataTables("电缆仓明细").Find("pid = " & e.DataRow("_Identify"),"_Identify Desc")
If Dr IsNot Nothing Then
   e.Datarow("分段") = dr("分段")
End If


 回到顶部