Foxtable(狐表)用户栏目专家坐堂 → 我希望在输入窗口绑定的表 中只显示未发货的行,我该如何编写代码?


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

主题:我希望在输入窗口绑定的表 中只显示未发货的行,我该如何编写代码?

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


加好友 发短信
等级:小狐 帖子:391 积分:3904 威望:0 精华:0 注册:2011/12/5 12:27:00
我希望在输入窗口绑定的表 中只显示未发货的行,我该如何编写代码?  发帖心情 Post By:2012/6/5 13:21:00 [只看该作者]

 

老师,您好!

请教您,我用帮助文件自定义录入界面之二方法设计录入窗口,

问题是:我希望在"窗口3_Table1" 中只显示未发货的行,我该如何编写代码?我现有的代码如下:

1、新增一个窗口,类型为"DropDownForm",窗口插入一个TextBox和一个Table控件,Table控件的“作为副本”属性设置为True,“允许编辑”属性设置为False,并绑定到订单表,设定显示列为:订单号|100|产品号|100|产品名称|90 |规格尺寸|100|订购数量|90|单位|60。

2、将TextBox1的TextChanged事件代码设为:

Dim txt As String = e.Form.Controls("TextBox1").Text

Dim tbl As Table = Tables("窗口3_Table1")

If txt = "" Then

    tbl.Filter = ""

Else

    txt = "'*" & txt & "*'"

    tbl.Filter = "订单号 Like " & txt & " Or 产品号 Like " & txt & " Or 产品名称 Like " & txt & " Or 规格尺寸 Like " & txt

End If



3、将TextBox1的Keydown事件代码设为:


Dim tbl As Table = Tables("窗口3_Table1")

If tbl.Current IsNot Nothing Then

    Forms("窗口3").DropDownBox.Value = tbl.Current("产品号")

End If


4、将Table控件的DoubleClick事件设置为:


Dim tbl As Table = Tables("窗口3_Table1")

If tbl.Current IsNot Nothing Then

    Forms("窗口3").DropDownBox.Value = tbl.Current("产品号")

End If

Forms("窗口3").DropDownBox.CloseDropDown()


5、在项目事件AfterOpenProject事件中加入代码:

Tables("发货单.明细").Cols("产品号").DropForm = "窗口3"



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


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

2、将TextBox1的TextChanged事件代码设为:

Dim txt As String = e.Form.Controls("TextBox1").Text

Dim tbl As Table = Tables("窗口3_Table1")

If txt = "" Then

    tbl.Filter = "发货 = False Or 发货 Is NULL"

Else

    txt = "'*" & txt & "*'"

    tbl.Filter = "订单号 Like " & txt & " Or 产品号 Like " & txt & " Or 产品名称 Like " & txt & " Or 规格尺寸 Like " & txt  & " And (发货 = False Or 发货 Is NULL)"

End If


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


加好友 发短信
等级:小狐 帖子:391 积分:3904 威望:0 精华:0 注册:2011/12/5 12:27:00
  发帖心情 Post By:2012/6/5 15:33:00 [只看该作者]

受教了,非常感谢!

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


加好友 发短信
等级:小狐 帖子:391 积分:3904 威望:0 精华:0 注册:2011/12/5 12:27:00
  发帖心情 Post By:2012/6/5 17:02:00 [只看该作者]

我按照上述方法做了,发货列为逻辑列,代码如下:不知哪里不对,窗口3_Table1中仍然没有过滤已发货订单。

2、将TextBox1的TextChanged事件代码设为:

Dim txt As String = e.Form.Controls("TextBox1").Text

Dim tbl As Table = Tables("窗口3_Table1")

If txt = "" Then

    tbl.Filter = "发货 = False "

Else

    txt = "'*" & txt & "*'"

    tbl.Filter = "订单号 Like " & txt & " Or 产品号 Like " & txt & " Or 产品名称 Like " & txt & " Or 规格尺寸 Like " & txt  & " And (发货 = False )"

End If


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


加好友 发短信
等级:小狐 帖子:391 积分:3904 威望:0 精华:0 注册:2011/12/5 12:27:00
  发帖心情 Post By:2012/6/5 17:54:00 [只看该作者]

我试了,需在TextBox1先输入任意字,然后清除才有效果,我该如何改进?

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


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

2、将TextBox1的TextChanged事件代码设为:

Dim txt As String = e.Form.Controls("TextBox1").Text

Dim tbl As Table = Tables("窗口3_Table1")

If txt = "" Then

    tbl.Filter = "发货 = False  Or 发货 Is Null "

Else

    txt = "'*" & txt & "*'"

    tbl.Filter = "(订单号 Like " & txt & " Or 产品号 Like " & txt & " Or 产品名称 Like " & txt & " Or 规格尺寸 Like " & txt  & ") And (发货 = False Or 发货 Is Null )"

End If


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


加好友 发短信
等级:小狐 帖子:391 积分:3904 威望:0 精华:0 注册:2011/12/5 12:27:00
  发帖心情 Post By:2012/6/5 18:25:00 [只看该作者]

我照上面方法改完又试了,还是需在TextBox1先输入一次,然后清除才有效果。


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


加好友 发短信
等级:小狐 帖子:391 积分:3904 威望:0 精华:0 注册:2011/12/5 12:27:00
  发帖心情 Post By:2012/6/5 18:27:00 [只看该作者]

请教老师,TextChanged事件是不是需要在TextBox1内容发生改变后触发事件?

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


加好友 发短信
等级:小狐 帖子:391 积分:3904 威望:0 精华:0 注册:2011/12/5 12:27:00
  发帖心情 Post By:2012/6/5 22:51:00 [只看该作者]

老师,我将TextBox1的Enter事件代码设为:

Dim txt As String = e.Form.Controls("TextBox1").Text

Dim tbl As Table = Tables("窗口3_Table1")

If txt = "" Then

    tbl.Filter = "发货 = False  Or 发货 Is Null "

End if

 

 

这样可以吗?


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


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

你在窗口事件直接写入

 

Dim tbl As Table = Tables("窗口3_Table1")

tbl.Filter = "发货 = False  Or 发货 Is Null " 

 

  这样不就得了.那么麻烦的做法.通过框去做事件.


 回到顶部
总数 11 1 2 下一页