Foxtable(狐表)用户栏目专家坐堂 → 这句代码到底什么意思?


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

主题:这句代码到底什么意思?

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


加好友 发短信
等级:小狐 帖子:324 积分:2504 威望:0 精华:0 注册:2020/3/2 23:15:00
这句代码到底什么意思?  发帖心情 Post By:2020/8/7 17:04:00 [只看该作者]

文档里有句代码:max = e.DataTable.Compute("Max(编号)","日期 = #" & e.DataRow("日期"& "# And [_Identify] <> " & e.DataRow("_Identify")

大致的意思是不是:在当前表里除当前行外的所有行里,找出“日期”为当前行日期的行里的所有行,然后再找出编号最大的那一行的编号,赋值给max。
那代码不应该是这样写吗?
max = e.DataTable.Compute("Max(编号)","日期 = #" & e.DataRow("日期"& "# And [_Identify] <> '& e.DataRow("_Identify") &'")

头疼,还请老师解答,很烦,自动编号搞了很久


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


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

_Identify是整数列,这个帮助没事就多看几遍:http://www.foxtable.com/webhelp/topics/1284.htm

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

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


加好友 发短信
等级:小狐 帖子:324 积分:2504 威望:0 精华:0 注册:2020/3/2 23:15:00
  发帖心情 Post By:2020/8/7 17:37:00 [只看该作者]

老师,那 <> 后面的 " 不是应该放在代码最后面的 ) 的前面吗?

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


加好友 发短信
等级:小狐 帖子:335 积分:2674 威望:0 精华:0 注册:2018/11/22 9:19:00
  发帖心情 Post By:2020/8/7 22:19:00 [只看该作者]

那句的意思是  计算当前行日期值的最大编号,但不能包括当前行。比如当前行是新增加的行  计算最大号的时候,要去除当前行
如果是新增加行 ,在新增加行的事件中 SqlComputer计算 可以取掉[_Identify] <> '& e.DataRow("_Identify") &',因为增加的行没有保存在外部表中

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


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

如果新增行没有保存,确实没有必要加,但是加了也不会有什么影响

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


加好友 发短信
等级:小狐 帖子:324 积分:2504 威望:0 精华:0 注册:2020/3/2 23:15:00
  发帖心情 Post By:2020/8/8 10:16:00 [只看该作者]


帮助文档里正确的代码是:
max = e.DataTable.Compute("Max(编号)","日期 = #" & e.DataRow("日期"& "# And [_Identify] <> " & e.DataRow("_Identify"))

但是,老师,那代码不应该是这样写吗:
max = e.DataTable.Compute("Max(编号)","日期 = #" & e.DataRow("日期"& "# And [_Identify] <> & e.DataRow("_Identify") &")

搞不明白

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


加好友 发短信
等级:超级版主 帖子:105473 积分:536350 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/8/8 10:51:00 [只看该作者]

自己看看结果

msgbox("日期 = #" & e.DataRow("日期"& "# And [_Identify] <> " & e.DataRow("_Identify"))

http://www.foxtable.com/webhelp/topics/0221.htm,搞不明白就多看看编程基础

 回到顶部