Foxtable(狐表)用户栏目专家坐堂 → 为何仪表盘数据要快1秒?


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

主题:为何仪表盘数据要快1秒?

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


加好友 发短信
等级:四尾狐 帖子:862 积分:5974 威望:0 精华:0 注册:2016/4/15 22:24:00
为何仪表盘数据要快1秒?  发帖心情 Post By:2024/9/24 8:38:00 [显示全部帖子]

为何仪表盘数据要快1秒?
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目924.rar


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


加好友 发短信
等级:四尾狐 帖子:862 积分:5974 威望:0 精华:0 注册:2016/4/15 22:24:00
  发帖心情 Post By:2024/9/24 9:13:00 [显示全部帖子]

确实是这样

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


加好友 发短信
等级:四尾狐 帖子:862 积分:5974 威望:0 精华:0 注册:2016/4/15 22:24:00
  发帖心情 Post By:2024/9/25 10:55:00 [显示全部帖子]

 'DatePart函数语法:DatePart(interval, Date[, firstdayofweek[, firstweekofyear]])
 'firstdayofweek参数的设定值:指定星期一为第一天。vbMonday2星期一
 'firstweekofyear参数的设定值:指定一年中第一周,新年中包含 1 月 1 日至少有四天的星期为第一周。(即大半个星期)'vbFirstFourDays 2 
 'e.DataRow("中国标准年周次") = e.DataRow("日期").Year & "年第" & Datepart("ww", e.DataRow("日期")[, vbMonday[, vbFirstFourDays]]) & "周"
 老师, 请教一下, 这样写怎么出错?

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


加好友 发短信
等级:四尾狐 帖子:862 积分:5974 威望:0 精华:0 注册:2016/4/15 22:24:00
  发帖心情 Post By:2024/9/25 12:39:00 [显示全部帖子]

DatePart函数语法:DatePart(interval, date[,firstdayofweek[, firstweekofyear]])
firstdayofweek如果没有指定,则默认为星期日为第一天。
firstweekofyear如果没有指定,则默认为从包含 1 月 1 日的星期为第一周。
根据:Datepart("ww", e.DataRow("日期"))计算
2019-12-31星期二 2019年第53周,根据中国标准,应算2020年第1周
2021-01-01星期五 2021年第1周,根据中国标准,应算2020年第53周
根据中国标准,firstdayofweek和firstweekofyear这两个参数不能使用缺省值,应设置为:
firstdayofweek 参数的设定值如下:
常数 值 描述
vbMonday 2 星期一
firstweekofyear 参数的设定值如下:
常数 值 描述
vbFirstFourDays 2 从第一个其大半个星期在新的一年的一周开始。
请教老师,下面这个代码怎么修改?
Datepart("ww", e.DataRow("日期")[, vbMonday[, vbFirstFourDays]])
Datepart("ww", e.DataRow("日期")[, 2[, 2]])

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


加好友 发短信
等级:四尾狐 帖子:862 积分:5974 威望:0 精华:0 注册:2016/4/15 22:24:00
  发帖心情 Post By:2024/9/25 14:30:00 [显示全部帖子]

中国标准的年周次计算正确代码
e.DataRow("中国标准年周次") = Datepart("ww", e.DataRow("日期"), vbMonday, vbFirstFourDays) '星期一为星期第一天;新年中包含 1 月 1 日至少有四天的星期为第一周
这里加上年和周后, 年就不对了, 还需要进行判断
e.DataRow("辅助年周次2") = e.DataRow("日期").Year & "年第" & Datepart("ww", e.DataRow("日期"), vbMonday, vbFirstFourDays) & "周"
请教老师, 这里代码如何表达年初几天, 若1月1日为星期5、6、7, 则为上年的年数;年末12月31日为星期1、2、3, 则为下年的年数;
如:2021 - 01 - 01星期五 2020年第53周 2019 - 12 - 31星期二 2020年第1周

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


加好友 发短信
等级:四尾狐 帖子:862 积分:5974 威望:0 精华:0 注册:2016/4/15 22:24:00
  发帖心情 Post By:2024/9/25 15:39:00 [显示全部帖子]

If e.DataCol.name = "日期" Then '如果更改的日期列
    If e.DataRow.IsNull("日期") Then '日期是否为空  
        
    Else 
        Dim d0 As Date = e.DataRow("日期")
        Dim d1 As Date
        Dim d2 As Date
        Dim d3 As Date
        Dim d4 As Date
        Dim ZY As Integer = d0.Year 
        d1 = New Date(ZY, 1, 1) '取得该年的第一天
        d2 = New Date(ZY, 12, 31) '取得该年的最后一天
        d3 = New Date(ZY, 1, 4) 
        d4 = New Date(ZY, 12, 28) 
        Dim xq1 As Integer = Weekday(d1, 2)
        Dim xq2 As Integer = Weekday(d2, 2)
     If d0<d3 And xq1>4 Then '也就是1月1日是星期四后面的(包括星期5、6、7)        
            e.DataRow("中国标准年周次1") = ZY - 1 & "年第" & Datepart("ww", d0, vbMonday, vbFirstFourDays) & "周"
        ElseIf d0>d4 And xq2<4 Then '也就是12月31日是星期四前面的(包括星期1、2、3) 
            e.DataRow("中国标准年周次1") = ZY + 1 & "年第1周"
        Else
            e.DataRow("中国标准年周次1") = ZY & "年第" & Datepart("ww", d0, vbMonday, vbFirstFourDays) & "周"
        End If
    End If
End If
老师,请看一下,这样写行吗,代码还能不能简单点
[此贴子已经被作者于2024/9/25 16:41:33编辑过]

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


加好友 发短信
等级:四尾狐 帖子:862 积分:5974 威望:0 精华:0 注册:2016/4/15 22:24:00
  发帖心情 Post By:2024/9/26 9:32:00 [显示全部帖子]

If e.DataCol.name = "日期" Then '如果更改的日期列
    If e.DataRow.IsNull("日期") Then '日期是否为空  
        e.DataRow("年周次计算_中国标准") = Nothing
    Else 
        Dim d0 As Date = e.DataRow("日期")
        Dim d1 As Date
        Dim d2 As Date
        Dim d3 As Date
        Dim d4 As Date
        Dim ZY As Integer = d0.Year 
        d1 = New Date(ZY, 1, 1) '取得该年的第一天
        d2 = New Date(ZY, 12, 31) '取得该年的最后一天
        d3 = New Date(ZY, 1, 4) '1月4日总是在一年第一个日历星期
        d4 = New Date(ZY, 12, 28) '12月28日总是在一年最后一个日历星期
        Dim xq As Integer = Weekday(d1, 2) 'weekday是从周一开始计算;weekday返回值从0开始,星期一是第一天。
        If d0 >= d1 And d0 < d3 And xq > 4 Then '也就是1月1日是星期四后面的(包括星期5、6、7)        
            e.DataRow("年周次计算_中国标准") = ZY - 1 & "年第" & Datepart("ww", d0, vbMonday, vbFirstFourDays) & "周"
        ElseIf d0 > d4 And d0 <= d2 And xq < 4 Then '也就是12月31日是星期四前面的(包括星期1、2、3) 
            e.DataRow("年周次计算_中国标准") = ZY + 1 & "年第1周" 
        Else
            e.DataRow("年周次计算_中国标准") = ZY & "年第" & Datepart("ww", d0, vbMonday, vbFirstFourDays) & "周"
        End If
    End If
End If

    明白了,己解决
[此贴子已经被作者于2024/9/26 11:00:20编辑过]

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


加好友 发短信
等级:四尾狐 帖子:862 积分:5974 威望:0 精华:0 注册:2016/4/15 22:24:00
  发帖心情 Post By:2024/10/31 16:59:00 [显示全部帖子]

窗口组织结构图,怎么修改代码,加一个判断,假若表“备注”列标出有问题的,则方框显示为红色
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目5.rar

[此贴子已经被作者于2024/10/31 17:21:46编辑过]

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


加好友 发短信
等级:四尾狐 帖子:862 积分:5974 威望:0 精华:0 注册:2016/4/15 22:24:00
  发帖心情 Post By:2024/10/31 21:51:00 [显示全部帖子]

谢谢老师

 回到顶部