Foxtable(狐表)用户栏目专家坐堂 → 列中能否有动态变量?


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

主题:列中能否有动态变量?

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


加好友 发短信
等级:八尾狐 帖子:1916 积分:17140 威望:0 精华:0 注册:2014/7/29 19:09:00
列中能否有动态变量?  发帖心情 Post By:2017/4/8 11:17:00 [只看该作者]

比如在表A有一字段flt ,其值为"录入部门 = '" & MyGroup & "'

dim dr as datarow = datatables("表A").Find("flt is not null")
if dr isnot nothing then
    dim str as string = "se lect * from 订单 where " & dr("flt")
end if
上面的做法就是想生成实际的
str = "se lect * from 订单 where 录入部门 = '" & MyGroup & "' 用于查询

但上面红色部门的写法会导致出错,请教如果字段中有变量要怎么引用?

谢谢!

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


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

这种只能是动态编译了,参考http://www.foxtable.com/webhelp/scr/1487.htm

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


加好友 发短信
等级:版主 帖子:1693 积分:12123 威望:0 精华:7 注册:2013/7/11 10:52:00
  发帖心情 Post By:2017/4/8 12:13:00 [只看该作者]

或许可以用 Var变量过渡一下


dim str as string  = "se lect * from 订单 where 录入部门 = '" & Vars(dr("flt")) & "'"

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


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

楼主dr("flt")里存储的是:"录入部门 = '" & MyGroup & "'

这种内容,上面的方式的话要改变存储的内容才行

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


加好友 发短信
等级:版主 帖子:1693 积分:12123 威望:0 精华:7 注册:2013/7/11 10:52:00
  发帖心情 Post By:2017/4/8 12:48:00 [只看该作者]

那只是一个文本的分割拼接操作而已

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


加好友 发短信
等级:版主 帖子:1693 积分:12123 威望:0 精华:7 注册:2013/7/11 10:52:00
  发帖心情 Post By:2017/4/8 20:58:00 [只看该作者]

还是写一个吧

Dim s As String = dr("flt")
Dim ss() As String = s.Split("&")
Dim s3 As String = " "
Dim s4 As String
For i As Integer = 0 To ss.Length - 1
    If  i Mod 2 = 0 Then
        s4 = ss(i).TrimEnd(""""," ")
        If i > 0 Then
            s4 =   s4.TrimStart(" ","""")
        End If        
        s3 += s4
    Else
        s3 +=  Vars(ss(i).Trim())        
    End If
    'Output.show(s3)
Next
dim str as string = "sel ect * from 订单 where "  & s3

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


加好友 发短信
等级:八尾狐 帖子:1916 积分:17140 威望:0 精华:0 注册:2014/7/29 19:09:00
  发帖心情 Post By:2017/4/10 9:27:00 [只看该作者]

谢谢各位老师,谢谢逛逛,dr("flt")里存储的是:"录入部门 = '" & MyGroup & "'
MyGroup就是想代表一个变量,因为不同的用户登录可能MyGroup就不同,想根据这个条件加载不同的数据,
但可能会存在几个变量的情况,感觉拆分起来有点麻烦,自己研究看看再说了.

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/4/10 9:32:00 [只看该作者]

 只要你的条件表达式不是太复杂,那就能拆分。越是固定格式的越容易拆。

 

 如果你是希望自定义的话,那最好还是用动态编译。


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


加好友 发短信
等级:七尾狐 帖子:1731 积分:11255 威望:0 精华:0 注册:2011/12/15 22:06:00
  发帖心情 Post By:2017/4/10 9:48:00 [只看该作者]

尝试用cexp方法代替,直接写变量思路换下就行了

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


加好友 发短信
等级:版主 帖子:1693 积分:12123 威望:0 精华:7 注册:2013/7/11 10:52:00
  发帖心情 Post By:2017/4/10 9:51:00 [只看该作者]

6楼的代码就是根据楼主的条件写的,只要格式不变,多个条件也行。前提是要用Var变量(我没检查变量是否存在)。
楼主可以测试一下。


当然楼主的方法,个人认为不是很方便。我会另开贴说明我的建议。

 回到顶部