以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 【新手教程】狐步系列二--跨表验证输入项目是否正确,并引用输入项的相关属性 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=23311) |
-- 作者:lichenwudi -- 发布时间:2012/9/8 16:38:00 -- 【新手教程】狐步系列二--跨表验证输入项目是否正确,并引用输入项的相关属性 Dim dr As DataRow = e.DataRow ‘定义变量dr Select Case e.DataCol.Name ’列名作为变化的相关判断 Case "胚重","毛重","条数","纸管及胶袋" ‘如果数据列变动的列名为 "胚重"或"毛重"或"条数"或"纸管及胶袋" dr("损耗率") =1- (dr("毛重") - dr("纸管及胶袋")*dr("条数"))/dr("胚重") ’执行计算公式 End Select If e.DataCol.Name = "品种" Then \'如果内容发生变动的是品种列 If e.NewValue Is Nothing Then \'如果新值是空白,也就是品种列的内容为空 e.DataRow("损耗限值") = Nothing \'那么清空此行 损耗限值 列的内容 Else Dim dr3 As DataRow ‘定义变量dr3 Dim dr2 As DataRow ’定于变量dr2 dr3 = DataTables("基础数据表").Find("[品种] = \'" & e.NewValue & "\'") ‘以新输入的 项
\'" & e.NewValue & "\' 在基础数据表的品种列中查找 If dr3 Is Nothing Then \'如果在基础数据表的品种列中没找到了同名的产品行,也就是dr是Nothing ,就弹出报错信息 MessageBox.Show ("请仔细检查是否存在以下2种情况,并做对应处理:"& Chr(13) & Chr(10) &"1.输入错误."& Chr(13) & Chr(10) &"2.该品种是新品种."& Chr(13) & Chr(10) &"如果是新品种,请增加至基础列表.谢谢!","提示", MessageBoxButtons.OK, MessageBoxIcon.Information) Else ’否则 将对应的 损耗限值 赋值给 当前表的 损耗限值的对应行 e.DataRow("损耗限值") = dr3("损耗限值") End If \'以下代码与上一段获取损耗限值的原理差不多,唯一不同的是,由于第一次已经做了产品不存在的报错提示了,为了客户体验这里就不再重复判断了 dr2 = DataTables("基础数据表").Find("[品种] = \'" & e.NewValue & "\'") If dr2 IsNot Nothing Then \'如果找到了同名的产品行,也就是dr不是 Nothing e.DataRow("品类") = dr2("品类") End If End If End If
[此贴子已经被作者于2012-9-8 16:39:11编辑过]
|
-- 作者:lichenwudi -- 发布时间:2012/9/8 16:40:00 -- 如果觉得有帮助就把它顶起来吧!你的回帖我的动力! |
-- 作者:everybody -- 发布时间:2015/7/19 22:24:00 -- 我来顶顶!!!! |
-- 作者:zqxzhs -- 发布时间:2015/7/19 22:27:00 -- 没有看明白什么意思 |