在(学生排课档案) 的 BeforeAddDataRow 事件中有以下代码 判断主表是否锁定,如果锁定,不能在字表添加新的行
Dim dr As DataRow = DataTables("学生排课档案").Datarows(0)
Dim pr As DataRow = dr.GetParentrow("课程档案DAY")
If pr.Locked = True Then '判断主表状态
e.Cancel = True '那么取消输入并提示用户
Messagebox.Show("已经下课了,不能进行操作了,如需造作需要经理授权!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
End If
现在 学生档案里的内容是通过另一个排课表 在 BeforeSaveDataRow 事件中有以下代码
Dim r As DataRow = e.DataRow '当前选中的行
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("学生排课档案").addnew()
nr("日期") = d
nr("星期") = r("星期")
nr("科目") = r("科目")
nr("学号") = r("学号")
nr("姓名") = r("姓名")
'nr("性别") = r("性别")
nr("排课编号") = r("排课编号")
nr("课时段") = r("课时段")
nr("课程档案编号") = D + r("校区")+ r("分类")+ r("科目")+ r("课程")+ r("课时段")
nr("校区") = r("校区")
nr("分类") = r("分类")
nr("课程") = r("课程")
nr("时段") = r("时段")
nr("上课时间") = r("上课时间")
nr("下课时间") = r("下课时间")
i = 7
End If
d = d.AddDays(i)
Loop
现在问题 在排课的时候,同时会执行 学生排课档案的 BeforeAddDataRow 事件中的代码 (最上面的代码)
这样新生成排课档案的时候,就会报错.错误代码如下
.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2020.5.29.8
错误所在事件:学生排课档案,BeforeAddDataRow
详细错误信息:
索引超出了数组界限。
请问什么方法可以排除程序新增,还是手动新增