以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 单元格值的修改 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=184859) |
||||
-- 作者:青丘狐 -- 发布时间:2023/1/10 17:47:00 -- 单元格值的修改 表1 有字段 重量 ,理计,输入重量是时,系统默认 理计 等于 重量,当理计不等于重量是可以手工修改,修改后的理计值不会再变回重量的值 请问这段代码怎样写 |
||||
-- 作者:有点蓝 -- 发布时间:2023/1/10 20:05:00 -- 判断一下理计是不是有值就行了 If e.DataCol.Name = "重量" Then
If e.DataRow.IsNull("理计") Then e.DataRow("理计") = e.NewValue End If End If |
||||
-- 作者:青丘狐 -- 发布时间:2023/1/10 21:26:00 -- Tables("入库明细码单").AllowEdit = False If e.DataCol.Name = "厂发数量" Then If e.DataRow.IsNull("理计重量") Then e.DataRow("理计数量") = e.NewValue End If
没有作用不能改变 [此贴子已经被作者于2023/1/10 21:26:29编辑过]
|
||||
-- 作者:有点蓝 -- 发布时间:2023/1/10 21:35:00 -- datacolchanged事件,不需要遍历,写好代码后,重置一次列即可
|
||||
-- 作者:青丘狐 -- 发布时间:2023/1/10 22:17:00 -- For Each dr As DataRow In DataTables("入库明细").DataRows
这段用于默认理计数量=厂发数量,理计重量=厂发重量,不需要遍历请问怎样写代码 |
||||
-- 作者:青丘狐 -- 发布时间:2023/1/10 22:45:00 -- 代码效果是填写厂发数量 ,厂发重量 默认 理计数量=厂发数量,理计重量=厂发重量,系统自动填写,系统填写后可以修改理计数量,理计重量
加入这段代码可以实现系统自动填写 理计数量=厂发数量,理计重量=厂发重量 If e.DataCol.Name = "厂发数量" Then If e.DataRow.IsNull("理计重量") Then e.DataRow("理计重量") = e.NewValue End If If e.DataRow.IsNull("理计数量") Then e.DataRow("理计数量") = e.NewValue End If End If 加入这段代码无效,修改完 理计数量,理计重量, 又变回到 厂发数量,厂发重量相同的值 ,没法重置 请问要实现效果怎样写代码
[此贴子已经被作者于2023/1/10 22:46:44编辑过]
|
||||
-- 作者:有点蓝 -- 发布时间:2023/1/10 23:01:00 -- If e.DataCol.Name = "厂发重量" Then If e.DataRow.IsNull("理计重量") Then e.DataRow("理计重量") = e.NewValue End If elseIf e.DataCol.Name = "厂发数量" Then If e.DataRow.IsNull("理计数量") Then e.DataRow("理计数量") = e.NewValue End If End If
|
||||
-- 作者:青丘狐 -- 发布时间:2023/1/11 12:25:00 -- If e.DataCol.Name = "厂发重量" Then If e.DataRow.IsNull("理计重量") Then e.DataRow("理计重量") = e.NewValue End If ElseIf e.DataCol.Name = "厂发数量" Then If e.DataRow.IsNull("理计数量") Then e.DataRow("理计数量") = e.NewValue End If End If \' 重填厂发重量,理计重量=厂发重量 If e.DataCol.Name = "厂发重量" Then If e.DataRow.IsNull("理计重量") = False Then e.DataRow("厂发重量") = e.NewValue e.DataRow("理计重量") = e.DataRow("厂发重量") End If ElseIf e.DataCol.Name = "厂发数量" Then If e.DataRow.IsNull("理计数量") = False Then e.DataRow("厂发数量") = e.NewValue e.DataRow("理计数量") = e.DataRow("厂发数量") End If End If \' 清空理计重量,理计重量为空值时 理计重量=厂发重量 If e.DataCol.Name = "厂发重量" Then If e.DataRow.IsNull("理计重量") Then e.DataRow("理计重量") = e.DataRow("厂发重量") ElseIf e.DataCol.Name = "厂发数量" Then e.DataRow("理计数量") = e.DataRow("厂发数量") End If End If 理计重量为空值时 理计重量=厂发重量这段代码没有作用,请问要怎样修改 代码可以优化吗? [此贴子已经被作者于2023/1/11 12:26:22编辑过]
|
||||
-- 作者:有点蓝 -- 发布时间:2023/1/11 14:13:00 -- 只保留下面代码,其它都去掉,如果不行请上传实例说明 If e.DataCol.Name = "厂发重量" Then If e.DataRow.IsNull("理计重量") Then e.DataRow("理计重量") = e.NewValue End If ElseIf e.DataCol.Name = "厂发数量" Then If e.DataRow.IsNull("理计数量") Then e.DataRow("理计数量") = e.NewValue End If End If |
||||
-- 作者:青丘狐 -- 发布时间:2023/1/11 15:13:00 -- 上传实例说明请老师帮忙看看
[此贴子已经被作者于2023/1/11 15:13:37编辑过]
|