Foxtable(狐表)用户栏目专家坐堂 → 单元格权限问题


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

主题:单元格权限问题

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


加好友 发短信
等级:一尾狐 帖子:408 积分:3642 威望:0 精华:0 注册:2017/4/8 8:59:00
单元格权限问题  发帖心情 Post By:2020/6/19 12:48:00 [只看该作者]

preparedit 代码
目的:  表有3列   A列  B列  C列       行间公式是C=A*B
现在要做的是:当A列没数值或数值是0时 C列直接手工输入 (并且不受重置列影响)
                    否则 C=A*B  ,并且C禁止修改(尽管可以重置列)

preparedit 代码
If e.Col.Name = "C列" Then 
    If e.DataRow.isnull("A")  Then
       e.Cancel = False 
   Else
e.Cancel = True
    End If
End If

datacolchanged 代码

Select Case e.DataCol.Name
Case "A列","B列"
        If e.DataRow.isnull("A列") OrElse e.DataRow.isnull("B列") Then
            e.DataRow("C列)=Nothing
Else
          e.DataRow("C列")=e.DataRow("A列")*e.DataRow("B列")
          End If  
End Select

出现问题:C列当A列有数值时,还是能修改
              C列当A列没有数值时,能修改,但是重置列后改为原来数值或0

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107783 积分:548260 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/6/19 13:47:00 [只看该作者]

先看一看:http://www.foxtable.com/webhelp/topics/0604.htm

preparedit 代码
If e.Col.Name = "C列" Then 
    If e.Row.isnull("A") =false Then
e.Cancel = True
    End If
End If

datacolchanged 代码
Select Case e.DataCol.Name
Case "A列","B列"
        If e.DataRow.isnull("A列") OrElse e.DataRow.isnull("B列") Then
if e.DataRow.isnull("C列)
            e.DataRow("C列)=Nothing
endif
Else
          e.DataRow("C列")=e.DataRow("A列")*e.DataRow("B列")
          End If  
End Select

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


加好友 发短信
等级:一尾狐 帖子:408 积分:3642 威望:0 精华:0 注册:2017/4/8 8:59:00
  发帖心情 Post By:2020/6/20 12:35:00 [只看该作者]

已解决,谢谢指点

 回到顶部