以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 自动增行 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=79686) |
-- 作者:cold -- 发布时间:2016/1/7 11:51:00 -- 自动增行 今天写了一些代码在事件编程(DataColChanged): 在[检验结果]表中,新增一行记录,输入批号,同时检测表[入库标签]中,是否有相同批号,如果没有就判断“检测结果”列中输入的信息,如果是“合格”或“让步接受”,就自动在表[入库标签]中增加一行,同时把批号、日期、检验结果等值都带到该表中,否则表[入库标签]没有操作。 但好像有些问题,可以自动增行,但判断条件上,不论“检测结果”列中输入什么,表[入库标签]都会自动增加行。 请老师看看,谢谢! Select Case e.DataCol.name Case "检验结果" Dim dr As DataRow = DataTables("入库标签").Find("批号 = \'" & e.OldValue & "\'") Dim hg As DataRow=DataTables("检验结果").Find("检验结果=\'合格\'") Dim rb As DataRow=DataTables("检验结果").Find("检验结果=\'让步接受\'") If dr Is Nothing Then If hg IsNot Nothing Then ElseIf rb IsNot Nothing Then dr = DataTables("入库标签").AddNew() dr("批号") = e.DataRow("批号") dr("检验结果") = e.DataRow("检验结果") dr("检验日期") = e.DataRow("检验日期") Else dr("批号") = e.DataRow("批号") End If End If Case "检验日期","检验结果" Dim dr As DataRow = DataTables("入库标签").Find("批号 = \'" & e.DataRow("批号") & "\'") If dr IsNot Nothing Then dr(e.DataCol.Name) = e.DataRow(e.DataCol.Name) End If End Select 截图不能上传。 |
-- 作者:大红袍 -- 发布时间:2016/1/7 12:06:00 -- Select Case e.DataCol.name Case "批号" Dim dr As DataRow = DataTables("入库标签").Find("批号 = \'" & e.OldValue & "\'") If dr Is Nothing Then If e.DataRow("检验结果")="合格" AndAlso e.DataRow("检验结果")="让步接受" Then dr = DataTables("入库标签").AddNew() dr("批号") = e.DataRow("批号") dr("检验结果") = e.DataRow("检验结果") dr("检验日期") = e.DataRow("检验日期") End If Else dr("批号") = e.DataRow("批号") End If Case "检验日期","检验结果" Dim dr As DataRow = DataTables("入库标签").Find("批号 = \'" & e.DataRow("批号") & "\'") If dr Is Nothing AndAlso e.DataRow("检验结果")="合格" AndAlso e.DataRow("检验结果")="让步接受" Then dr = DataTables("入库标签").AddNew() dr("批号") = e.DataRow("批号") dr("检验结果") = e.DataRow("检验结果") dr("检验日期") = e.DataRow("检验日期") End If If dr IsNot Nothing Then dr(e.DataCol.Name) = e.DataRow(e.DataCol.Name) End If End Select |
-- 作者:cold -- 发布时间:2016/1/7 13:12:00 -- 谢谢版主,可是我试了,表[入库标签]没有自动增行。 有两张表[检验结果]和[入库标签]。
|
-- 作者:cold -- 发布时间:2016/1/7 13:16:00 -- 以下是引用大红袍在2016/1/7 12:06:00的发言: Select Case e.DataCol.name Case "批号" Dim dr As DataRow = DataTables("入库标签").Find("批号 = \'" & e.OldValue & "\'") If dr Is Nothing Then If e.DataRow("检验结果")="合格" AndAlso e.DataRow("检验结果")="让步接受" Then dr = DataTables("入库标签").AddNew() dr("批号") = e.DataRow("批号") dr("检验结果") = e.DataRow("检验结果") dr("检验日期") = e.DataRow("检验日期") End If Else dr("批号") = e.DataRow("批号") End If Case "检验日期","检验结果" Dim dr As DataRow = DataTables("入库标签").Find("批号 = \'" & e.DataRow("批号") & "\'") If dr Is Nothing AndAlso e.DataRow("检验结果")="合格" AndAlso e.DataRow("检验结果")="让步接受" Then dr = DataTables("入库标签").AddNew() dr("批号") = e.DataRow("批号") dr("检验结果") = e.DataRow("检验结果") dr("检验日期") = e.DataRow("检验日期") End If If dr IsNot Nothing Then dr(e.DataCol.Name) = e.DataRow(e.DataCol.Name) End If End Select |
-- 作者:大红袍 -- 发布时间:2016/1/7 14:26:00 -- Select Case e.DataCol.name Case "批号" Dim dr As DataRow = DataTables("入库标签").Find("批号 = \'" & e.OldValue & "\'") If dr Is Nothing Then If e.DataRow("检验结果")="合格" orelse e.DataRow("检验结果")="让步接受" Then dr = DataTables("入库标签").AddNew() dr("批号") = e.DataRow("批号") dr("检验结果") = e.DataRow("检验结果") dr("检验日期") = e.DataRow("检验日期") End If Else dr("批号") = e.DataRow("批号") End If Case "检验日期","检验结果" Dim dr As DataRow = DataTables("入库标签").Find("批号 = \'" & e.DataRow("批号") & "\'") If dr Is Nothing AndAlso (e.DataRow("检验结果")="合格" orelse e.DataRow("检验结果")="让步接受") Then dr = DataTables("入库标签").AddNew() dr("批号") = e.DataRow("批号") dr("检验结果") = e.DataRow("检验结果") dr("检验日期") = e.DataRow("检验日期") End If If dr IsNot Nothing Then dr(e.DataCol.Name) = e.DataRow(e.DataCol.Name) End If End Select |
-- 作者:cold -- 发布时间:2016/1/7 14:27:00 -- 以下是引用大红袍在2016/1/7 12:06:00的发言: Select Case e.DataCol.name Case "批号" Dim dr As DataRow = DataTables("入库标签").Find("批号 = \'" & e.OldValue & "\'") If dr Is Nothing Then If e.DataRow("检验结果")="合格" AndAlso e.DataRow("检验结果")="让步接受" Then dr = DataTables("入库标签").AddNew() dr("批号") = e.DataRow("批号") dr("检验结果") = e.DataRow("检验结果") dr("检验日期") = e.DataRow("检验日期") End If Else dr("批号") = e.DataRow("批号") End If Case "检验日期","检验结果" Dim dr As DataRow = DataTables("入库标签").Find("批号 = \'" & e.DataRow("批号") & "\'") If dr Is Nothing AndAlso e.DataRow("检验结果")="合格" AndAlso e.DataRow("检验结果")="让步接受" Then dr = DataTables("入库标签").AddNew() dr("批号") = e.DataRow("批号") dr("检验结果") = e.DataRow("检验结果") dr("检验日期") = e.DataRow("检验日期") End If If dr IsNot Nothing Then dr(e.DataCol.Name) = e.DataRow(e.DataCol.Name) End If End Select 找到问题了,是AndAlso的问题,修改成Or,就好了。但还有一个问题,如果把检验结果修改后,如果自动增加一行后,“检验结果”中的值也跟着改变,不管是合格还是退货,不会自动删除行。不过这个是另一个表中设计的事件了。 谢谢!!!!
|
-- 作者:大红袍 -- 发布时间:2016/1/7 14:40:00 --
[此贴子已经被作者于2016/1/7 14:39:57编辑过]
|
-- 作者:大红袍 -- 发布时间:2016/1/7 14:43:00 -- Case "检验日期","检验结果"
[此贴子已经被作者于2016/1/7 14:43:20编辑过]
|