以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 看了很多遍帮助,还是不太懂“&”的使用 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=10803) |
-- 作者:kensou11111 -- 发布时间:2011/6/24 10:26:00 -- 看了很多遍帮助,还是不太懂“&”的使用 例如要计算某个产品的销售数量,要计算的产品名称由用户输入,假定输入的结果保存在全局变量Vars("产品")中: Dim Sum As Integer 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("前壳型号") & " & \')\'\'") |
-- 作者:狐狸爸爸 -- 发布时间:2011/6/24 10:38:00 -- 因为表达式中的字符串要用单引号括起来,这个单引号必须手工输入或合成。
这个有系统说明: http://help.foxtable.com/topics/1284.htm
|
-- 作者:kensou11111 -- 发布时间:2011/6/24 10:43:00 -- 这个说明我看了很多遍了,自己也试了不少次,但还是不甚了了,尤其是&的使用更是理解不了,像上面的例子就是帮助中的例子,我还是不理解他为什么要加& |
-- 作者:狐狸爸爸 -- 发布时间:2011/6/24 10:54:00 -- Dim QKXH As DataRow
你要是用的是控件的值,也就是value属性,不是控件本身。 [此贴子已经被作者于2011-6-24 10:54:17编辑过]
|
-- 作者:kensou11111 -- 发布时间:2011/6/24 15:30:00 -- 能否给我解释下"[产品] = \'" & Vars("产品") & "\'"为什么不能是"[产品] = \'Vars("产品")\'",而必须加上"[产品] = \'" & Vars("产品") & "\'" 中我标示的绿色部分?
我现在有几个比较复杂的表达式要合成,弄不清楚这个的话很难完成这些表达式啊! |
-- 作者:狐狸爸爸 -- 发布时间:2011/6/24 15:44:00 -- 假定Vars("产品")的只是pd01,如果vars("产品")直接放在双引号中,那么他的值就是vars("产品")这几个字符,而不是pd01.
字符串就是字符串,系统不会智能到从字符串中找出代码来执行的。 |
-- 作者:kensou11111 -- 发布时间: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编辑过]
|
-- 作者:狐狸爸爸 -- 发布时间:2011/6/24 16:39:00 -- e.Form.controls("前壳型号").Value & "(" & e.Form.controls("前壳喷漆").Value & ")" |
-- 作者:kensou11111 -- 发布时间: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 & ")" & "\'") |
-- 作者:狐狸爸爸 -- 发布时间:2011/6/24 17:09:00 -- 看看这节内容:
http://help.foxtable.com/topics/0102.htm
|