Foxtable(狐表)用户栏目专家坐堂 → 报错提示


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

主题:报错提示

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


加好友 发短信
等级:一尾狐 帖子:461 积分:4271 威望:0 精华:0 注册:2019/8/5 17:49:00
报错提示  发帖心情 Post By:2022/12/6 22:24:00 [显示全部帖子]

蓝总:晚上好!
.NET Framework 版本:4.0.30319.17929
Foxtable 版本:2022.8.18.1
错误所在事件:
详细错误信息:
无法在 System.Int32 和 System.String 上执行“=”操作。

图片点击可在新窗口打开查看
我在窗口里加了两个ComboBox控件,都在valuechanged加入相同的代码:
Dim Filter1 As String
Filter1 = "年度 = '" & e.Form.Controls("ComboBox1").Value & "' And 月份 ='" & e.Form.Controls("ComboBox2").Value & "'"
Tables("数据报表_table1").Filter = filter1
打开窗口就乳开头报错,把And 月份 ='" & e.Form.Controls("ComboBox2").Value & "'删掉就正常了,这是为什么呢



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


加好友 发短信
等级:一尾狐 帖子:461 积分:4271 威望:0 精华:0 注册:2019/8/5 17:49:00
  发帖心情 Post By:2022/12/6 22:47:00 [显示全部帖子]

Filter1 = "年度 = '" & e.Form.Controls("ComboBox1").Value & "' And 月份 =" & e.Form.Controls("ComboBox2").Value
提示:语法错误:“=”运算符后缺少操作数。
[此贴子已经被作者于2022/12/6 22:47:42编辑过]

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


加好友 发短信
等级:一尾狐 帖子:461 积分:4271 威望:0 精华:0 注册:2019/8/5 17:49:00
  发帖心情 Post By:2022/12/6 23:15:00 [显示全部帖子]

显示月份为空,但是我在afterload里已经加入e.Form.Controls("ComboBox2").Value = Date.Today.month - 1,好像是月份没有获取到值,现在多试聊几次又可以了,哎

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


加好友 发短信
等级:一尾狐 帖子:461 积分:4271 威望:0 精华:0 注册:2019/8/5 17:49:00
  发帖心情 Post By:2022/12/8 17:54:00 [显示全部帖子]


textchanged代码:
MessageBox.Show(e.Form.Controls("ComboBox1").value)
MessageBox.Show(e.Form.Controls("ComboBox2").value)
Dim g As New GroupTableBuilder("统计表5", DataTables("部门分解指标完成情况"), " 年度 = '" & e.Form.Controls("ComboBox1").text & "'And 月份 =" & e.Form.Controls("ComboBox2").text)
MessageBox.Show(e.Form.Controls("ComboBox2").value)
g.Groups.AddDef("年度")
g.Groups.AddDef("月份")
g.Groups.AddDef("分解后指标", "指标")
g.Groups.AddDef("单位")
g.Totals.AddDef("目标值")
g.Totals.AddDef("完成情况")
g.Build()
Dim t As Table = e.Form.Controls("Table1").Table
t.DataSource = g.BuildDataSource
'''''
''' 
DataTables("数据报表_table1").DataCols.Add("进度", GetType(Double))
DataTables("数据报表_table1").DataCols.Add("序号", GetType(Integer))
Tables("数据报表_Table1").SetColVisibleWidth("序号|40|年度|60|月份|40|指标|200|单位|60|目标值|120|完成情况|120|进度|150")
For Each dr1 As DataRow In DataTables("指标排序").DataRows
    Dim dr2 As DataRow = DataTables("数据报表_Table1").Find("指标='" & dr1("指标") & "'")
    If dr2 IsNot Nothing Then 
    dr2("序号") = dr1("序号")
End If
Next
'‘填充排列序号

Tables ("数据报表_Table1").Sort = ("序号")'排序
afterload代码?:
e.Form.Controls("ComboBox1").text = Date.Today.Year 
e.Form.Controls("ComboBox2").text = Date.Today.month -1

蓝总“:
还是不行,同样的错误。但是要把月份删掉,改成:Dim g As New GroupTableBuilder("统计表5", DataTables("部门分解指标完成情况"), " 年度 = " & e.Form.Controls("ComboBox1").text),没错,
而且,e.Form.Controls("ComboBox1").text 有数值,e.Form.Controls("ComboBox2").text 为空

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


加好友 发短信
等级:一尾狐 帖子:461 积分:4271 威望:0 精华:0 注册:2019/8/5 17:49:00
  发帖心情 Post By:2022/12/8 20:57:00 [显示全部帖子]

将afterload:
e.Form.Controls("ComboBox1").text = Date.Today.Year
e.Form.Controls("ComboBox2").text = Date.Today.month -1
这样写,e.Form.Controls("ComboBox2").text 没有获取到值
但是上下调过来写,e.Form.Controls("ComboBox2").text又能获取到值,哈,不知道为什么,感觉有BUG
e.Form.Controls("ComboBox2").text = Date.Today.month -1
e.Form.Controls("ComboBox1").text = Date.Today.Year


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


加好友 发短信
等级:一尾狐 帖子:461 积分:4271 威望:0 精华:0 注册:2019/8/5 17:49:00
  发帖心情 Post By:2022/12/8 21:25:00 [显示全部帖子]

图片点击可在新窗口打开查看
是控件combobox1的value代码,我把年和月代码设置一样,都是生成临时表,但是combobox1和combobox2代码一样就报错,把combobox1代码的and 月份= " & e.Form.Controls("ComboBox2").value去掉就不报错,不知道为啥,程序太多了,连接sql,不好上传

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


加好友 发短信
等级:一尾狐 帖子:461 积分:4271 威望:0 精华:0 注册:2019/8/5 17:49:00
  发帖心情 Post By:2022/12/8 22:24:00 [显示全部帖子]

蓝总:你真厉害,这样你都可以判断出来。
打开窗口,窗口控件COMBOBOX01和控件COMBOBOX02中的valuechanged的代码触发比窗口afterload中代码要快,控件的值在afterload还没来得及赋值,上面已经触发,空值就报错。加了判断让打开窗口时不触发控件valuechanged的代码就消除故障了。谢谢!

 回到顶部