以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  loadfilter问题  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=115299)

--  作者:swagger
--  发布时间:2018/3/4 18:58:00
--  loadfilter问题

[此贴子已经被作者于2018/3/4 19:10:24编辑过]

--  作者:有点甜
--  发布时间:2018/3/4 20:24:00
--  
请具体一点你的问题。
--  作者:swagger
--  发布时间:2018/3/4 22:25:00
--  
我的问题是,


Tables("窗口1_Table1").DataTable.LoadFilter = "[订单id] = \'123\'"
Tables("商窗口1_Table1").DataTable.Load

窗口1_Table1设置为副本,绑定订单表

如果不设置“窗口1_Table1"为sql table, Select * F rom {订单} Where [_Identify] Is Null, 那么直接用loadfilter,那么后台订单表也被筛选了,影响其他人使用订单表。如果设置sql table又有两个问题,1.没法显示表达式列 2. 窗口的控件无法显示在table1上,譬如 已付款按钮 使订单表的已付款逻辑列打勾,但是table1的已付款不能显示为true(打勾)


我是想在 "窗口1_Table1" 列出订单id为123的所有订单,并且table1可以显示表达式列,以及table1能够显示窗口的控件的点击或者输入的效果
[此贴子已经被作者于2018/3/4 22:28:19编辑过]

--  作者:有点甜
--  发布时间:2018/3/4 22:43:00
--  

如果你是担心【影响别人使用订单表】,完全是多虑的,每一个人每打开的一个项目,都是独立的,表格都是独立的。

 

设置LoadFilter和Load之后,影响的,只会是当前打开的这台电脑而已。

 

如果你想使用Sql Table,那么可以用代码增加表达式列,如

 

Dim t As Table = e.form.controls("table1").Table
For Each c As Col In Tables("表A").cols
    If c.DataCol.Expression > "" Then
        If t.cols.Contains(c.name) = False Then
            t.DataTable.DataCols.Add(c.name, Gettype(String),32,c.DataCol.Expression)
        End If
    End If
Next