以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  窗口打开事件的问题  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=159273)

--  作者:lin98
--  发布时间:2020/12/19 18:47:00
--  窗口打开事件的问题
需求是:窗口打开后,只显示库存副表的字段“安全情况 = "超安全" Or  安全情况 = "低安全"。
1,窗口打开事件

Dim Filter As String
Filter ="安全情况=\'超安全\' Or \'低安全\'"
DataTables("表达式库存").LoadFilter = Filter        
DataTables("表达式库存").Load()

上面显示全部,不是需求,如何实现需求”只显示库存的字段“安全情况 = "超安全" Or  安全情况 = "低安全"“?。

2,窗口打开事件想用SQL语句,不能用

\'Selec * From {表达式库存} Where  安全情况 = "超安全" Or  安全情况 = "低安全"

\'Dim Value As String = "安全情况 "
\'Dim Result As String
\'Selec Case Value
    \'Case "安全情况 "
        \'Result = "超安全"
   
    \'Case Else
        \'Result = "低安全"
\'End Selec

2方法,错,如何改才能实现,在窗口打开后副表,只显示库存的字段“安全情况 = "超安全" Or  安全情况 = "低安全"“?



--  作者:有点蓝
--  发布时间:2020/12/20 20:04:00
--  
Filter ="安全情况=\'超安全\' Or 安全情况=\'低安全\'"
--  作者:lin98
--  发布时间:2020/12/21 16:07:00
--  
老师,
1,执行上面代码,正表和副表的显示都一样,
2,我的需求是,正表显示全部,副表按上面代码条件显示,只显"安全情况=\'超安全\' Or 安全情况=\'低安全\'",
3,正表和副表设计在不同窗口上,是用表达式统计库存的例子。

如何实现正表显示全部,副表按上面代码条件显示,只显"安全情况=\'超安全\' Or 安全情况=\'低安全\'"?

--  作者:有点蓝
--  发布时间:2020/12/21 16:12:00
--  
副本看看:http://www.foxtable.com/webhelp/topics/1906.htm
--  作者:lin98
--  发布时间:2020/12/22 22:56:00
--  
Dim Filter As String
\'Tables("安全库存_Table1").Filter ="安全情况=\'超安全\' Or 安全情况=\'低安全\'"
Filter ="安全情况=\'超安全\' Or 安全情况=\'低安全\'"
DataTables("安全库存_Table1").LoadFilter = Filter          
DataTables("安全库存_Table1").Load()

报错下面内容:

.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2020.5.29.8
错误所在事件:窗口,安全库存,AfterLoad
详细错误信息:
未将对象引用设置到对象的实例。

--  作者:有点蓝
--  发布时间:2020/12/22 23:04:00
--  
Tables("安全库存_Table1").datatable.LoadFilter = Filter          
Tables("安全库存_Table1").datatable.Load()

--  作者:lin98
--  发布时间:2020/12/23 11:11:00
--  
老师,上面是在另一窗口上用副表形式执行,能按设定条件显示,但有一问题,在另一个窗口上用正表显示,正常情况正表不受副表的影响,在这里能受到影响,这里正表显示与副表一样,副表影响了正表,是不是以下面代码有关,如何改?需求是副表按上面代码的条件显示,正表显示全部

Dim dr As DataRow = DataTables("表达式库存").Find("安全情况 = \'超安全\' Or 安全情况=\'低安全\'")
If dr IsNot Nothing Then
    MessageBox.Show("有产品即将到期!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
    Tables("表达式库存").Filter = ("安全情况 = \'超安全\' Or 安全情况=\'低安全\'")
    
    Forms("安全库存").Open()        
End If

--  作者:有点蓝
--  发布时间:2020/12/23 11:17:00
--  
如果要改标题名称,正表肯定受副表的影响,因为改标题是datatable的功能,不是table的功能,而副本和主表都是同一个datatable。

如果要不受影响,把副本改为sqltable使用

--  作者:lin98
--  发布时间:2020/12/23 11:43:00
--  
老师,我最早用副本用sqltable,加载SQL语语句下面,效果一样都影响,刚才也改副本用sqltable测试一下,还是一样,不知道什么原因,我正表重新连接表,再测试还一样

\'Selec * From {表达式库存} Where  安全情况 = "超安全" Or  安全情况 = "低安全"

--  作者:lin98
--  发布时间:2020/12/23 11:45:00
--  
上面不行,能否用正表窗口打开后或其上“刷新”按键来强制刷新显示全部数据,这个要怎么实现?