Foxtable(狐表)用户栏目专家坐堂 → 这个代码怎么修改?


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

主题:这个代码怎么修改?

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


加好友 发短信 一级勋章
等级:狐仙 帖子:9879 积分:57640 威望:0 精华:15 注册:2008/9/1 9:45:00
这个代码怎么修改?  发帖心情 Post By:2009/8/26 13:12:00 [只看该作者]

with e.form
    Dim T1 As WinForm.TextBox = .Controls("TextBox1")
    Tables("目录树_Table1").DataSource = DataTables("订单情况")
    Tables("目录树_Table1").Filter = "[IO] Like '*" & T1.text & "*' or [GO NO] Like '*" & T1.text & "*'or [客户合同号] Like '*" & T1.text & "*'or [英文款号]Like '*" & T1.text & "*'or [商标] Like '*" & T1.text & "*'or [客户名称] Like '*" & T1.text & "*'or [款号] Like '*" & T1.text & "*'or [布款号] Like '*" & T1.text & "*'or [季节号] Like '*" & T1.text & "*'or [CAPS] Like '*" & T1.text & "*'"
    Tables("目录树_Table1").DataSource = DataTables("辅料明细")
    Tables("目录树_Table1").Filter = "[IO] Like '*" & T1.text & "*' or [订购单编号] Like '*" & T1.text & "*'"
end with



 这个代码为什么会我在订单情况表中做查找时,它会跳到辅料明细表中去,因为辅料明细表中一个列和订单情况的一个列相同,所以找到数据后,回到订单情况表时,也已经找到了.请问这是为什么?代码怎么修改?

 回到顶部
美女呀,离线,留言给我吧!
yangming
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
  发帖心情 Post By:2009/8/26 14:15:00 [只看该作者]

你现在无法让电脑区别你想在哪个表中查找,所以它就自做主张,选择后面代码执行了,呵呵
[此贴子已经被作者于2009-8-26 14:16:25编辑过]

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


加好友 发短信 一级勋章
等级:狐仙 帖子:9879 积分:57640 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2009/8/26 14:26:00 [只看该作者]

以下是引用yangming在2009-8-26 14:15:00的发言:
你现在无法让电脑区别你想在哪个表中查找,所以它就自做主张,选择后面代码执行了,呵呵
[此贴子已经被作者于2009-8-26 14:16:25编辑过]

 杨版:

Dim dst As Table = Tables("某表") 我加入这句话也是这个情况?应该怎么改呢?


 回到顶部
美女呀,离线,留言给我吧!
yangming
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
  发帖心情 Post By:2009/8/26 14:30:00 [只看该作者]

加一个Checked进行勾选,比如,勾上,就在明细表中查找,反之就在出库表中查找,请看下面红色部分:

with e.form
    Dim T1 As WinForm.TextBox = .Controls("TextBox1")
if Forms("目录树").Controls("CheckBox1").Checked = True Then
Tables("目录树_Table1").DataSource = DataTables("出库明细")
    Tables("目录树_Table1").Filter = "[出库单编号] Like '*" & T1.text & "*' or [出库用途] Like '*" & T1.text & "*'"
Else   
Tables("目录树_Table1").DataSource = DataTables("出库")
    Tables("目录树_Table1").Filter = "[出库单编号] Like '*" & T1.text & "*' or [出库用途] Like '*" & T1.text & "*'or [领用部门] Like '*" & T1.text & "*'or [领料人]Like '*" & T1.text & "*'"
  End If
end with

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


加好友 发短信 一级勋章
等级:狐仙 帖子:9879 积分:57640 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2009/8/26 14:32:00 [只看该作者]

还有,杨版:

'生成可见的列名称
Dim Cols,Vals as New List(of String)
Dim txt As String = "A"             '加个A是为了便于替换
For Each c as Col in Args(0).Cols
    If c.Visible = True
        txt = txt & "," & c.name
    End If
Next
txt = txt.Replace("A,","")         '生成可见列名
'生成查询条件
Cols.AddRange(txt.Split(","))      '字段列表
Vals.AddRange(Args(1).Replace("'","''").Replace("*","[*]").Split(","))  '查询值列表并保证其有效
Dim flt As String = "A"            '加个A是为了便于替换
Dim i as Integer = 0
For Each Val as String in Vals
    If i < Cols.Count

        flt = flt & " and " & Cols(i) & " like '*" & Val & "*'"
    End If
end if
endif
    i = i + 1
Next
flt = flt.Replace("A and ","")
Return flt


这段代码,但要注意,二楼的代码只能对字符型的列进行查询。如果你的列中有其它数据类型,
需要在 If i < Cols.Count 里进行判断。如:
If  Args(0).Cols(i).DataCol.IsNumeric   '如果是数值型
If  Ars(0).Cols(i).DataCol.IsDate         '如果是日期型,等等。否则会出错的。

 这个怎么加?


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


加好友 发短信 一级勋章
等级:版主 帖子:1993 积分:19409 威望:0 精华:20 注册:2008/9/2 10:09:00
  发帖心情 Post By:2009/8/26 14:46:00 [只看该作者]

看这里:
http://www.foxtable.com/dispbbs.asp?boardid=2&Id=4028&page=1&star=2
[此贴子已经被作者于2009-8-26 14:46:36编辑过]

 回到顶部