以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  表达式错误  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=128054)

--  作者:taifeng110
--  发布时间:2018/11/27 23:55:00
--  表达式错误
Dim td As WinForm.DateTimePicker = e.Form.Controls("DateTimePicker1")
Dim y As Integer = td.value.year \'指定年份
Dim m As Integer = td.value.month \'指定月份
Dim dt11 As New Date(y, m, 1)
Dim dt22 As New Date(y, m, Date.DaysInMonth(y,m)) \'获取该月的最后一天
Dim Filter As String
Filter = "单据日期 >= #" & dt11 & "# And 单据日期 <= #" & dt22 & "#" 
Dim Val As Double = DataTables("销售订单").SQLCompute("Sum(数量)","产品分类 = \'项目料\' and & Filter & "\'" )
提示错误,请高手指点一下


--  作者:y2287958
--  发布时间:2018/11/28 7:56:00
--  
"产品分类 = \'项目料\' and & Filter
--  作者:有点甜
--  发布时间:2018/11/28 9:57:00
--  

 

Dim Val As Double = DataTables("销售订单").SQLCompute("Sum(数量)", "产品分类 = \'项目料\' and " & Filter )

 


--  作者:taifeng110
--  发布时间:2018/11/28 11:30:00
--  
提示
.NET Framework 版本:2.0.50727.8793
Foxtable 版本:2018.3.9.1
错误所在事件:
详细错误信息:
\'#\' 附近有语法错误。


--  作者:有点甜
--  发布时间:2018/11/28 11:43:00
--  

改成

 

Filter = "单据日期 >= \'" & dt11 & "\' And 单据日期 <= \'" & dt22 & "\'" 
Dim Val As Double = DataTables("销售订单").SQLCompute("Sum(数量)", "产品分类 = \'项目料\' and " & Filter )

--  作者:taifeng110
--  发布时间:2018/11/28 12:35:00
--  
这个解决了,我是用外部数据库的,#改成\'就可以了,谢谢大家
--  作者:taifeng110
--  发布时间:2018/11/28 16:10:00
--  
Dim bd1 As New GroupTableBuilder("统计表1",DataTables("销售订单"))
Dim dt1 As fxDataSource
Dim td As WinForm.DateTimePicker = e.Form.Controls("DateTimePicker1")
bd1.Filter = "[单据日期] = \'" & td.value & "\'"       
bd1.Groups.AddDef("业务员") \'根据型号分组
bd1.Groups.AddDef("客户名称") \'根据型号分组
bd1.Groups.AddDef("产品分类") \'根据型号分组
bd1.Groups.AddDef("物料名称") \'根据型号分组
bd1.Totals.AddDef("数量") \'对数量进行统计
dt1 = bd1.BuildDataSource()
Tables("销售日报表_Table1").DataSource =dt1\'将统计结果绑定到Table
这个代码昨天还能按照日期生成统计表,今天不知道是什么原因不行了,我把bd1.Filter = "[单据日期] = \'" & td.value & "\'"      这段删除后,又可以了,是不是这个代码的问题呢,请高手指点!

--  作者:有点甜
--  发布时间:2018/11/28 16:23:00
--  

1、msgbox(td.text) 弹出什么?

 

2、改成这样呢?

 

bd1.Filter = "[单据日期] = #" & td.Text & "#" 


--  作者:taifeng110
--  发布时间:2018/11/28 17:21:00
--  
弹出来:2018-11-28
改了bd1.Filter = "[单据日期] = \'" & td.text & "\'"
当天的2018-11-28的报表能出来,但是我选择其他天数就不能显示。
[此贴子已经被作者于2018/11/28 17:29:26编辑过]

--  作者:有点甜
--  发布时间:2018/11/28 17:53:00
--  

试试改成

 

bd1.Filter = "[单据日期] >= \'" & td.value & "\' and [单据日期] < \'" & td.value.adddays(1) & "\'"