以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  窗口表按条件查询SQL符合行加载  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=137703)

--  作者:myjht
--  发布时间:2019/7/13 9:09:00
--  窗口表按条件查询SQL符合行加载
项目启动,自动启动窗口
AfterLoad事件,加载指定条件的数据行到窗口绑定表中

在后台sql表zzscjjmxb中查找[工序名称] = \'裁面布\' And [_Locked] = 1"的行到变量dr中
再在后台sql表zzscjjmxb中查找"主表主键 = " & dr("主表主键") & "" 并且,工序名称 = \'" & User.Group & "\' and  (默认操作工 = \'" & User.Name & "\' or 默认操作工 Is Null) and [_Locked] = 0的行加载到窗口绑定表zzscjjmxb中
用SQLFind、SQLLoad、SQLSelect,用哪个,是不是得用遍历,新手小白求教,谢谢。 


错误代码如下:

If User.Group = "裁面布" Then

    DataTables("zzscjjmxb").LoadTop = "1"

    \'Dim dt As Date = Date.Today.AddDays(-7)

    DataTables("zzscjjmxb").LoadFilter = "工序名称 = \'" & User.Group & "\' and  (默认操作工 = \'" & User.Name & "\' or 默认操作工 Is Null) and [_Locked] = 0"

    DataTables("zzscjjmxb").LoadOrder = "开工日期 Desc"

    DataTables("zzscjjmxb").Load()

    DataTables("zzscjjmxb").LoadChildren("zzscjjzb", "主表主键", "_Identify")

    Tables("zzscjjzb").Sort = "开工日期,序号 DESC"

Else

Dim drs As List(of DataRow) = DataTables("zzscjjmxb").SQLLoad("[工序名称] = \'裁面布\' And [_Locked] = 1","","开工日期 desc")

    For Each dr As DataRow In drs

    Dim Filter As String

    Filter = "主表主键 = " & dr("主表主键") & " and 工序名称 = \'" & User.Group & "\' and  (默认操作工 = \'" & User.Name & "\' or 默认操作工 Is Null) and [_Locked] = 0 "

        DataTables("zzscjjmxb").LoadFilter = Filter

        DataTables("zzscjjmxb").LoadOrder = "开工日期 Desc"

        DataTables("zzscjjmxb").Load()

        DataTables("zzscjjmxb").LoadChildren("zzscjjzb", "主表主键", "_Identify")

        Tables("zzscjjzb").Sort = "开工日期,序号 DESC"

    Next

End If


--  作者:有点蓝
--  发布时间:2019/7/13 9:48:00
--  
没看懂,截图说明一下
--  作者:myjht
--  发布时间:2019/7/13 10:17:00
--  窗口表按条件查询SQL符合行加载

图片点击可在新窗口打开查看此主题相关图片如下:9999999.png
图片点击可在新窗口打开查看

--  作者:有点蓝
--  发布时间:2019/7/13 10:48:00
--  
Dim dr As DataRow = DataTables("zzscjjmxb").SQLFind("[工序名称] = \'裁面布\' And [_Locked] = 1","开工日期 desc")
If dr Is Nothing Then
    Dim Filter As String
    Filter = "主表主键 = " & dr("主表主键") & " and 工序名称 = \'" & User.Group & "\' and  (默认操作工 = \'" & User.Name & "\' or 默认操作工 Is Null) and [_Locked] = 0 "
    DataTables("zzscjjmxb").LoadFilter = Filter
    DataTables("zzscjjmxb").LoadOrder = "开工日期 Desc"
    DataTables("zzscjjmxb").Load()
    DataTables("zzscjjmxb").LoadChildren("zzscjjzb", "主表主键", "_Identify")
    Tables("zzscjjzb").Sort = "开工日期,序号 DESC"
End If

另外不建议使用_Identify做表和业务关联,应该使用编号之类的进行关联

--  作者:myjht
--  发布时间:2019/7/13 15:07:00
--  窗口表按条件查询SQL符合行加载
有点蓝老师,这个取不到值,您再帮我看看。

    Dim dr As DataRow = DataTables("zzscjjmxb").SQLFind("[工序名称] = \'裁面布\' And [_Locked] = 1","开工日期 desc")
    If dr Is Nothing Then
        Dim Filter As String
        \'Filter = "主表主键 = " & dr("主表主键") & " and 工序名称 = \'" & User.Group & "\' and  (默认操作工 = \'" & User.Name & "\' or 默认操作工 Is Null) and [_Locked] = 0 "
        Filter = "主表主键 = " & dr("主表主键") & " "
        DataTables("zzscjjmxb").LoadFilter = Filter
        DataTables("zzscjjmxb").LoadOrder = "开工日期 Desc"
        DataTables("zzscjjmxb").Load()
        DataTables("zzscjjmxb").LoadChildren("zzscjjzb", "主表主键", "_Identify")
        Tables("zzscjjzb").Sort = "开工日期,序号 DESC"
    End If

--  作者:有点蓝
--  发布时间:2019/7/13 15:29:00
--  
什么东西取不到值?有符合条件的数据吗
--  作者:myjht
--  发布时间:2019/7/13 15:31:00
--  窗口表按条件查询SQL符合行加载
代码不执行,没有符合的数据
但是我数据表是很多符合这个条件的

--  作者:myjht
--  发布时间:2019/7/13 15:44:00
--  

图片点击可在新窗口打开查看此主题相关图片如下:7777.png
图片点击可在新窗口打开查看
其实符合条件的一共4行,结果只加载1行
图片点击可在新窗口打开查看此主题相关图片如下:88888.png
图片点击可在新窗口打开查看

--  作者:有点蓝
--  发布时间:2019/7/13 16:18:00
--  
上传实例说明。如果是副本表,看看:http://www.foxtable.com/webhelp/topics/1906.htm