Foxtable(狐表)用户栏目专家坐堂 → [求助]到类型“Long”的转换无效。


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

主题:[求助]到类型“Long”的转换无效。

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


加好友 发短信
等级:三尾狐 帖子:782 积分:6705 威望:0 精华:0 注册:2017/8/31 12:07:00
[求助]到类型“Long”的转换无效。  发帖心情 Post By:2022/7/23 8:49:00 [只看该作者]

If e.Table.Current IsNot Nothing Then
    DataTables("订单").LoadFilter = "客户编号 = " & e.Table.Current("客户编号") And ("结单 = False Or 结单 Is null")
Else
    DataTables("订单").LoadFilter = "[_Identify] is null"
End If
DataTables("订单").Load()

 

代码如上,麻烦老师看一下哪里出错了?自己搞蒙了,谢谢!

 

.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2022.7.3.1
错误所在事件:客户,CurrentChanged
详细错误信息:
从字符串“客户编号 = KH-0047”到类型“Long”的转换无效。
输入字符串的格式不正确。


 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106242 积分:540333 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/7/23 8:58:00 [只看该作者]


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


加好友 发短信
等级:三尾狐 帖子:782 积分:6705 威望:0 精华:0 注册:2017/8/31 12:07:00
  发帖心情 Post By:2022/7/23 9:03:00 [只看该作者]

一直看了几遍了,高低搞蒙了,麻烦老师指出错误,谢谢!

 

[此贴子已经被作者于2022/7/23 9:13:46编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106242 积分:540333 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/7/23 9:13:00 [只看该作者]

表达式中的日期用符号#括起来,数值则不需要任何符号括起来,这些和代码中的格式是一样的,唯一不同的是字符串用单引号括起来。

例如:

Tables("订单").Filter = "[产品] = 'PD01'"  '字符用单引号括起来
Tables("订单").Filter = "[日期] = #3/17/1999#"  '日期用#括起来
Tables("订单").Filter = "[折扣] = 0.1"  '数值直接使用


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


加好友 发短信
等级:三尾狐 帖子:782 积分:6705 威望:0 精华:0 注册:2017/8/31 12:07:00
  发帖心情 Post By:2022/7/23 9:13:00 [只看该作者]

一直测试加了单引号,还是不行啊!

改写为:

 DataTables("订单").LoadFilter = "客户编号 = '" & e.Table.Current("客户编号") & "'" And ("结单 = False Or 结单 Is null")

报错:

.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2022.7.3.1
错误所在事件:客户,CurrentChanged
详细错误信息:
从字符串“客户编号 = 'KH-0047'”到类型“Long”的转换无效。
输入字符串的格式不正确。

 

通过定义变量解决,最后还是没搞明白:

Dim Filter As String = "客户编号 = " & e.Table.Current("客户编号") & "And (结单 = False Or 结单 Is null)"
If e.Table.Current IsNot Nothing Then
    DataTables("订单").LoadFilter = " '" & Filter & "'"
Else
    DataTables("订单").LoadFilter = "[_Identify] is null"
End If
DataTables("订单").LoadPage = 0
DataTables("订单").Load()

[此贴子已经被作者于2022/7/23 9:33:51编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106242 积分:540333 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/7/23 9:40:00 [只看该作者]

和定义变量没有任何关系,自己比较一下2个表达式有什么不同?

DataTables("订单").LoadFilter = "客户编号 = '" & e.Table.Current("客户编号") & "'" And ("结单 = False Or 结单 Is null")

Dim Filter As String = "客户编号 = " & e.Table.Current("客户编号") & "And (结单 = False Or 结单 Is null)"

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


加好友 发短信
等级:三尾狐 帖子:782 积分:6705 威望:0 精华:0 注册:2017/8/31 12:07:00
  发帖心情 Post By:2022/7/23 10:06:00 [只看该作者]

好的,学习了,谢谢!

 回到顶部