以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]利用Select方法查找指定条件的行不起作用  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=187255)

--  作者:tkxffb
--  发布时间:2023/7/3 21:23:00
--  [求助]利用Select方法查找指定条件的行不起作用
老师好,下面这段代码不起作用,请看一下,谢谢指教

Dim r As Row = Tables("日常采购统计表").Current   \'----定义当前行
Dim dt As Date = r("录入日期")
Dim m As Integer = dt.Month      \'----获取指定日期的月份
Dim y As Integer = dt.Year       \'----获取指定日期的年份

For Each dr1 As DataRow In DataTables("日常采购统计表").dataRows
     Dim dt1 As Date = dr1("录入日期")
     Dim m1 As Integer = dt1.Month      
     Dim y1 As Integer = dt1.Year       

     Dim drs As List(Of DataRow) = DataTables("日常采购统计表").Select(""& y1 &" = "& y &" And "& m1 &" = "& m &"")
     For Each dr As DataRow In drs
           \'-----代码
     Next
Next

--  作者:有点蓝
--  发布时间:2023/7/3 21:38:00
--  
没看懂这个代码想干嘛。截图表结构和数据,然后使用文字说明一下想做什么功能
--  作者:tkxffb
--  发布时间:2023/7/4 0:09:00
--  
有点蓝老师好:
      上面这段代码的目的是统计当月累计支出的经费数额,代码写在下图窗口中“本月经费支出累计”按钮下,现在需要把当月录入的行用Select方法查找出来,然后再用Sum方法对查找出来的行的经费支出列进行累计(累计的代码还没写)。现在的问题是,上段代码中Select方法不能用,查找的是全部行。说明一下,录入日期是新增行时自动填充当日日期,窗口中没有日期控件。请费心指教,谢谢!


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

[此贴子已经被作者于2023/7/4 0:13:53编辑过]

--  作者:cd_tdh
--  发布时间:2023/7/4 8:17:00
--  
直接用Compute不行嘛,为什么要先Select出来呢?
SQLCompute(Expression, Filter)
Expression:  要计算的表达式,使用聚合函数进行统计。
Filter:    可选参数,用于设置计算条件,采用的是SQL语法,和常规表达式的语法有所不同,请参考:SQL表达式的语法差异

[此贴子已经被作者于2023/7/4 8:18:01编辑过]

--  作者:有点蓝
--  发布时间:2023/7/4 8:32:00
--  
参考:http://www.foxtable.com/webhelp/topics/2720.htm,结合Compute使用http://www.foxtable.com/webhelp/topics/0548.htm

Dim y As Integer = Date.Today.Year
Dim 
m As Integer = Date.Today.Month
Dim 
dt1 As New Date(ym1)
Dim 
dt2 As New Date(ymDate.DaysInMonth(ym)) \'获取本月的最后一天
Dim 
Filter As String
Filter
 = "日期 >= #" & dt1 & "# And 日期 <= #" & dt2 & "#"
Dim Sum As Double
Sum = Tables("订单").Compute("Sum(经费支出)"Filter )
Output.Show(Sum)

--  作者:tkxffb
--  发布时间:2023/7/4 9:04:00
--  
弄好了。感谢狐友cd_tdh,给出了思路,更谢谢有点蓝老师,直接给一段完整的代码。对于边学习边摸索的人,你们的帮助是最大的支持!