Foxtable(狐表)用户栏目专家坐堂 → 满足条件查找


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

主题:满足条件查找

帅哥哟,离线,有人找我吗?
有点蓝
  41楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106209 积分:540168 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/12/13 10:45:00 [只看该作者]

请上传实例说明

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


加好友 发短信
等级:一尾狐 帖子:409 积分:2850 威望:0 精华:0 注册:2020/10/9 8:45:00
  发帖心情 Post By:2022/12/14 8:48:00 [只看该作者]

老师,找到原因是了,是因为外部表那里设置了不加载,然后我代码改成了以下那样,还是不能用,请帮忙看看,谢谢!
If e.KeyCode = Keys.Enter Then
    Dim sl As Integer = Val(e.Sender.Text)
    Dim bm As String = e.Form.Controls("材料编码1").text
    If sl > 0 AndAlso bm > "" Then
        Dim t As Table = e.Form.Controls("出库").Table
        If t.DataTable.HasChanges Then
            t.DataTable.save
        End If 
        If DataTables("出入库明细").SQLGetValues("供应商名称", "成品编码='" & bm & "' And 入库类型= '在库'").count > 1 Then
            Vars("bm") = bm
            Forms("零件库临时窗口").Open
        End If
        Dim filter As String = "成品编码='" & bm & "'And 入库类型= '在库' and 可出数量 > 0"
        If vars("供应商名称") > "" Then
            filter = filter & " and 供应商名称='" & vars("供应商名称") & "'"
        End If
        For Each dr As DataRow In DataTables("出入库明细").SQLSelect(filter, "采购订单号")
            Dim dr1 As DataRow = t.DataTable.SQLfind("成品编码='" & bm & "' and 出库数量 is  null")
            If dr1 Is Nothing Then
                dr1 = t.DataTable.addnew
                dr1("成品编码") = dr("成品编码")
                dr1("成品描述") = dr("成品描述")
            End If 
            dr1("采购订单号") = dr("采购订单号")
            dr1("供应商名称") = dr("供应商名称")
            If dr("可出数量") >= sl Then
                dr1("出库数量") = sl
                dr("可出数量") = dr("可出数量") - sl
                Exit For
            Else
                dr1("出库数量") = dr("可出数量")
                sl = sl - dr("可出数量")
                dr("可出数量") = 0
            End If 
        Next 
    End If
End If

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



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


加好友 发短信
等级:超级版主 帖子:106209 积分:540168 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/12/14 8:52:00 [只看该作者]

SQLfind改为find

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


加好友 发短信
等级:一尾狐 帖子:409 积分:2850 威望:0 精华:0 注册:2020/10/9 8:45:00
  发帖心情 Post By:2022/12/14 9:07:00 [只看该作者]

老师,改了,还是不行,可以输入窗口表:零件库领料单,编码:02020012,请帮忙看看,谢谢!
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:新项目测试.rar


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


加好友 发短信
等级:超级版主 帖子:106209 积分:540168 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/12/14 9:48:00 [只看该作者]

SQLSelect的用法用错了:http://www.foxtable.com/webhelp/topics/2900.htm

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


加好友 发短信
等级:一尾狐 帖子:409 积分:2850 威望:0 精华:0 注册:2020/10/9 8:45:00
  发帖心情 Post By:2022/12/14 10:18:00 [只看该作者]


老师,是用这个吗?SQLReplaceFor,看了半天不知道咋弄合适。

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


加好友 发短信
等级:超级版主 帖子:106209 积分:540168 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/12/14 10:39:00 [只看该作者]

把45楼帮助认真仔细看看,一遍看不懂,再看10遍,核对一下自己SQLSelect的用法,看看哪里错了

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


加好友 发短信
等级:一尾狐 帖子:409 积分:2850 威望:0 精华:0 注册:2020/10/9 8:45:00
  发帖心情 Post By:2022/12/14 11:00:00 [只看该作者]

老师,帮忙看下。

If e.KeyCode = Keys.Enter Then
    Dim sl As Integer = Val(e.Sender.Text)
    Dim bm As String = e.Form.Controls("材料编码1").text
    If sl > 0 AndAlso bm > "" Then
        Dim t As Table = e.Form.Controls("出库").Table
        If t.DataTable.HasChanges Then
            t.DataTable.save
        End If 
        If DataTables("出入库明细").SQLGetValues("供应商名称", "成品编码='" & bm & "' And 入库类型= '在库'").count > 1 Then
            Vars("bm") = bm
            Forms("零件库临时窗口").Open
        End If
        Dim filter As String = "成品编码='" & bm & "'And 入库类型= '在库' and 可出数量 > 0"
        If vars("供应商名称") > "" Then
            filter = filter & " and 供应商名称='" & vars("供应商名称") & "'"
        End If
        Dim drs As List(Of DataRow) = DataTables("出入库明细").sqlSelect(filter, "采购订单号")
        For Each dr As DataRow In drs
            Dim dr1 As DataRow = t.DataTable.find("成品编码='" & bm & "' and 出库数量 is  null")
            If dr1 Is Nothing Then
                dr1 = t.DataTable.addnew
                dr1("成品编码") = dr("成品编码")
                dr1("成品描述") = dr("成品描述")
            End If 
            dr1("采购订单号") = dr("采购订单号")
            dr1("供应商名称") = dr("供应商名称")
            If dr("可出数量") >= sl Then
                dr1("出库数量") = sl
                dr("可出数量") = dr("可出数量") - sl
                Exit For
            Else
                dr1("出库数量") = dr("可出数量")
                sl = sl - dr("可出数量")
                dr("可出数量") = 0
            End If
        Next
        DataTables("出入库明细").SQLUpdate(drs)
    End If
End If

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


加好友 发短信
等级:超级版主 帖子:106209 积分:540168 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/12/14 11:13:00 [只看该作者]

语法:

SQLSelect(Filter,Top,Sort)

Filter: 查询条件,采用的是SQL语法,和常规表达式的语法有所不同,请参考:SQL表达式的语法差异
Top:    可选参数,指定返回的行数
Sort:   可选参数,指定查询顺序,和Top配合使用。


排序在第3个参数,和select的用法不一样


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


加好友 发短信
等级:一尾狐 帖子:409 积分:2850 威望:0 精华:0 注册:2020/10/9 8:45:00
  发帖心情 Post By:2022/12/14 13:38:00 [只看该作者]

老师,帮忙研究了一中午,确实不知道咋改了。
If e.KeyCode = Keys.Enter Then
    Dim sl As Integer = Val(e.Sender.Text)
    Dim bm As String = e.Form.Controls("材料编码1").text
    If sl > 0 AndAlso bm > "" Then
        Dim t As Table = e.Form.Controls("出库").Table
        If t.DataTable.HasChanges Then
            t.DataTable.save
        End If 
        If DataTables("出入库明细").SQLGetValues("供应商名称", "成品编码='" & bm & "' And 入库类型= '在库'").count > 1 Then
            Vars("bm") = bm
            Forms("零件库临时窗口").Open
        End If
        Dim filter As String = "成品编码='" & bm & "'And 入库类型= '在库' and 可出数量 > 0"
        If vars("供应商名称") > "" Then
            filter = filter & " and 供应商名称='" & vars("供应商名称") & "'"
        End If
        Dim drs As List(Of DataRow) = DataTables("出入库明细").sqlSelect(filter, "采购订单号", "采购订单号  desc")
        For Each dr As DataRow In drs
            Dim dr1 As DataRow = t.DataTable.find("成品编码='" & bm & "' and 出库数量 is  null")
            If dr1 Is Nothing Then
                dr1 = t.DataTable.addnew
                dr1("成品编码") = dr("成品编码")
                dr1("成品描述") = dr("成品描述")
            End If 
            dr1("采购订单号") = dr("采购订单号")
            dr1("供应商名称") = dr("供应商名称")
            If dr("可出数量") >= sl Then
                dr1("出库数量") = sl
                dr("可出数量") = dr("可出数量") - sl
                Exit For
            Else
                dr1("出库数量") = dr("可出数量")
                sl = sl - dr("可出数量")
                dr("可出数量") = 0
            End If
        Next
        DataTables("出入库明细").SQLUpdate(drs)
    End If
End If

 回到顶部
总数 57 上一页 1 2 3 4 5 6 下一页