以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  如何跨表使用DataTables().Select  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=58796)

--  作者:sankever
--  发布时间:2014/10/24 0:47:00
--  如何跨表使用DataTables().Select

小白一个,昨晚刚开始看如何编程,研究到现在还没有解决问题,困死了图片点击可在新窗口打开查看

想要实现的功能如下:现在有两张表“考勤表”和“工资结算表”,已建立关联,“考勤表”为父

“考勤表”下有“日期"、"考勤情况"列,“工资结算表”有“起始日期”、“结束日期”、“考勤结果”列

如下图:


图片点击可在新窗口打开查看此主题相关图片如下:wxid_on0tk9iljh1p21_1414160637087_456.jpg
图片点击可在新窗口打开查看


图片点击可在新窗口打开查看此主题相关图片如下:qq浏览器截屏未命名.png
图片点击可在新窗口打开查看

需要提取出"考勤表"中"日期"列中时间在"工资结算表"中"起始日期"、"结束日期"之间的行,并把这些行中"考勤情况"列的天数和累加到"工资结算表"中的"考勤结果"。

查阅资料,编辑代码如下:

Dim timer0 As DataRow = DataTables("工资结算表").DataRows(1)
Dim timer1 As DataCol = DataTables("考勤表").DataCols("日期")
Dim sum As Integer
Dim drs As List(Of DataRow)
drs = DataTables("考勤表").Select("[日期] >= Child(工资结算表).起始日期 And [日期] <= Child(工资结算表).结束日期 ")
For Each dr As DataRow In drs
   sum = dr("考勤情况") + sum
Next
timer0("考勤结果") = sum

 

调试结果说”无法解释位置 9 的标记“Child”。

如果将对应行改为”drs = DataTables("考勤表").Select("[日期] >= timer0(\'起始日期\') And [日期] <= timer0(\'结束日期\') ")

则调试结果又报”表达式包含未定义的函数调用 timer0()。

夜深了,头脑不好使了,也没脑力去看那么长的帮助文档了,明天要用,请专家们帮忙指出问题及改正方法图片点击可在新窗口打开查看


[此贴子已经被作者于2014-10-24 22:28:56编辑过]

--  作者:Bin
--  发布时间:2014/10/24 8:12:00
--  
不能这么写,具体请上例子.
--  作者:有点甜
--  发布时间:2014/10/24 9:16:00
--  

 你的起始时间和结束时间,从哪里获取?

 

 获取哪个表的哪一行?


--  作者:sankever
--  发布时间:2014/10/24 22:30:00
--  如何跨表使用DataTables().Select
已增加截图,请专家指正
[此贴子已经被作者于2014-10-24 22:32:10编辑过]

--  作者:sankever
--  发布时间:2014/10/24 22:31:00
--  
已增加截图,请专家指正
[此贴子已经被作者于2014-10-24 22:32:20编辑过]

--  作者:sankever
--  发布时间:2014/11/3 0:03:00
--  
顶一下呢
--  作者:sankever
--  发布时间:2014/11/3 0:05:00
--  
已上图,请指正以下是引用Bin在2014-10-24 8:12:00的发言:
不能这么写,具体请上例子.


--  作者:Bin
--  发布时间:2014/11/3 8:04:00
--  
请把例子发上来