Foxtable(狐表)用户栏目专家坐堂 → 看了很多遍帮助,还是不太懂“&”的使用


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

主题:看了很多遍帮助,还是不太懂“&”的使用

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


加好友 发短信
等级:童狐 帖子:255 积分:2347 威望:0 精华:0 注册:2011/4/25 9:23:00
看了很多遍帮助,还是不太懂“&”的使用  发帖心情 Post By:2011/6/24 10:26:00 [只看该作者]

例如要计算某个产品的销售数量,要计算的产品名称由用户输入,假定输入的结果保存在全局变量Vars("产品")中:

Dim Sum As Integer
Sum = 
DataTables("订单").Compute("Sum(数量)", "[产品] = '" & Vars("产品") & "'")

Compute的第二个参数为计算条件表达式,该表达式分为三部分:

"[产品] = '" & Vars("产品") & "'"

假定全局变量Vars("产品")的值为PD01,组合三部分的内容后,这个表达式就等效于:

"[产品] = 'PD01'"

 

按这上面的意思,Vars("产品") 就已经代表了PD01了,为什么还要加上两个&和两个",变成'" & Vars("产品") & "' 来等效'PD01'?而不是用'Vars("产品")'等效'PD01'

 

我现在有e.Form.controls("前壳型号")  e.Form.controls("前壳喷漆") 两个控件的内容,假设前壳第一个的内容是ABC,第二个控件的内容是DEF,我希望能把他们连接成ABC(DEF),然后将其作为查找条件,该如何修改如下编码

 

Dim QKXH As DataRow

QKXH = DataTables("后工序临时结果").Find("[型号规格] = '" & e.Form.controls("前壳型号") & " & '(' & " & e.Form.controls("前壳型号") & " & ')''")


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


加好友 发短信
等级:管理员 帖子:47448 积分:251048 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/6/24 10:38:00 [只看该作者]

因为表达式中的字符串要用单引号括起来,这个单引号必须手工输入或合成。

 

这个有系统说明:

http://help.foxtable.com/topics/1284.htm

 


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


加好友 发短信
等级:童狐 帖子:255 积分:2347 威望:0 精华:0 注册:2011/4/25 9:23:00
  发帖心情 Post By:2011/6/24 10:43:00 [只看该作者]

这个说明我看了很多遍了,自己也试了不少次,但还是不甚了了,尤其是&的使用更是理解不了,像上面的例子就是帮助中的例子,我还是不理解他为什么要加&

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


加好友 发短信
等级:管理员 帖子:47448 积分:251048 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/6/24 10:54:00 [只看该作者]

Dim QKXH As DataRow
QKXH = DataTables("后工序临时结果").Find("[型号规格] = '" & e.Form.controls("前壳型号").Value & "'")

 

你要是用的是控件的值,也就是value属性,不是控件本身。

[此贴子已经被作者于2011-6-24 10:54:17编辑过]

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


加好友 发短信
等级:童狐 帖子:255 积分:2347 威望:0 精华:0 注册:2011/4/25 9:23:00
  发帖心情 Post By:2011/6/24 15:30:00 [只看该作者]

能否给我解释下"[产品] = '" & Vars("产品") & "'"为什么不能是"[产品] = 'Vars("产品")'",而必须加上"[产品] = '" & Vars("产品") & "'"   中我标示的绿色部分?

 

我现在有几个比较复杂的表达式要合成,弄不清楚这个的话很难完成这些表达式啊!


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


加好友 发短信
等级:管理员 帖子:47448 积分:251048 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/6/24 15:44:00 [只看该作者]

假定Vars("产品")的只是pd01,如果vars("产品")直接放在双引号中,那么他的值就是vars("产品")这几个字符,而不是pd01.

 

字符串就是字符串,系统不会智能到从字符串中找出代码来执行的。


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


加好友 发短信
等级:童狐 帖子:255 积分:2347 威望:0 精华:0 注册:2011/4/25 9:23:00
  发帖心情 Post By:2011/6/24 16:33:00 [只看该作者]

那我要把如下这4段内容连接起来,表达式究竟要怎么写啊?

 

e.Form.controls("前壳型号").Value  (   e.Form.controls("前壳喷漆").Value       假设前壳第一个的内容是ABC,第二个控件的内容是DEF,我希望能把他们连接成ABC(DEF)

[此贴子已经被作者于2011-6-24 16:33:58编辑过]

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


加好友 发短信
等级:管理员 帖子:47448 积分:251048 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/6/24 16:39:00 [只看该作者]

e.Form.controls("前壳型号").Value &   "("  &   e.Form.controls("前壳喷漆").Value  &  ")"

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


加好友 发短信
等级:童狐 帖子:255 积分:2347 威望:0 精华:0 注册:2011/4/25 9:23:00
  发帖心情 Post By:2011/6/24 16:51:00 [只看该作者]

以下是引用狐狸爸爸在2011-6-24 16:39:00的发言:
e.Form.controls("前壳型号").Value &   "("  &   e.Form.controls("前壳喷漆").Value  &  ")"

现在可以了,但在帮助里有一句

“表达式本身是一个字符串,所以必须用双引号括起来;表达式内部的字符串,用单引号括起来。”

 

"("   ")" 这两个括号作为表达式内部的字符串,按上面的意思应该改为单引号,但为什么我改成单引号会说我语法错误,而使用双引号却是正确的呢?

QKXH = DataTables("后工序临时结果").Find("[材料名称] = '" & e.Form.controls("前壳用料").Value & "' And [型号规格] = '" & e.Form.controls("前壳型号").Value &   "("  &   e.Form.controls("前壳喷漆").Value  &  ")" & "'")


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


加好友 发短信
等级:管理员 帖子:47448 积分:251048 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/6/24 17:09:00 [只看该作者]

看看这节内容:

 

http://help.foxtable.com/topics/0102.htm

 


 回到顶部