Foxtable(狐表)用户栏目专家坐堂 → 单元格值的修改


  共有6114人关注过本帖树形打印复制链接

主题:单元格值的修改

帅哥哟,离线,有人找我吗?
青丘狐
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:348 积分:2679 威望:0 精华:0 注册:2018/11/11 15:52:00
单元格值的修改  发帖心情 Post By:2023/1/10 17:47:00 [只看该作者]

表1   有字段  重量 ,理计,输入重量是时,系统默认 理计 等于  重量,当理计不等于重量是可以手工修改,修改后的理计值不会再变回重量的值

请问这段代码怎样写


 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110738 积分:563610 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/1/10 20:05:00 [只看该作者]

判断一下理计是不是有值就行了

If e.DataCol.Name = "重量" Then 
    If e.DataRow.IsNull("
理计"Then 
        e.
DataRow("
理计") = e.NewValue 
    End
 If
End
 
If

 回到顶部
帅哥哟,离线,有人找我吗?
青丘狐
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:348 积分:2679 威望:0 精华:0 注册:2018/11/11 15:52:00
  发帖心情 Post By:2023/1/10 21:26:00 [只看该作者]

Tables("入库明细码单").AllowEdit = False
For Each dr As DataRow In DataTables("入库明细").DataRows
    dr("理计数量") = dr("厂发数量")
    dr("理计重量") = dr("厂发重量")
    If e.DataCol.Name = "厂发重量" Then

If e.DataCol.Name = "厂发数量" Then
        If e.DataRow.IsNull("理计数量") Then

If e.DataRow.IsNull("理计重量") Then
            e.DataRow("理计重量") = e.NewValue   

e.DataRow("理计数量") = e.NewValue     
        End If

         End If
  End If
    End If
Next

 

 

没有作用不能改变

[此贴子已经被作者于2023/1/10 21:26:29编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110738 积分:563610 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/1/10 21:35:00 [只看该作者]

datacolchanged事件,不需要遍历,写好代码后,重置一次列即可

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


 回到顶部
帅哥哟,离线,有人找我吗?
青丘狐
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:348 积分:2679 威望:0 精华:0 注册:2018/11/11 15:52:00
  发帖心情 Post By:2023/1/10 22:17:00 [只看该作者]

For Each dr As DataRow In DataTables("入库明细").DataRows
    dr("理计数量") = dr("厂发数量")
    dr("理计重量") = dr("厂发重量")
Next

 

这段用于默认理计数量=厂发数量,理计重量=厂发重量,不需要遍历请问怎样写代码


 回到顶部
帅哥哟,离线,有人找我吗?
青丘狐
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:348 积分:2679 威望:0 精华:0 注册:2018/11/11 15:52:00
  发帖心情 Post By:2023/1/10 22:45:00 [只看该作者]

代码效果是填写厂发数量 ,厂发重量 默认 理计数量=厂发数量理计重量=厂发重量,系统自动填写,系统填写后可以修改理计数量,理计重量

For Each dr As DataRow In DataTables("入库明细").DataRows
    dr("理计数量") = dr("厂发数量")
    dr("理计重量") = dr("厂发重量")
Next

加入这段代码可以实现系统自动填写    理计数量=厂发数量理计重量=厂发重量    

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编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110738 积分:563610 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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

 回到顶部
帅哥哟,离线,有人找我吗?
青丘狐
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:348 积分:2679 威望:0 精华:0 注册:2018/11/11 15:52:00
  发帖心情 Post By: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编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110738 积分:563610 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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

 回到顶部
帅哥哟,离线,有人找我吗?
青丘狐
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:348 积分:2679 威望:0 精华:0 注册:2018/11/11 15:52:00
  发帖心情 Post By:2023/1/11 15:13:00 [只看该作者]

上传实例说明请老师帮忙看看
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:单元格值的修改.rar


[此贴子已经被作者于2023/1/11 15:13:37编辑过]

 回到顶部
总数 15 1 2 下一页