以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]多条件判断表达式问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=125299) |
||||
-- 作者:ygyzb -- 发布时间:2018/9/25 18:00:00 -- [求助]多条件判断表达式问题 请问,我想写一个表达式达到这种效果: 条件:当前“结果”项值为1且当前结果前一行值为0,0前面连续出现3个1,然后出现一个0,再出现连续2个1,最后出现3个以上的0。 满足以上条件则确认为1
[此贴子已经被作者于2018/9/25 18:00:31编辑过]
|
||||
-- 作者:有点甜 -- 发布时间:2018/9/25 18:03:00 -- 表达式无法做到,必须编写事件代码处理。
具体请做一个对应的项目发上来测试。 |
||||
-- 作者:ygyzb -- 发布时间:2018/9/25 18:08:00 -- 好的,已传,谢谢 |
||||
-- 作者:有点甜 -- 发布时间:2018/9/25 18:39:00 -- 以下是引用ygyzb在2018/9/25 18:08:00的发言:
好的,已传,谢谢
请正确上传,没有看到你上传的项目。 |
||||
-- 作者:ygyzb -- 发布时间:2018/9/25 18:48:00 --
|
||||
-- 作者:有点甜 -- 发布时间:2018/9/25 19:02:00 -- Dim t As Table = Tables("表A") For Each r As Row In t.Rows If r("第二列") = "1" AndAlso r.Index >= 4 Then \'当前结果前一行值为0,0前面连续出现3个1,然后出现一个0,再出现连续2个1,最后出现3个以上的0. Dim r1 = t.Rows(r.Index-1) \'前一行 Dim r2 = t.Rows(r.Index-2) \'前一行 Dim r3 = t.Rows(r.Index-3) \'前一行 Dim r4 = t.Rows(r.Index-4) \'前一行 If r1("第二列") = 0 AndAlso r1("第二列") = 1 AndAlso r1("第二列") = 1 AndAlso r1("第二列") = 1 Then msgbox("abc") Else msgbox("123") End If End If Next |
||||
-- 作者:ygyzb -- 发布时间:2018/9/25 19:30:00 -- 你好,我是想让表中每一行确认这一行的值自动显示{满足条件则显示1,不满足则为空}.谢谢 |
||||
-- 作者:有点蓝 -- 发布时间:2018/9/25 20:06:00 -- 没看懂,请手工计算符合条件的值,然后截图,并使用颜色标记一下符合条件的数据是怎么样的 |
||||
-- 作者:ygyzb -- 发布时间:2018/9/25 20:21:00 -- 此主题相关图片如下:qq截图20180925201944.png 上面截图那个就是满足条件的。
|
||||
-- 作者:有点蓝 -- 发布时间:2018/9/25 21:06:00 -- DataColChanged事件 If e.DataCol.Name = "结果" Dim t As Table = Tables(e.DataTable.Name) Dim idx As Integer = t.FindRow(e.DataRow) If idx >= 10 Then Dim str As String = "" Dim a As Integer = idx - 10 For i As Integer = idx To a Step -1 str = str & t.Rows(i)("结果") Next \'Output.Show(str) If str = "10111011000" Then e.DataRow("确认") = 1 End If End If End If 或者命令窗口直接执行 Dim t As Table = Tables("记录_5") Dim str As String = "***********" Dim s1 As String = "00011011101" t.StopRedraw For i As Integer = 0 To t.Rows.Count - 1 str = str.SubString(1) & t.Rows(i)("结果") If str = s1 Then Output.Show(str) t.Rows(i)("确认") = 1 End If Next t.ResumeRedraw |