以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 表A新增行 根据表A的条件 在表B生成数据. (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=157549) |
-- 作者:夜点蚊香 -- 发布时间:2020/10/20 15:23:00 -- 表A新增行 根据表A的条件 在表B生成数据. 表A 条件字段 日期 天数 星期 上午/下午 具体条件 2020年10月20日 100天 星期二 上午 根据 条件在表B新增数据行, 把 2020年10月20日 以后100天内的 星期二 单独挑选出来, 并且 把上午字段也写入 表B 表B 字段 日期 星期 上午/下午 |
-- 作者:有点蓝 -- 发布时间:2020/10/20 15:30:00 -- 请上传实例说明 |
-- 作者:夜点蚊香 -- 发布时间:2020/10/20 15:32:00 -- 排课表时候进行使用 学生缴费以后,每年48节课 每周二 下午上课 开始上课时间 2020年 10月20日 然后把课程信息排出来,到时间提醒学生上课.
|
-- 作者:有点蓝 -- 发布时间:2020/10/20 15:45:00 -- 获取100天内的星期二? Dim d As Date = #10/20/2020# Dim d2 As Date = d.AddDays(100) Dim i As Integer = 1 Do While d <= d2 If d.DayOfWeek = 2 Then Output.Show(d) i = 7 End If d = d.AddDays(i) Loop |
-- 作者:夜点蚊香 -- 发布时间:2020/10/20 21:32:00 -- 帮忙看一下改的代码对不对 Dim d As Date = DataTables("表A").DataCols("日期") Dim d2 As Date = d.AddDays(Tables("表A").Cols("天数")) Dim i As Integer = 1 Do While d <= d2 If d.DayOfWeek = Tables("表A").Cols("星期") Then Tables("表B").addnew() Dim b2 = DataTables("表B").DataCols("日期") B2 = D i = 7 End If d = d.AddDays(i) Loop 运行时候报错 .NET Framework 版本:4.0.30319.42000 Foxtable 版本:2020.5.29.8 错误所在事件:表,表A,BeforeSaveDataRow 详细错误信息: 调用的目标发生了异常。 从字符串“日期”到类型“Date”的转换无效。 [此贴子已经被作者于2020/10/20 21:54:25编辑过]
|
-- 作者:有点蓝 -- 发布时间:2020/10/20 22:01:00 -- 获取,或者给单元格赋值应该按行操作,比如第一行:Tables("表A").rows(0)。第四行日期列的值Tables("表A").rows(0)("日期")。当前行日期列的值:Tables("表A").current("日期") 而不是按列操作,Tables("表A").Cols("星期") 、DataTables("表B").DataCols("日期")这种是永远取不到单元格的值的dim r as row = Tables("表A").current \'当前选中的行 if r is nothing then return \'如果表格没有数据 Dim d As Date = r("日期") Dim d2 As Date = d.AddDays(r("天数")) Dim i As Integer = 1 dim nr as row Do While d <= d2 If d.DayOfWeek = r("星期") Then nr = Tables("表B").addnew() nr("日期") = d i = 7 End If d = d.AddDays(i) Loop |
-- 作者:夜点蚊香 -- 发布时间:2020/10/21 20:39:00 -- 附加问题 如果表B已经有日期数据 表A向表B写数据的时候,遇到重复的日期,如何跳过,并且写入不重复的日期数据. |
-- 作者:有点蓝 -- 发布时间:2020/10/22 8:32:00 -- 循环里使用find到表B查询是否有同样日期的值,如果有就不要新增了:http://www.foxtable.com/webhelp/topics/0396.htm |
-- 作者:夜点蚊香 -- 发布时间:2020/10/22 12:13:00 -- \'建立课程档案 避免重复 Dim rr As DataRow = e.DataRow \'当前选中的行 If rr Is Nothing Then Return \'如果表格没有数据 Dim dd As Date = rr("开始日期") Dim dd2 As Date = dd.AddDays(rr("总天数")) Dim ii As Integer = 1 Dim kc As Row \'判断当日课程是否重复 Do While dd <= dd2 Dim wr As DataRow = DataTables("课程档案DAY").Find("课程档案编号 = #" & dd & "# + \'" & rr("校区") & "\' + \'" & rr("分类") & "\' + \'" & rr("科目") & "\' + \'" & rr("课程") & "\' + \'" & rr("课时段") & "\'") If wr Is Nothing Then Continue Do Else If dd.DayOfWeek = rr("星期数字") Then kc = Tables("课程档案DAY").addnew() kc("课程档案编号") = dd + rr("校区")+ rr("分类")+ rr("科目")+ rr("课程")+ rr("课时段") kc("日期") = dd kc("星期") = rr("星期") ii = 7 End If dd = dd.AddDays(ii) Loop 上面的代码运行的时候 程序死机了,重新打开后,执行的结果也不对 \'判断当日课程是否重复 Do While dd <= dd2 Dim wr As DataRow = DataTables("课程档案DAY").Find("课程档案编号 = #" & dd & "# + \'" & rr("校区") & "\' + \'" & rr("分类") & "\' + \'" & rr("科目") & "\' + \'" & rr("课程") & "\' + \'" & rr("课时段") & "\'") If wr Is Nothing Then Continue Do 这个代码是判断是否重复的代码.请指教 |
-- 作者:有点蓝 -- 发布时间:2020/10/22 13:37:00 -- Do While dd <= dd2 If dd.DayOfWeek = rr("星期数字") Then dim bh as string = dd + rr("校区")+ rr("分类")+ rr("科目")+ rr("课程")+ rr("课时段") Dim wr As DataRow = DataTables("课程档案DAY").Find("课程档案编号 = \'" & bh & "\'") If wr Isnot Nothing Then kc = Tables("课程档案DAY").addnew() kc("课程档案编号") = bh kc("日期") = dd kc("星期") = rr("星期") end if ii = 7 End If dd = dd.AddDays(ii) Loop
|