Foxtable(狐表)用户栏目专家坐堂 → 关于按判断自动写入


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

主题:关于按判断自动写入

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/12/27 15:17:00 [显示全部帖子]

1、afterOpenProject事件,直接填充数据,参考

 

http://www.foxtable.com/webhelp/scr/1533.htm

 

2、查找重复,参考

 

http://www.foxtable.com/webhelp/scr/0396.htm

 

3、不需要理会是否每月、每周第一天,直接判断当日的年月、年周,填充数据进去。


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/12/27 17:04:00 [显示全部帖子]

afterOpenProject事件

 

Dim dt1 As DataTable = DataTables("表C")
Dim dt As DataTable = DataTables("表B")
Dim dt2 As DataTable = DataTables("表A")
Dim d As Date = Date.Today
Dim z As Integer = System.Globalization.CultureInfo.CurrentCulture.Calendar.GetWeekOfYear(d, Globalization.CalendarWeekRule.FirstDay, DayOfWeek.Monday).ToString
Dim nz As String = d.Year & "-" & format(z, "00")
Dim ny As String = Format(d, "yyyy-MM")
For Each dr As DataRow In dt.Select("状态='在职'")
    Dim filter1 As String = "年周 = '" & nz & "' and 工号 = '" & dr("工号") & "'"
    Dim filter2 As String = "年月 = '" & ny & "' and 工号 = '" & dr("工号") & "'"
    Dim fdr1 = dt1.find(filter1)
    If fdr1 Is Nothing Then
        fdr1 = dt1.AddNew
        fdr1("状态") = dr("状态")
        fdr1("工号") = dr("工号")
        fdr1("姓名") = dr("姓名")
        fdr1("职位") = dr("职位")
        fdr1("年周") = nz
    End If
    Dim fdr2 = dt2.find(filter2)
    If fdr2 Is Nothing Then
        fdr2 = dt2.AddNew
        fdr2("状态") = dr("状态")
        fdr2("工号") = dr("工号")
        fdr2("姓名") = dr("姓名")
        fdr2("职位") = dr("职位")
        fdr2("年月") = ny
    End If
Next


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/12/27 17:28:00 [显示全部帖子]

以下是引用工匠在2017/12/27 17:25:00的发言:
万分感谢老师,还有就是我把互联网时间往后调,打开系统后A表和C表的内容写入了最新的年月和年周,但是之前写入的内容不见了。(之前写入的内容需要保留,当互联网时间更新后,按新日期条件追加年月/年周和几列对应的内容)

 

代码肯定没问题的,增加数据后,记得保存数据。


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/12/27 18:10:00 [显示全部帖子]

1、你datacolchanged事件写了什么代码?贴出你写的代码。

 

2、你可以循环每一周、每一月新增数据的,如(计算12-20到01-10,每一周的数据)

 

Dim sd As Date = "2017-12-20"
Dim ed As Date = "2018-01-10"
Dim dt1 As DataTable = DataTables("表C")
Dim dt As DataTable = DataTables("表B")
For i As Integer = 0 To Math.Ceiling((ed-sd).Totaldays / 7)
    Dim d As Date = sd.AddDays(7*i)
    Dim z As Integer = System.Globalization.CultureInfo.CurrentCulture.Calendar.GetWeekOfYear(d, Globalization.CalendarWeekRule.FirstDay, DayOfWeek.Monday).ToString
    Dim nz As String = d.Year & "-" & format(z, "00")
    Dim ny As String = Format(d, "yyyy-MM")
    For Each dr As DataRow In dt.Select("状态='在职'")
        Dim filter1 As String = "年周 = '" & nz & "' and 工号 = '" & dr("工号") & "'"
        Dim filter2 As String = "年月 = '" & ny & "' and 工号 = '" & dr("工号") & "'"
        Dim fdr1 = dt1.find(filter1)
        If fdr1 Is Nothing Then
            fdr1 = dt1.AddNew
            fdr1("状态") = dr("状态")
            fdr1("工号") = dr("工号")
            fdr1("姓名") = dr("姓名")
            fdr1("职位") = dr("职位")
            fdr1("年周") = nz
        End If
    Next
Next


 回到顶部