以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- IF问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=133997) |
|||||||||||||||||||||||||||
-- 作者:jick0526 -- 发布时间:2019/4/25 2:52:00 -- IF问题 老师,请问下,如果A列一样,B列不为空,那么C列自动输入“正确”,如果B列有重复,那么默认有重复的行只要输入一次就可以,不会重复输入,其他行为空,这样的代码要怎么写,麻烦老师帮我写下,谢谢!
下面是例子,例如A列001一样,但是B列的电视重复了,所以在C列的电视行只要输入一次1次就可以了,不需要重复输入。
|
|||||||||||||||||||||||||||
-- 作者:有点甜 -- 发布时间:2019/4/25 10:50:00 -- 参考代码
Select Case e.DataCol.name |
|||||||||||||||||||||||||||
-- 作者:jick0526 -- 发布时间:2019/4/25 15:39:00 -- 老师,代码我修改了下,但是只有有重复的行,C列才会输入1,如果只有单行的,C列都不会自动输入,麻烦老师帮我修改下,谢谢! Select Case e.DataCol.name
Case "A列", "B列"
Dim drs As List(Of DataRow) = e.DataTable.Select("A列 = \'" & e.DataRow("A列") & "\'", "B列 desc")
If drs.count > 0 Then
drs(0)("C列") = 1
For i As Integer = 1 To drs.count-1
drs(i)("C列") = Nothing
Next
End If
End Select
|
|||||||||||||||||||||||||||
-- 作者:有点蓝 -- 发布时间:2019/4/25 15:55:00 -- Select Case e.DataCol.name Case "A列","B列" Dim dr As DataRow = e.DataRow If dr.IsNull("A列") = False AndAlso dr.IsNull("B列") = False Then If e.DataTable.Compute("Count([_Identify])","A列 = \'" & dr("A列") & "\' And B列 = \'" & dr("B列") & "\'") > 1 Then e.DataRow("c") = Nothing Else e.DataRow("c") = "正确" End If End If End Select |
|||||||||||||||||||||||||||
-- 作者:jick0526 -- 发布时间:2019/4/25 17:19:00 -- 老师,发现一个问题,如果C列不小心删除了,再重置A列或者B列时,B列有重复的行,C列不会再自动输入,只有没重复的行才会自动输入。 |
|||||||||||||||||||||||||||
-- 作者:有点蓝 -- 发布时间:2019/4/25 17:36:00 -- Select Case e.DataCol.name Case "第一列","第二列" Dim dr As DataRow = e.DataRow If dr.IsNull("第一列") = False AndAlso dr.IsNull("第二列") = False Then If e.DataTable.Compute("Count([_Identify])","第一列 = \'" & dr("第一列") & "\' And 第二列 = \'" & dr("第二列") & "\' and [_Identify] < " & e.DataRow("_Identify")) > 0 Then e.DataRow("第三列") = Nothing Else e.DataRow("第三列") = "正确" End If End If End Select
|