Foxtable(狐表)用户栏目专家坐堂 → [求助]如何调入当月最小编号的记录


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

主题:[求助]如何调入当月最小编号的记录

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


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33963 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2008/12/1 14:32:00 [显示全部帖子]

你所指的当月是指系统当前月份?

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


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33963 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2008/12/1 15:27:00 [显示全部帖子]

我觉得应该要订单表中增加一个月的表达式列,表达式代码帮助中有,如:
SUBSTRING(Convert([日期],'System.String'),6,IIF(SUBSTRING(Convert([日期],'System.String'),7,1) = '-',1,2))

然后将楼上的代码改成:

Dim de As Date  = Tables("调用").Current("日期")
Dim Month As Integer = de.Month
Dim Min As Integer = DataTables("订单").Compute("Min(编号)","月 = '" & Month & "'")
DataTables("调用").DataRows.Clear()
If MainTable.Name = "调用"
    Dim f As New Filler
    f.SourceTable = DataTables("订单")
    f.SourceCols = "产品,单价,折扣,数量,日期,已付款,编号,型号"
    f.DataTable = DataTables("调用")
    f.DataCols = "产品,单价,折扣,数量,日期,已付款,编号,型号"
    f.Filter = "[编号] = '" & Min & "' And [月] = '" & Month & "'"
    f.Fill()
End If

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


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33963 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2008/12/1 15:56:00 [显示全部帖子]

好象没什么两样吧?


Dim de As Date  = Tables("调用").Current("日期")
Dim Year As  Integer = de.Year
Dim Month As Integer = de.Month
Dim StartDate AS date = New Date(Year, Month, 1)
Dim EndDate AS Date = New Date(Year, Month, Date.DaysInMonth(Year, Month))
DataTables("调用").DataRows.Clear()
If MainTable.Name = "调用"
    Dim f As New Filler
    f.SourceTable = DataTables("订单")
    f.DataTable = DataTables("调用")
    f.Filter = "[编号] = " & DataTables("订单").Compute("min(编号)","[日期] >= #" & StartDate & "# And [日期]<= #" & EndDate & "#")
    f.Fill()
End If

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


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33963 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2008/12/1 16:16:00 [显示全部帖子]

以下是引用狐狸爸爸在2008-12-1 16:02:00的发言:


存在瑕疵,如果求得该月的最小编号为3,那么原来的代码,不会只填充指定月份的最小编号为3的行,而是填充所有月份最小编号为3的记录。
所以filler的填充条件也得加上日期范围限制。



有理,哈,套用你的代码还套用错了

这样应该没问题了。

Dim de As Date  = Tables("调用").Current("日期")
Dim Year As  Integer = de.Year
Dim Month As Integer = de.Month
Dim StartDate AS date = New Date(Year, Month, 1)
Dim EndDate AS Date = New Date(Year, Month, Date.DaysInMonth(Year, Month))
Dim Min As Integer = DataTables("订单").Compute("min(编号)","[日期] >= #" & StartDate & "# And [日期]<= #" & EndDate & "#")
DataTables("调用").DataRows.Clear()
If MainTable.Name = "调用"
    Dim f As New Filler
    f.SourceTable = DataTables("订单")
    f.DataTable = DataTables("调用")
    f.Filter = "[编号] = '" & Min & "' And [日期] >= #" & StartDate & "# And [日期]<= #" & EndDate & "#"
    f.Fill()
End If

[此贴子已经被作者于2008-12-1 16:20:27编辑过]

 回到顶部