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


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

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

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


加好友 发短信
等级:超级版主 帖子:521 积分:4910 威望:0 精华:7 注册:2008/9/2 22:22:00
  发帖心情 Post By:2008/12/1 15:40:00 [只看该作者]

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

    ...
            f.Filter = "[编号] = " & DataTables("订单").Compute("min(编号)","[日期] >= #" & StartDate & "# And [日期]<= #" & EndDate & "#")
           ....
嘻嘻,感觉这个比较条件肯定是不对.另现在日期变为用 单引号而不是用"#"引住了?我用#通不过.

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2008/12/1 15:44:00 [只看该作者]

狐爸的代码可以,但是指定2008年 和 2月 不符合实际操作,这个年月要和调用表中日期的年月一致的。

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


加好友 发短信
等级:管理员 帖子:47448 积分:251060 威望: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、如果内部表,用#号,但是你我系统不同,也许你这边用单引号吧。
图片点击可在新窗口打开查看


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


加好友 发短信
等级:管理员 帖子:47448 积分:251060 威望: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月 不符合实际操作,这个年月要和调用表中日期的年月一致的。


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


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


加好友 发短信
等级:超级版主 帖子:521 积分:4910 威望:0 精华:7 注册:2008/9/2 22:22:00
  发帖心情 Post By:2008/12/1 15:52:00 [只看该作者]

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


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

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

 


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


加好友 发短信
等级:管理员 帖子:47448 积分:251060 威望: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编辑过]

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


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33951 威望: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

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


加好友 发短信
等级:管理员 帖子:47448 积分:251060 威望: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的填充条件也得加上日期范围限制。


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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2008/12/1 16:07:00 [只看该作者]

czy版主的可以了, 只是在订单表中增加一个月的表达式列,如:
SUBSTRING(Convert([日期],'System.String'),6,IIF(SUBSTRING(Convert([日期],'System.String'),7,1) = '-',1,2))

ybil版主的还是不能达到目的!

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


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33951 威望: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编辑过]

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