以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 导出不全 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=104961) |
-- 作者:zhangning -- 发布时间:2017/8/9 10:46:00 -- 导出不全 代码是: If e.DataCol.name Like "*序_进展状态*" Then Dim idx As Integer = e.DataCol.name.replace("第", "").replace("序_进展状态", "") If e.DataRow("第" & idx & "序_进展状态") = "报警" Then Dim dr6 As DataRow dr6 = DataTables("加工进展异常监控").Find("进展状态 = \'" & e.DataRow("第" & idx & "序_进展状态") & "\'") If dr6 Is Nothing Then dr6 = DataTables("加工进展异常监控").AddNew() dr6("进展状态") = e.DataRow("第" & idx & "序_进展状态") dr6("设备") = e.DataRow("第" & idx & "序_调度设备") dr6("类别") = "计划" dr6("部组名") = e.DataRow("部组名") dr6("部品ID") = e.DataRow("部品ID") dr6("工程") = e.DataRow("第" & idx & "序_工程名") dr6("开始日期") = e.DataRow("第" & idx & "序_开始日") dr6("结束日期") = e.DataRow("第" & idx & "序_结束日") dr6("投入数量") = e.DataRow("第" & idx & "序_投入数量") dr6("作业者") = e.DataRow("第" & idx & "序_作业者") dr6("加工先") = e.DataRow("第" & idx & "序_加工先") dr6("配膳日") = e.DataRow("第" & idx & "序_配膳日") dr6("夜") = e.DataRow("第" & idx & "序_夜") dr6("瓶颈") = e.DataRow("第" & idx & "序_瓶颈") End If End If End If 但导出的不全,无论有多少个”报警“,但导出的只有一个, 请参考下图,请老师帮看看问题出在哪里,谢谢!
|
-- 作者:有点甜 -- 发布时间:2017/8/9 11:25:00 -- If e.DataCol.name Like "*序_进展状态*" Then |
-- 作者:zhangning -- 发布时间:2017/8/9 11:58:00 -- 这个问题,按照老师的方法,解决了, 还有一个问题,如果显示“报警”就追加,追加以后,如果报警消除,显示为“报警解除”,那就需要将原来追加的行删掉, 这么做的目的是,将各部门报警的着重抓出来,如果问题解决了,就不需要关注了, 需要自动删除,请问老师,这种功能如何实现呢?谢谢! |
-- 作者:zhangning -- 发布时间:2017/8/9 15:25:00 -- 写了以下代码,请老师斧正,谢谢! If e.DataCol.name Like "*序_进展状态*" Then Dim idx As Integer = e.DataCol.name.replace("第", "").replace("序_进展状态", "") If e.DataRow("第" & idx & "序_进展状态") = "报警解除" Then Dim dr6 As DataRow dr6 = DataTables("加工进展异常监控").Find("开始日期 = \'" & e.DataRow("第" & idx & "序_开始日期") & "\'") If dr6 IsNot Nothing Then dr6 = DataTables("加工进展异常监控").Delete() End If End If End If |
-- 作者:有点甜 -- 发布时间:2017/8/9 15:35:00 -- If e.DataCol.name Like "*序_进展状态*" Then
Dim idx As Integer = e.DataCol.name.replace("第", "").replace("序_进展状态", "")
If e.DataRow("第" & idx & "序_进展状态") = "报警解除" Then
DataTables("加工进展异常监控").DeleteFor("加工日期编号 = \'" & e.DataRow("第" & idx & "序_加工日期编号") & "\'")
End If
End If |
-- 作者:zhangning -- 发布时间:2017/8/9 15:50:00 -- 老师太厉害了,经过实验,点“报警”,就增加行了,如“报警解除“后,增加的行就自动删除了, 我什么时候能达到老师这样的水平就好了。
|
-- 作者:zhangning -- 发布时间:2017/8/10 15:09:00 -- 老师,我今天多加了一个条件,如代码: If e.DataCol.name Like "*序_进展状态*" Then Dim idx As Integer = e.DataCol.name.replace("第", "").replace("序_进展状态", "") If e.DataRow("第" & idx & "序_进展状态") = "报警" Then Dim dr6 As DataRow dr6 = DataTables("设备别任务").Find("指令单 = \'" & e.DataRow("指令单") & "\' AND 工程 = \'" & e.DataRow("第" & idx & "序_工程名") & "\'") If dr6 Is Nothing Then dr6 = DataTables("加工进展异常监控").AddNew() dr6("开始日期") = e.DataRow("第" & idx & "序_开始日") dr6("进展状态") = e.DataRow("第" & idx & "序_进展状态") dr6("设备") = e.DataRow("第" & idx & "序_调度设备") dr6("类别") = "计划" dr6("部组名") = e.DataRow("部组名") dr6("部品ID") = e.DataRow("部品ID") dr6("指令单") = e.DataRow("指令单") dr6("工程") = e.DataRow("第" & idx & "序_工程名") dr6("开始日期") = e.DataRow("第" & idx & "序_开始日") dr6("结束日期") = e.DataRow("第" & idx & "序_结束日") dr6("投入数量") = e.DataRow("第" & idx & "序_投入数量") dr6("作业者") = e.DataRow("第" & idx & "序_作业者") dr6("加工先") = e.DataRow("第" & idx & "序_加工先") dr6("配膳日") = e.DataRow("第" & idx & "序_配膳日") dr6("夜") = e.DataRow("第" & idx & "序_夜") dr6("瓶颈") = e.DataRow("第" & idx & "序_瓶颈") End If End If End If 结果每次切换数据表,就会再次导出一遍,导致多次重复,请老师帮看看问题出在哪里?谢谢! |
-- 作者:有点甜 -- 发布时间:2017/8/10 18:25:00 -- 你切换数据表执行了什么代码?maintableChanged等事件。 [此贴子已经被作者于2017/8/10 18:24:52编辑过]
|
-- 作者:zhangning -- 发布时间:2017/8/11 8:47:00 -- 老师,是属性中的DATACOLCHANGED |
-- 作者:zhangning -- 发布时间:2017/8/11 8:49:00 -- 在maintablechanged中的代码是: DataTables("加工排产").DataCols("第11序_调度设备").RaiseDataColChanged()
|