以文本方式查看主题 - Foxtable(狐表) (http://www.foxtable.com/bbs/index.asp) -- 专家坐堂 (http://www.foxtable.com/bbs/list.asp?boardid=2) ---- 跨表填报有错,请指正。 (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=157858) |
-- 作者:zsxx999ja -- 发布时间:2020/10/30 22:57:00 -- 跨表填报有错,请指正。 我有《短信内容》与 《蒋安出差》两个表,如果短信内容的【是否填报】字段打钩,那么就先检查《蒋安出差表》当天是否填报过,没有再插入行或增加行,相反【是否填报】字段钩去掉,就删除当天同内容的行,测试有点问题,指正 If e.DataCol.Name = "是否填报" Then Select Case e.NewValue Case True If e.DataRow("会议时间") IsNot Nothing Then Dim dt As Date = e.DataRow("会议时间") Dim str As String =e.DataRow("内容") Dim dr As DataRow = DataTables("蒋安出差").find("出差起日期= \'" & dt & "\'") If dr IsNot Nothing Then Dim Result As DialogResult Result = MessageBox.show("出差时间" & dt & Chr(13) & Chr(10) & "出差事由:" & str & ",","请检查是否填报",MessageBoxButtons.YesNo,MessageBoxIcon.Warning) If Result = DialogResult.Yes Then Tables("蒋安出差").Sort = "" Dim wz As Integer = Tables("蒋安出差").findrow(dr) If wz >=0 Then Tables("蒋安出差").Position = wz Tables("蒋安出差").InsertNew() Tables("蒋安出差").Current("出差起日期") = dt Tables("蒋安出差").Current("工作地点及说明") = e.DataRow("内容") Tables("蒋安出差").Current.Save Tables("蒋安出差").Current.Load End If End If Else Dim r1 As DataRow = DataTables("蒋安出差").AddNew r1("出差起日期") = dt r1("工作地点及说明") = e.DataRow("内容") r1.Load End If Else MessageBox.show("通知时间字段不能为空") Tables("蒋安出差").Select(0,0) End If Case False If e.DataRow("通知时间") IsNot Nothing Then Dim dt As Date = e.DataRow("会议时间") Dim str As String =e.DataRow("内容") Dim dr As DataRow = DataTables("蒋安出差").find("出差起日期= \'" & dt & "\' and 工作地点及说明 = \'" & str & "\'") If dr IsNot Nothing Then Dim Result As DialogResult Result = MessageBox.show("出差时间" & dt & Chr(13) & Chr(10) & "出差事由:" & str & ",","请检查是否删除重复的填报",MessageBoxButtons.YesNo,MessageBoxIcon.Warning) If Result = DialogResult.Yes Then DataTables("蒋安出差").DeleteFor("出差起日期= \'" & dt & "\' and 工作地点及说明 = \'" & str & "\'") End If End If End If End Select End If
|
-- 作者:有点蓝 -- 发布时间:2020/10/31 10:05:00 -- 有什么问题? If wz >=0 Then Tables("蒋安出差").Position = wz dim r as row = Tables("蒋安出差").InsertNew() r("出差起日期") = dt r("工作地点及说明") = e.DataRow("内容") r.Save End If 刚刚新增的行,r1.Load完全就是多余的,也不会有任何作用
|
-- 作者:zsxx999ja -- 发布时间:2020/10/31 10:19:00 -- 这里的代码改后放在datacolchanged还是datacolching事件好?测试时,反应都有点滞后。datacolchanged事件是鼠标离开总元格后才发生的。2.我重置列,什么反应也没有? |
-- 作者:有点蓝 -- 发布时间:2020/10/31 10:43:00 -- 什么反应也没有,说明不符合代码里的判断条件 单元格空值判断请统一使用isnull If e.DataRow("通知时间") IsNot Nothing Then 改为 If e.DataRow.isnull("通知时间") = false Then
|