以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]如何用代码判断DataTable是否是空表?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=68787)

--  作者:青鸟
--  发布时间:2015/5/25 10:43:00
--  [求助]如何用代码判断DataTable是否是空表?
我在导航中加了段代码:DataTables("合同or费用台账")和DataTables("VO报表台账") 有可能是空表(未录入任何数据),如果不加判断要报错,加了绿色判断后,如果是空表,报错:索引越界。红色判断写法又不正确,请教怎么办?

Dim Page As WinForm.TopicPage
Page = e.Form.Controls("TopicBar1").Pages.Add("记录信息","记录信息")
If DataTables("合同or费用台账").DataRows(0).IsNull("合同or费用编号") Then
    Page.Links.Add("尚未结算付款的记录","尾款未付清(0)条" )
Else
    Dim cnt1 As Integer = DataTables("合同or费用台账").Compute("Count(尾款是否结清)","尾款是否结清 = False")
    Page.Links.Add("尚未结算付款的记录","尾款未付清(" & cnt1 & ")条" )
End If

If DataTables("VO报表台账") IsNot System.DBNull Then
    Dim cnt2 As Integer = DataTables("VO报表台账").Compute("Count(审核状态)","审核状态 = 审核中")
    Dim cnt3 As Integer = DataTables("VO报表台账").Compute("Count(审核状态)","审核状态 = 未审核 Or 审核状态 IsNull")
    Dim cnt4 As Integer = DataTables("VO报表台账").Compute("Count(审核状态)","审核状态 = 不予审核")
    Page.Links.Add("正在审核的VO记录","VO正在审核(" & cnt2 & ")条" )
    Page.Links.Add("尚未审核的VO记录","VO尚未审核(" & cnt3 & ")条" )
    Page.Links.Add("不予审核的VO记录","VO不予审核(" & cnt4 & ")条" )
End If

--  作者:Bin
--  发布时间:2015/5/25 10:44:00
--  
If DataTables("合同or费用台账").DataRows.count>0 then
Dim Page As WinForm.TopicPage
Page = e.Form.Controls("TopicBar1").Pages.Add("记录信息","记录信息")
If DataTables("合同or费用台账").DataRows(0).IsNull("合同or费用编号") Then
    Page.Links.Add("尚未结算付款的记录","尾款未付清(0)条" )
Else
    Dim cnt1 As Integer = DataTables("合同or费用台账").Compute("Count(尾款是否结清)","尾款是否结清 = False")
    Page.Links.Add("尚未结算付款的记录","尾款未付清(" & cnt1 & ")条" )
End If

If DataTables("VO报表台账") IsNot System.DBNull Then
    Dim cnt2 As Integer = DataTables("VO报表台账").Compute("Count(审核状态)","审核状态 = 审核中")
    Dim cnt3 As Integer = DataTables("VO报表台账").Compute("Count(审核状态)","审核状态 = 未审核 Or 审核状态 IsNull")
    Dim cnt4 As Integer = DataTables("VO报表台账").Compute("Count(审核状态)","审核状态 = 不予审核")
    Page.Links.Add("正在审核的VO记录","VO正在审核(" & cnt2 & ")条" )
    Page.Links.Add("尚未审核的VO记录","VO尚未审核(" & cnt3 & ")条" )
    Page.Links.Add("不予审核的VO记录","VO不予审核(" & cnt4 & ")条" )
End If

end if

--  作者:青鸟
--  发布时间:2015/5/25 11:30:00
--  
问题解决了,谢谢Bin!
另外,我想给Link加个图标,在模版里面好办,用代码怎么写呢?红色代码出错:Iconfile不是Links的成员
Dim Page As WinForm.TopicPage
Page = e.Form.Controls("TopicBar1").Pages.Add("记录信息","记录信息")
If DataTables("合同or费用台账").DataRows.count > 0 Then
    Dim cnt1 As Integer = DataTables("合同or费用台账").Compute("Count(尾款是否结清)","尾款是否结清 = False")
    Page.Links.Add("尚未结算付款的记录","尾款未付清(" & cnt1 & ")条" )
    Page.Links.Ic
End If


--  作者:青鸟
--  发布时间:2015/5/25 11:31:00
--  
Page.Links.Ic
--  作者:Bin
--  发布时间:2015/5/25 11:33:00
--  
是 ImageFile  
--  作者:青鸟
--  发布时间:2015/5/25 11:52:00
--  
还是不行啊

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

--  作者:大红袍
--  发布时间:2015/5/25 11:55:00
--  

http://www.foxtable.com/help/topics/0859.htm

 


--  作者:青鸟
--  发布时间:2015/5/25 12:25:00
--  
追问:如何判断Pages(记录信息).Links(尚未结算付款的记录) 是否已动态加载呢?如果没用这个判断的话,报错:“记录信息”未定义

Dim Page As WinForm.TopicPage
Page = e.Form.Controls("TopicBar1").Pages.Add("记录信息","记录信息")
If DataTables("合同or费用台账").DataRows.count > 0 Then
    Dim cnt1 As Integer = DataTables("合同or费用台账").Compute("Count(尾款是否结清)","尾款是否结清 = False")
    Page.Links.Add("尚未结算付款的记录","尾款未付清记录(" & cnt1 & ")条" )
    If Forms("入口窗口").Controls("TopicBar1").Pages(记录信息).Links(尚未结算付款的记录) = True Then
        Dim tl As WinForm.TopicLink
        tl = Forms("入口窗口").Controls("TopicBar1").Pages(记录信息).Links(尚未结算付款的记录)
        tl.ImageFile = "new.ico"
    End If
End If

--  作者:Bin
--  发布时间:2015/5/25 13:42:00
--  
pages 应该有个 Contains 方法

if Forms("入口窗口").Controls("TopicBar1").Pages.Contains ("记录信息") then   \' 说明存在这个页面

--  作者:青鸟
--  发布时间:2015/5/25 14:33:00
--  
还是不行啊:
Page = e.Form.Controls("TopicBar1").Pages.Add("记录信
图片点击可在新窗口打开查看此主题相关图片如下:360截图20150525143504961.png
图片点击可在新窗口打开查看
息","记录信息")
Dim Page As WinForm.TopicPage
If DataTables("合同or费用台账").DataRows.count > 0 Then
    Dim cnt1 As Integer = DataTables("合同or费用台账").Compute("Count(尾款是否结清)","尾款是否结清 = False")
    Page.Links.Add("尚未结算付款的记录","尾款未付清记录(" & cnt1 & ")条" )

    If Forms("入口窗口").Controls("TopicBar1").Pages.Contains ("记录信息") Then   \' 判断"记录信息"页面是否存在
        Dim tl As WinForm.TopicLink
        tl = Forms("入口窗口").Controls("TopicBar1").Pages(记录信息).Links(尚未结算付款的记录)
        tl.ImageFile = "new.ico"
    End If
End If