以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]求写代码?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=51883)

--  作者:狂风暴雨狂波
--  发布时间:2014/6/5 1:50:00
--  [求助]求写代码?

表A中有一逻辑列,名称为“是否过账”,如果该逻辑列中有“未过账”的部分就进行“过账”处理,如果没有“未过账”,全部为“已过账”的话,就进行提示“没有要处理的数据,已全部过账啦!”

 For Each r As Row In Tables("表A").Rows
            If  r("是否过账") = True Then
                MessageBox.Show("没有要处理的数据哟,已全部过账啦!", "提示", MessageBoxButtons.ok)
            Else
                r("是否过账") = True
            End If
        Next
不知道代码错在哪?要么没提示,要么提示框很多,烦请高手帮忙修改一下,谢谢!


--  作者:land089
--  发布时间:2014/6/5 3:46:00
--  
你用的遍历那么就会对每行就行判断
            If  r("是否过账") = True Then
                MessageBox.Show("没有要处理的数据哟,已全部过账啦!", "提示", MessageBoxButtons.ok)
            Else
                r("是否过账") = True
            End If
你这样写的话有一行列 r("是否过账") = True 那么MessageBox.Show一次所以提示框很多
可以使用find或类似语句,如果找到r("是否过账") = false的行那么令r("是否过账")=true就可以了

--  作者:狐狸爸爸
--  发布时间:2014/6/5 7:44:00
--  

Dim cnt as integer

For Each r As Row In Tables("表A").Rows
            If  r("是否过账") = false Then
                r("是否过账") = True

                cnt = cnt +1
            End If
Next

if cnt = 0 then

     MessageBox.Show("没有要处理的数据哟,已全部过账啦!", "提示", MessageBoxButtons.ok)
else

    MessageBox.Show("过账完毕,合计过账" & cnt & "条记录", "提示", MessageBoxButtons.ok)
end if


--  作者:land089
--  发布时间:2014/6/5 11:42:00
--  
精粹啊啊啊!
--  作者:don
--  发布时间:2014/6/5 12:32:00
--  

Dim s1 as string

Dim drs as List(of Datarow) =  DataTables("表A").Select("是否过账= 0")

if  drs.count > 0 Then 

   For Each dr As dataRow In drs     
         dr("是否过账") = True

   Next

End if

if drs.count = 0 then

       s1 = "没有要处理的数据哟,已全部过账啦!"     

else

      s1 = "过账完毕,合计过账" &  drs.count   & "条记录"!"

End if 

MessageBox.Show(s1, "提示", MessageBoxButtons.ok)

[此贴子已经被作者于2014-6-5 12:32:57编辑过]