以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 查询最后3条记录后做判断 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=130194) |
|
-- 作者:cyrollin -- 发布时间:2019/1/15 16:55:00 -- 查询最后3条记录后做判断 Dim r As dataRow drn = Tables("表A").addnew(1) ........ Dim drs As List(of DataRow) = DataTables("表A").SQLSelect("编号 =" & r("编号"), top 3, order by 日期 Desc, "数据源") dim dr As DataRow In drs if dr("工作状态") = "工作" drn("工作状态") = "休息" else drn("工作状态") = "工作" end if ............. 想要达到的效果: 查询此编号人员最后三次的工作状态,如果都是 工作,新增的一条记录的工作状态就是 休息, 否则还是要 工作。 请问写法是这样吗? |
|
-- 作者:有点甜 -- 发布时间:2019/1/15 17:18:00 -- Dim drs As List(of DataRow) = DataTables("表A").SQLSelect("编号 =" & r("编号"), 3, "日期 Desc")
http://www.foxtable.com/webhelp/scr/2900.htm
|
|
-- 作者:cyrollin -- 发布时间:2019/1/15 17:27:00 -- 甜,我之前也是看的这页帮助, 只有修改,累计的方法, 没有判断的方法。。。
if drs("工作状态") = "工作" drn("工作状态") = "休息" else drn("工作状态") = "工作" end if 这样写可能是错的吧,我还没试。
[此贴子已经被作者于2019/1/15 17:32:41编辑过]
|
|
-- 作者:有点甜 -- 发布时间:2019/1/15 17:32:00 --
没看懂你的意思,做个例子发上来,说明要做什么。
|
|
-- 作者:cyrollin -- 发布时间:2019/1/15 17:38:00 -- 比如编号为001的某个人, 他的最后3次工作状态是: 编号(列) 工作状态(列) 001 工作 001 工作 001 工作 Dim drs As List(of DataRow) = DataTables("表A").SQLSelect("编号 =" & r("编号"), 3, "日期 Desc") ‘ 通过这个查询, 查出上面的工作状态都是 工作 然后新增一行 drn = Tables("表A").addnew(1),此人员的工作状态就要显示 休息 drn("工作状态") = "休息" else drn("工作状态") = "工作" ’ 按照工作三次后,休息一次 这个规律。 如果查出来是这样: 编号(列) 工作状态(列) 001 工作 001 休息 001 工作 最后这三次中有一次是休息,就说明还要继续工作。’ 按照工作三次后,休息一次 这个规律。 [此贴子已经被作者于2019/1/15 17:40:24编辑过]
|
|
-- 作者:有点甜 -- 发布时间:2019/1/15 17:43:00 -- Dim flag As Boolean = True For Each dr As DataRow In drs If dr("工作状态") = "休息" Then flag = False Exit For End If Next If flag = True Then dm("工作状态") = "休息" Else dm("工作状态") = "工作" End If |
|
-- 作者:cyrollin -- 发布时间:2019/1/15 18:08:00 -- PERFECT, it solved my problem, thanks, tian :
|
|
-- 作者:有点甜 -- 发布时间:2019/1/15 18:10:00 -- 是的。 |