Foxtable(狐表)用户栏目专家坐堂 → [求助]如何用代码判断DataTable是否是空表?


  共有3339人关注过本帖树形打印复制链接

主题:[求助]如何用代码判断DataTable是否是空表?

帅哥哟,离线,有人找我吗?
青鸟
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:151 积分:1110 威望:0 精华:0 注册:2015/1/24 15:26:00
[求助]如何用代码判断DataTable是否是空表?  发帖心情 Post By:2015/5/25 10:43:00 [只看该作者]

我在导航中加了段代码: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
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By: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

 回到顶部
帅哥哟,离线,有人找我吗?
青鸟
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:151 积分:1110 威望:0 精华:0 注册:2015/1/24 15:26:00
  发帖心情 Post By: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


 回到顶部
帅哥哟,离线,有人找我吗?
青鸟
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:151 积分:1110 威望:0 精华:0 注册:2015/1/24 15:26:00
  发帖心情 Post By:2015/5/25 11:31:00 [只看该作者]

Page.Links.Ic

 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2015/5/25 11:33:00 [只看该作者]

是 ImageFile  

 回到顶部
帅哥哟,离线,有人找我吗?
青鸟
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:151 积分:1110 威望:0 精华:0 注册:2015/1/24 15:26:00
  发帖心情 Post By:2015/5/25 11:52:00 [只看该作者]

还是不行啊

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

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/5/25 11:55:00 [只看该作者]


 回到顶部
帅哥哟,离线,有人找我吗?
青鸟
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:151 积分:1110 威望:0 精华:0 注册:2015/1/24 15:26:00
  发帖心情 Post By: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
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2015/5/25 13:42:00 [只看该作者]

pages 应该有个 Contains 方法

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

 回到顶部
帅哥哟,离线,有人找我吗?
青鸟
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:151 积分:1110 威望:0 精华:0 注册:2015/1/24 15:26:00
  发帖心情 Post By: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


 回到顶部
总数 12 1 2 下一页