Foxtable(狐表)用户栏目专家坐堂 → 求高效代码


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

主题:求高效代码

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


加好友 发短信 一级勋章
等级:狐仙 帖子:9875 积分:57596 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2013/10/19 13:07:00 [只看该作者]

Dim ST As Date=Date.NOW
Dim Val As Double
Dim rs As Double
Dim y As Integer = Date.Today.Year
For m As Integer = 1 To 12
    Dim dt1 As New Date(y, m, 1)
    Dim dt2 As New Date(y, m,Date.DaysInMonth(y,m))
    Val = DataTables("zzjbqk").compute("Count(姓名)","[工资类型] like '机关干部' And [单位代码] Like 'SZ0306020000' And [调入时间]>= # " & dt1 & "# And 调入时间<= #" & dt2 & "#") '逐天累
    rs = rs + Val / dt1.day
    Output.Show(dt1.Month & "月份" & "|" & dt1.day & "天"  & Val & "人数" & "总人数" & rs)
Next

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


加好友 发短信
等级:小狐 帖子:333 积分:2759 威望:0 精华:0 注册:2012/5/8 11:06:00
  发帖心情 Post By:2013/10/19 13:14:00 [只看该作者]

blackzhu的代码,还是要用computer方法,这个方法只要一用就费时间


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


加好友 发短信
等级:二尾狐 帖子:558 积分:5937 威望:0 精华:0 注册:2013/7/11 17:39:00
  发帖心情 Post By:2013/10/19 13:16:00 [只看该作者]

这个帮助里有啊


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


加好友 发短信
等级:二尾狐 帖子:558 积分:5937 威望:0 精华:0 注册:2013/7/11 17:39:00
  发帖心情 Post By:2013/10/19 13:18:00 [只看该作者]

查找时要比较,这个=是最费时的,老大在帮助里有专门讨论这个问题的一节,具体哪节不知道了


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


加好友 发短信
等级:小狐 帖子:333 积分:2759 威望:0 精华:0 注册:2012/5/8 11:06:00
  发帖心情 Post By:2013/10/19 18:53:00 [只看该作者]

老大是说过,说只要用comput就费时间,但我这段代码貌似不用不行,所以求助的。

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


加好友 发短信 一级勋章
等级:超级版主 帖子:7237 积分:40614 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2013/10/19 19:13:00 [只看该作者]

为什么不直接统计总合计?

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


加好友 发短信
等级:小狐 帖子:333 积分:2759 威望:0 精华:0 注册:2012/5/8 11:06:00
  发帖心情 Post By:2013/10/19 19:32:00 [只看该作者]

这是国家统计局要求的算年平均人数,要求这样算,直接总合计的数据是不正确的


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


加好友 发短信
等级:六尾狐 帖子:1293 积分:9841 威望:0 精华:0 注册:2012/9/19 21:13:00
  发帖心情 Post By:2013/10/19 20:07:00 [只看该作者]

参考一下

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.foxdb

[此贴子已经被作者于2013-10-19 20:17:32编辑过]

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


加好友 发短信
等级:小狐 帖子:333 积分:2759 威望:0 精华:0 注册:2012/5/8 11:06:00
  发帖心情 Post By:2013/10/19 21:11:00 [只看该作者]

谢谢,已经搞定了,还是老大的帮助文件伟大,太伟大!

同志们啊,帮助文件要啃啊!要使劲啃。


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


加好友 发短信
等级:小狐 帖子:333 积分:2759 威望:0 精华:0 注册:2012/5/8 11:06:00
  发帖心情 Post By:2013/10/19 21:17:00 [只看该作者]

 

Dim ts As Integer '当月天数

Dim kssj As Date=#01/01/2013# '开始时间

Dim monavg As Double ' 月平均人数

Dim rs As Integer

Dim drs As List(of DataRow)= DataTables("zzjbqk").Select("[工资类型] Like '机关%' And [单位代码] Like 'SZ0306%'","[调入时间]")

For m As Integer=0 To 11 '月

    ts=Date.daysinmonth(kssj.year, kssj.month)

    For t As Integer=1 To Date.daysinmonth(kssj.year,kssj.month) '从开始时间起逐天计算

        For Each dr As DataRow In drs

            If dr("调入时间")< kssj  Then

                rs=rs+1

            End If

        Next

        kssj = kssj.adddays(1)

    Next

    monavg=monavg+rs/ts'逐月平均人数和

    ts=0:    rs=0

    If kssj>#12/21/2013# Then '如果开始时间>截止时间

        Exit For

    End If

Next

output.show(monavg/12)

 

这样最优,老大帮助文件里的思路!


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