Foxtable(狐表)用户栏目专家坐堂 → like运算符


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

主题:like运算符

美女呀,离线,留言给我吧!
朱女士
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:513 积分:4073 威望:0 精华:0 注册:2020/2/8 11:14:00
like运算符  发帖心情 Post By:2023/5/6 16:05:00 [只看该作者]

老师您好!

数据表中员工姓名中:张三,张三1,张三2,我要在窗口中选择:张三,想把”张三,张三1,张三2“全筛选出来。我用以下代码:只把”张三1,张三2“筛选出来了。没有把张三选上。请帮助一下,谢谢!
Dim dtp3 As WinForm.combobox = e.Form.Controls("combobox1")
Dim name As String = dtp3.value

'加载数据表
DataTables("实时工序计算表").LoadFilter = ""
DataTables("实时工序计算表").Load

name = "'%" & name & "%'"

DataTables("实时工序计算表").LoadFilter = "发货日期 >= #" & dt1 & "#  and  发货日期<=#" & dt2 & "# and 员工姓名 like " & name 
DataTables("实时工序计算表").Load


 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111390 积分:567014 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/5/6 16:07:00 [只看该作者]

name = "'%" & name & "%'"
msgbox(name) ‘显示什么内容?

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


加好友 发短信
等级:二尾狐 帖子:513 积分:4073 威望:0 精华:0 注册:2020/2/8 11:14:00
  发帖心情 Post By:2023/5/6 16:15:00 [只看该作者]

我在组合框里选择:“刘强”,
msgbox(name) ,显示的是“%刘强%",最后运行结果有:刘强1,刘强2,而没有刘强。我想显示所有包含”刘强“的名字。

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


加好友 发短信
等级:二尾狐 帖子:513 积分:4073 威望:0 精华:0 注册:2020/2/8 11:14:00
  发帖心情 Post By:2023/5/6 16:16:00 [只看该作者]

运行结果:
图片点击可在新窗口打开查看此主题相关图片如下:like.png
图片点击可在新窗口打开查看

 回到顶部
帅哥,在线噢!
有点蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111390 积分:567014 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/5/6 16:23:00 [只看该作者]

不对的,msgbox(name) ,显示的应该是'%刘强%',而不是“%刘强%"

like '%刘强%' 肯定是可以包含刘强的,除非数据有问题,比如刘强中间有空格

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


加好友 发短信
等级:二尾狐 帖子:513 积分:4073 威望:0 精华:0 注册:2020/2/8 11:14:00
  发帖心情 Post By:2023/5/6 16:35:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:like1.png
图片点击可在新窗口打开查看
我截个图您看一下
一个是输入窗口,一个是运行结果,下面是代码。

Dim dtp1 As WinForm.DateTimePicker = e.Form.Controls("DateTimePicker1")
Dim dt1 As Date = dtp1.value
Dim dtp2 As WinForm.DateTimePicker = e.Form.Controls("DateTimePicker2")
Dim dt2 As Date = dtp2.value
Dim dtp3 As WinForm.combobox = e.Form.Controls("combobox1")
Dim name As String = dtp3.value

'加载数据表
DataTables("实时工序计算表").LoadFilter = ""
DataTables("实时工序计算表").Load

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

name = "'%" & name & "%'"

DataTables("实时工序计算表").LoadFilter = "发货日期 >= #" & dt1 & "#  and  发货日期<=#" & dt2 & "# and 员工姓名 like " & name 
DataTables("实时工序计算表").Load

Dim dtb As New DataTableBuilder("选员工实发工资计算表")
dtb.AddDef("客户", GetType(String), 16)
'dtb.AddDef("员工姓名", GetType(String), 12)
dtb.AddDef("产品类型", GetType(String), 26)
dtb.AddDef("工序名称", GetType(String), 26)
dtb.AddDef("合计金额", GetType(Double))
dtb.AddDef("重量kg_本期完成", GetType(Double))
dtb.AddDef("重量kg_本期耗时h", GetType(Double))
dtb.AddDef("重量kg_单价", GetType(Double))
dtb.AddDef("重量kg_金额", GetType(Double))
dtb.AddDef("数量件_本期完成", GetType(Double))
dtb.AddDef("数量件_单价", GetType(Double))
dtb.AddDef("数量件_本期耗时h", GetType(Double))
dtb.AddDef("数量件_金额", GetType(Double))
dtb.Build()
'以下是计算部分

Dim khs As New List(Of String)
Dim cps As New List(Of String)
Dim gxs As New List(Of String)
Dim khm, cplx, gxmc As String
For Each kkh As String In DataTables("实时工序计算表").GetValues("客户")
    khs.Add(kkh)
Next
For Each cp As String In DataTables("实时工序计算表").GetValues("产品类型")
    cps.Add(cp)
Next
For Each gx As String In DataTables("实时工序计算表").GetValues("工序名称")
    gxs.Add(gx)
Next
Dim jsdj, jzdj As Double
For Each khm In khs
    
    For Each cplx In cps
        For Each gxmc In gxs
            
            Dim dr As DataRow = DataTables("选员工实发工资计算表").AddNew()
            Dim zzl As Double = DataTables("实时工序计算表").Compute("sum(重量)", " 客户='" & khm & "'and 产品类型='" & cplx & "' and 工序名称='" & gxmc & "'") 
            Dim zsl As Double = DataTables("实时工序计算表").Compute("sum(件数)", " 客户='" & khm & "'and 产品类型='" & cplx & "' and 工序名称='" & gxmc & "'") 
            Dim zlhs As Double = DataTables("实时工序计算表").Compute("sum(实际耗时)", "客户='" & khm & "'and 产品类型='" & cplx & "' and 工序名称='" & gxmc & "' and 结算单位='重量'") 
            Dim jshs As Double = DataTables("实时工序计算表").Compute("sum(实际耗时)", "客户='" & khm & "'and 产品类型='" & cplx & "' and 工序名称='" & gxmc & " 'and 结算单位='数量'")
            dr("客户") = khm
            dr("产品类型") = cplx
            dr("工序名称") = gxmc
            dr("数量件_本期完成") = zsl
            dr("重量kg_本期完成") = zzl
            dr("重量kg_本期耗时h") = zlhs / 60
            dr("数量件_本期耗时h") = jshs / 60
            
            Dim ur As DataRow = DataTables("计件定额表").find("客户='" & khm & "' and 产品类型='" & cplx & "' and 工序名称='" & gxmc & "'")
            If ur IsNot Nothing Then 
                If ur("计价单位") = "kg" Then
                    jzdj = ur("定额单价")
                    dr("重量kg_单价") = jzdj
                    dr("重量kg_金额") = Round2(jzdj * zzl, 2)
                Else If ur("计价单位") = "件" Then
                    jsdj = ur("定额单价")
                    dr("数量件_单价") = jsdj
                    dr("数量件_金额") = Round2(jsdj * zsl, 2)
                End if 
                dr("合计金额") =Round2(jsdj * zsl + jzdj * zzl,2)
            End If 
        Next
        
    next
next

Tables("选员工实发工资计算表").Cols("数量件_本期完成").GrandTotal = True
Tables("选员工实发工资计算表").Cols("重量kg_本期完成").GrandTotal = True
Tables("选员工实发工资计算表").Cols("重量kg_本期耗时h").GrandTotal = True
Tables("选员工实发工资计算表").Cols("数量件_本期耗时h").GrandTotal = True
Tables("选员工实发工资计算表").Cols("重量kg_金额").GrandTotal = True
Tables("选员工实发工资计算表").Cols("数量件_金额").GrandTotal = True
Tables("选员工实发工资计算表").Cols("合计金额").GrandTotal = True
Tables("选员工实发工资计算表").GrandTotal = True '显示
MessageBox.Show("计算完毕!", "提示!")
Forms("员工实发计件工资计算").close
MainTable = Tables("选员工实发工资计算表")

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


加好友 发短信
等级:二尾狐 帖子:513 积分:4073 威望:0 精华:0 注册:2020/2/8 11:14:00
  发帖心情 Post By:2023/5/6 16:38:00 [只看该作者]

这个是数据表里的刘强

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


 回到顶部
帅哥,在线噢!
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111390 积分:567014 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/5/6 16:44:00 [只看该作者]

代码没有问题,有也是数据有问题。

另外没有必要加载2次,去掉下面代码

DataTables("实时工序计算表").LoadFilter = ""
DataTables("实时工序计算表").Load

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


加好友 发短信
等级:二尾狐 帖子:513 积分:4073 威望:0 精华:0 注册:2020/2/8 11:14:00
  发帖心情 Post By:2023/5/6 16:54:00 [只看该作者]

我再检查检查,谢谢!

 回到顶部