Foxtable(狐表)用户栏目专家坐堂 → 代码如何合并?


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

主题:代码如何合并?

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


加好友 发短信
等级:六尾狐 帖子:1257 积分:8555 威望:0 精华:0 注册:2019/6/13 9:57:00
代码如何合并?  发帖心情 Post By:2022/5/20 18:09:00 [只看该作者]

第一部功能:

Dim c As String = e.Form.Controls("ComboBox1").Text
Dim d As String = " " & e.Form.Controls("ComboBox2").Text & " "

Dim filter As String
Dim 符号 As String
If d = " like " Then
    If tbl.Cols(c).IsString = False Then
        Tables("模糊查询_订单").filter = "convert(" & c & ",'System.String')" & d & "'%" & e.Form.Controls("TextBox1").Text & "%'"
    Else
        Tables("模糊查询_订单").filter = c & d & "'%" & e.Form.Controls("TextBox1").Text & "%'"
    End If
Else
    If tbl.Cols(c).IsString Then
        符号 = "'"
    ElseIf tbl.Cols(c).IsDate Then
        符号 = "#"
        
    End If
    
  Tables("模").filter = c & d & 符号 & e.Form.Controls("TextBox1").Text & 符号
    
End If

    第二部功能
    
    Dim Filter As String
    With e.Form.Controls("StartDate")
        If .Value IsNot Nothing Then
            If Filter > "" Then
                Filter = Filter & " And "
            End If
            Filter = Filter & "日期 >= #" & .Value & "#"
        End If
    End With
    With e.Form.Controls("EndDate")
        If .Value IsNot Nothing Then
            If Filter > "" Then
               Filter = Filter & " And "
            End If
            Filter = Filter & "日期 <= #" & .Value & "#"
        End If
    End With
    
    Tables("模糊查询_订单").Filter = Filter 

问题一:上面代码,第一部和第二部分开使用是可以,现在如何实现合并在一起?

我试着做下面代码,报错提示缺少运算?

Dim tbl As Table = Tables("订单")
Dim c As String = e.Form.Controls("ComboBox1").Text
Dim d As String = " " & e.Form.Controls("ComboBox2").Text & " "

Dim d1 As String = e.Form.Controls("StartDate").Text
Dim d2 As String = e.Form.Controls("EndDate").Text

Dim filter As String
Dim 符号 As String
If d = " like " Then
    If tbl.Cols(c).IsString = False Then
        Tables("模糊查询_订单").filter = "convert(" & c & ",'System.String')" & d & "'%" & e.Form.Controls("TextBox1").Text & "%'"
    Else
        Tables("模糊查询_订单").filter = c & d & "'%" & e.Form.Controls("TextBox1").Text & "%'"
    End If
Else
    If tbl.Cols(c).IsString Then
        符号 = "'"
    ElseIf tbl.Cols(c).IsDate Then
        符号 = "#"
        d1 = "#"
        d2 = "#"
    End If
    Tables("订单").filter = c & d & d1 & d2 & 符号 & e.Form.Controls("TextBox1").Text & 符号
'    Tables("查询").filter = c & d & 符号 & e.Form.Controls("TextBox1").Text & 符号
    
End If

[此贴子已经被作者于2022/5/21 21:35:09编辑过]

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


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

Dim Filter As String
    With e.Form.Controls("StartDate")
        If .Value IsNot Nothing Then
            If Filter > "" Then
                Filter = Filter & " And "
            End If
            Filter = Filter & "日期 >= #" & .Value & "#"
        End If
    End With
    With e.Form.Controls("EndDate")
        If .Value IsNot Nothing Then
            If Filter > "" Then
               Filter = Filter & " And "
            End If
            Filter = Filter & "日期 <= #" & .Value & "#"
        End If
    End With
            If Filter > "" Then
                Filter = Filter & " And "
            End If
    Dim c As String = e.Form.Controls("ComboBox1").Text
Dim d As String = " " & e.Form.Controls("ComboBox2").Text & " "

Dim 符号 As String
If d = " like " Then
    If tbl.Cols(c).IsString = False Then
        Filter = Filter & "convert(" & c & ",'System.String')" & d & "'%" & e.Form.Controls("TextBox1").Text & "%'"
    Else
        Filter = Filter & c & d & "'%" & e.Form.Controls("TextBox1").Text & "%'"
    End If
Else
    If tbl.Cols(c).IsString Then
        符号 = "'"
    ElseIf tbl.Cols(c).IsDate Then
        符号 = "#"
        
    End If
    
  Filter = Filter & c & d & 符号 & e.Form.Controls("TextBox1").Text & 符号
    
End If
    Tables("模糊查询_订单").Filter = Filter 

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


加好友 发短信
等级:六尾狐 帖子:1257 积分:8555 威望:0 精华:0 注册:2019/6/13 9:57:00
  发帖心情 Post By:2022/5/21 12:03:00 [只看该作者]

老师,我想按查询条件结果进行统计,加下面红字代码,没报错,只实现查询,也不执行统计,如何实现?谢谢
由于帖子提示内容长度太大,代码分二次上传:
第一部:
Dim b As New GroupTableBuilder("统计表1", DataTables("订单"))
Dim Filter As String
    With e.Form.Controls("StartDate")
        If .Value IsNot Nothing Then
            If Filter > "" Then
                Filter = Filter & " And "
            End If
            Filter = Filter & "日期 >= #" & .Value & "#"
        End If
    End With
    With e.Form.Controls("EndDate")
        If .Value IsNot Nothing Then
            If Filter > "" Then
               Filter = Filter & " And "
            End If
            Filter = Filter & "日期 <= #" & .Value & "#"
        End If
    End With
            If Filter > "" Then
                Filter = Filter & " And "
            End If
    Dim c As String = e.Form.Controls("ComboBox1").Text
Dim d As String = " " & e.Form.Controls("ComboBox2").Text & " "




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


加好友 发短信
等级:六尾狐 帖子:1257 积分:8555 威望:0 精华:0 注册:2019/6/13 9:57:00
  发帖心情 Post By:2022/5/21 12:03:00 [只看该作者]

第二部
Dim 符号 As String
If d = " like " Then
    If tbl.Cols(c).IsString = False Then
        Filter = Filter & "convert(" & c & ",'System.String')" & d & "'%" & e.Form.Controls("TextBox1").Text & "%'"
    Else
        Filter = Filter & c & d & "'%" & e.Form.Controls("TextBox1").Text & "%'"
    End If
Else
    If tbl.Cols(c).IsString Then
        符号 = "'"
    ElseIf tbl.Cols(c).IsDate Then
        符号 = "#"
        
    End If
    
  Filter = Filter & c & d & 符号 & e.Form.Controls("TextBox1").Text & 符号
    
End If
   Tables("模糊查询_订单").Filter = Filter  
b.Totals.AddDef("数量", "订购数量") '添加数量列用于统计
b.Filter = Filter 
Tables("模糊查询_Table1").DataSource = b.BuildDataSource()

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


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


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


加好友 发短信
等级:六尾狐 帖子:1257 积分:8555 威望:0 精华:0 注册:2019/6/13 9:57:00
  发帖心情 Post By:2022/5/21 14:20:00 [只看该作者]

老师,分组是查询条件,3,4楼的代码,不知道怎么实现,请老师帮忙,谢谢

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


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

没看懂,请截图说明

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


加好友 发短信
等级:六尾狐 帖子:1257 积分:8555 威望:0 精华:0 注册:2019/6/13 9:57:00
  发帖心情 Post By:2022/5/21 15:57:00 [只看该作者]

问题一:如何实现查询统计?如下图

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



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


加好友 发短信
等级:六尾狐 帖子:1257 积分:8555 威望:0 精华:0 注册:2019/6/13 9:57:00
  发帖心情 Post By:2022/5/21 16:06:00 [只看该作者]

问题二:用2楼代码,按开始日期和结束时间,没有后面条件进行查询,会报错,如下图


图片点击可在新窗口打开查看此主题相关图片如下:日期查询报错.jpg
图片点击可在新窗口打开查看

.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2022.5.13.2
错误所在事件:窗口,模糊查询,Button6,Click
详细错误信息:
未将对象引用设置到对象的实例。

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


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

1、统计什么?按什么做分组进行统计,统计的结果应该是怎么样的?

2、没有选择分类,代码里没有判断是否选择了分类

 回到顶部
总数 22 1 2 3 下一页