以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 自动汇总代码 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=89171) |
-- 作者:zhangning -- 发布时间:2016/8/16 16:32:00 -- 自动汇总代码 现有2个表, ![]() ![]() ![]() ![]() 想要的结果是根据考勤机表,自动分月份汇总 |
-- 作者:zhangning -- 发布时间:2016/8/16 16:35:00 -- 现在在DATACOLCHANGED中写的代码是 If e.DataCol.Name = "姓名" Then Dim Filter As String = "[姓名] = \'" & e.NewValue & "\'" e.DataRow("一倍半加班H") = DataTables("考勤机").Compute("Sum(一倍半加班H)", Filter) e.DataRow("二倍加班H") = DataTables("考勤机").Compute("Sum(二倍加班H)", Filter) e.DataRow("三倍加班H") = DataTables("考勤机").Compute("Sum(三倍加班H)", Filter) e.DataRow("迟到H") = DataTables("考勤机").Compute("Sum(迟到H)", Filter) e.DataRow("早退H") = DataTables("考勤机").Compute("Sum(早退H)", Filter) e.DataRow("未打卡回") = DataTables("考勤机").Compute("Sum(未打卡回)", Filter) e.DataRow("有薪休假H") = DataTables("考勤机").Compute("Sum(有薪休假H)", Filter) e.DataRow("事假H") = DataTables("考勤机").Compute("Sum(事假H)", Filter) e.DataRow("病假H") = DataTables("考勤机").Compute("Sum(病假H)", Filter) End If Select Case e.DataCol.Name Case "姓名" Dim pr As DataRow pr = DataTables("考勤机").Find("姓名 = \'" & e.DataRow("姓名") & "\'") If pr IsNot Nothing Then DataTables("考勤机").DataCols("姓名").RaiseDataColChanged(pr) End If End Select 存在的问题是: 1.没有加入按“年月”汇总的条件 2.出勤汇总表中,需要手输入“年月”和“姓名”, 请老师帮帮忙,谢谢! |
-- 作者:大红袍 -- 发布时间:2016/8/16 16:41:00 -- 1、
If e.DataCol.Name = "姓名" OrElse e.dataCol.Name = "年月" Then
2、用代码填充
http://www.foxtable.com/webhelp/scr/0680.htm
|
-- 作者:zhangning -- 发布时间:2016/8/16 16:53:00 -- 按照老师说的,完美解决, 用代码填充的 请问老师,除了在命令窗口中外,能否放在事件中去? 放在什么事件呢?
|
-- 作者:大红袍 -- 发布时间:2016/8/16 17:17:00 -- 以下是引用zhangning在2016/8/16 16:53:00的发言:
按照老师说的,完美解决, 用代码填充的 请问老师,除了在命令窗口中外,能否放在事件中去? 放在什么事件呢?
可以写到AfterOpenProject事件。 |
-- 作者:zhangning -- 发布时间:2016/8/17 10:26:00 -- 老师,这样能填充进去,只是,每次打开都填充一次, 怎样才能让同一月份的同一人只能填充一次,或者,打开时,如已经有了,就不填充了, |
-- 作者:大红袍 -- 发布时间:2016/8/17 11:04:00 -- 设置属性为true
ExcludeExistValue |
-- 作者:zhangning -- 发布时间:2016/8/17 14:26:00 -- 老师,这个解决了, 我想要的结果是: 如果“全勤天数” = “出勤天数” ,“有全勤奖”(逻辑列)选中 但以下代码不管用,请老师帮看看问题出在哪里? If e.DataCol.Name = "全勤天数" AndAlso e.DataCol.Name = "出勤天数" Then If e.DataRow("全勤天数") = e.DataRow("出勤天数") Then If e.DataRow("有全勤奖") = True Else e.DataRow("有全勤奖") = False End If End If End If |
-- 作者:大红袍 -- 发布时间:2016/8/17 14:54:00 -- If e.DataCol.Name = "全勤天数" OrElse e.DataCol.Name = "出勤天数" Then
If e.DataRow("全勤天数") = e.DataRow("出勤天数") Then
If e.DataRow("有全勤奖") = True
Else
e.DataRow("有全勤奖") = False
End If
End If
End If |