以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  如何判断菜单中的组合框中的内容为空?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=186393)

--  作者:HANZHIGANG
--  发布时间:2023/4/26 9:21:00
--  如何判断菜单中的组合框中的内容为空?
Dim s1 As RibbonMenu.ComboBox = RibbonTabs("月末报表").Groups("月末报表").Items("工具栏1").Items("年份")
Dim s2 As RibbonMenu.ComboBox = RibbonTabs("月末报表").Groups("月末报表").Items("工具栏1").Items("月份")

Dim y As String = s1.text
Dim m As String = s2.text

Dim dt1 As New Date(y, m, 1)
Dim dt2 As New Date(y, m, Date.DaysInMonth(y, m)) \'获取该月的最后一天
Dim Filter As String
Filter = "((车辆类型 = \'外协车\' Or 车辆类型 = \'外协单位\') And (调度日期 >= \'" & dt1 & "\' And 调度日期 <= \'" & dt2 & "\')) Or (车辆类型 = \'自营车\' And (结算日期 >= \'" & dt1 & "\' And 结算日期 <= \'" & dt2 & "\'))" 

If y = "" OrElse m = "" Then
    MessageBox.Show("请填写报表月份后再加载数据!", "提示")
Else 
    Tables("月末报表").DataTable.loadfilter = Filter
    Tables("月末报表").DataTable.load
    DataTables("月末报表").DataCols("二次").RaiseDataColChanged()
End If

代码如上,当组合框为空时,出现如下错误提示:
.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2022.8.18.1
错误所在事件:菜单,加载结账数据,Click
详细错误信息:
从字符串“”到类型“Integer”的转换无效。
输入字符串的格式不正确。

--  作者:有点蓝
--  发布时间:2023/4/26 9:25:00
--  
Dim s1 As RibbonMenu.ComboBox = RibbonTabs("月末报表").Groups("月末报表").Items("工具栏1").Items("年份")
Dim s2 As RibbonMenu.ComboBox = RibbonTabs("月末报表").Groups("月末报表").Items("工具栏1").Items("月份")
If s1.text = "" OrElse s2.text= "" Then
    MessageBox.Show("请填写报表月份后再加载数据!", "提示")
Else 
Dim y As integer= s1.text
Dim m As integer= s2.text

Dim dt1 As New Date(y, m, 1)
Dim dt2 As New Date(y, m, Date.DaysInMonth(y, m)) \'获取该月的最后一天
Dim Filter As String
Filter = "((车辆类型 = \'外协车\' Or 车辆类型 = \'外协单位\') And (调度日期 >= \'" & dt1 & "\' And 调度日期 <= \'" & dt2 & "\')) Or (车辆类型 = \'自营车\' And (结算日期 >= \'" & dt1 & "\' And 结算日期 <= \'" & dt2 & "\'))" 
    Tables("月末报表").DataTable.loadfilter = Filter
    Tables("月末报表").DataTable.load
    DataTables("月末报表").DataCols("二次").RaiseDataColChanged()
End If