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


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

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

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2008/12/1 14:43:00 [显示全部帖子]

呵呵,越是初学的人,越将自己的系统搞得复杂。

    '本月第一天
    Dim StartDate AS date = New Date(Date.Today.Year,Date.Today.Month,1)
    '本月最后一天
    Dim EndDate AS Date = New Date(Date.Today.Year,Date.Today.Month,Date.DaysInMonth(Date.Today.Year,Date.Today.Month))


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2008/12/1 15:29:00 [显示全部帖子]


    Dim Year As  Integer = 2008
    Dim Month As integer = 2
    Dim StartDate AS date = New Date(Year, Month, 1) 
    Dim EndDate AS Date = New Date(Year, Month, Date.DaysInMonth(Year, Month))
   If MainTable.Name = "调用"
            Dim f As New Filler
            f.SourceTable = DataTables("订单") '指定数据来源
            f.SourceCols = "产品,单价,折扣,数量,日期,已付款,编号,型号" '指定数据来源列
            f.DataTable = DataTables("调用") '指定数据接收表
            f.DataCols = "产品,单价,折扣,数量,日期,已付款,编号,型号" '指定数据接收列
            f.Filter = "[编号] = " & DataTables("订单").Compute("min(编号)","[日期] >= #" & StartDate & "# And [日期]<= #" & EndDate & "#")
            DataTables("调用").DataRows.Clear() '清除原来的数据
            f.Fill() '填充数据
        End If

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2008/12/1 15:46:00 [显示全部帖子]

以下是引用ybil在2008-12-1 15:40:00的发言:
嘻嘻,感觉这个比较条件肯定是不对.另现在日期变为用 单引号而不是用"#"引住了?我用#通不过.


呵呵,我在命令窗口测试通过的。
另:
1、sql server的日期只能用引号
2、如果内部表,用#号,但是你我系统不同,也许你这边用单引号吧。
图片点击可在新窗口打开查看


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2008/12/1 15:46:00 [显示全部帖子]

以下是引用mr725在2008-12-1 15:44:00的发言:
狐爸的代码可以,但是指定2008年 和 2月 不符合实际操作,这个年月要和调用表中日期的年月一致的。


其它版主给出了求年月的代码,你自己挪过来。


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
2010年3月28日更新(新增语音朗读、短信发送、远程更新项目功能)  发帖心情 Post By:2008/12/1 15:56:00 [显示全部帖子]

以下是引用ybil在2008-12-1 15:52:00的发言:

      呵呵,您的条件是某月份的最小编号n,如其他月份的编号也是n,就会出错吧.我想楼主要的是:满足月份且为最小编号.

 


惭愧,没想到这个。
再改:

Dim Year As  Integer = 2008
    Dim Month As integer = 2
    Dim StartDate AS date = New Date(Year, Month, 1) 
    Dim EndDate AS Date = New Date(Year, Month, Date.DaysInMonth(Year, Month))
    Dim MinVal As integer  = DataTables("订单").Compute("min(编号)", "[日期] >= #" & StartDate & "# And [日期]<= #" & EndDate & "#")
   If MainTable.Name = "调用"
            Dim f As New Filler
            f.SourceTable = DataTables("订单") '指定数据来源
            f.SourceCols = "产品,单价,折扣,数量,日期,已付款,编号,型号" '指定数据来源列
            f.DataTable = DataTables("调用") '指定数据接收表
            f.DataCols = "产品,单价,折扣,数量,日期,已付款,编号,型号" '指定数据接收列
            f.Filter = "[编号] = " & MinVal &  "  And [日期] >= #" & StartDate & "# And [日期]<= #" & EndDate & "#"
            DataTables("调用").DataRows.Clear() '清除原来的数据
            f.Fill() '填充数据
        End If

[此贴子已经被作者于2008-12-1 15:57:21编辑过]

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2008/12/1 16:02:00 [显示全部帖子]

以下是引用czy在2008-12-1 15:56:00的发言:
好象没什么两样吧?


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


 回到顶部