以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  求教  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=95356)

--  作者:huaqing8828
--  发布时间:2017/1/17 15:55:00
--  求教
“日立产品进出明细表“只能“车间统计”和“仓库统计”能编辑,而且各自编辑各自的列,用下面的代码来实现

If User.name = "车间统计" Then
    DataTables("日立产品进出明细表").AllowEdit = True
Else
    DataTables("日立产品进出明细表").AllowEdit = False
End If
If User.name = "仓库统计" Then
    DataTables("日立产品进出明细表").AllowEdit = True
Else
    DataTables("日立产品进出明细表").AllowEdit = False
End If
Dim ctl As WinForm.Control = e.Sender
Select Case ctl.BindingField
    Case "日立产品进出明细表.入库_二层套数量","日立产品进出明细表.入库_三层套数量","日立产品进出明细表.入库_四层套数量","日立产品进出明细表.出库_二层套数量","日立产品进出明细表.出库_三层套数量","日立产品进出明细表.出库_四层套数量","日立产品进出明细表.不良品退货_二层套数量","日立产品进出明细表.不良品退货_三层套数量","日立产品进出明细表.不良品退货_四层套数量","日立产品进出明细表.退货返修入库_二层套数量","日立产品进出明细表.退货返修入库_三层套数量","日立产品进出明细表.退货返修入库_四层套数量","日立产品进出明细表.补货_二层套数量","日立产品进出明细表.补货_三层套数量","日立产品进出明细表.补货_四层套数量","日立产品进出明细表.损耗报废_二层套数量","日立产品进出明细表.损耗报废_二层套数量","日立产品进出明细表.损耗报废_三层套数量","日立产品进出明细表.损耗报废_四层套数量","日立产品进出明细表.初始库存_二层套数量","日立产品进出明细表.初始库存_三层套数量","日立产品进出明细表.初始库存_四层套数量","日立产品进出明细表.库存_二层套数量","日立产品进出明细表.库存_三层套数量","日立产品进出明细表.库存_四层套数量"
        If User.Name = "仓库统计" Then
            ctl.ReadOnly = BooleanEnum.False \'允许编辑
        Else
            ctl.ReadOnly = BooleanEnum.True \'禁止编辑
        End If
    Case "日立产品进出明细表.车间_生产片数", "日立产品进出明细表.车间_初始暂存片数", "日立产品进出明细表.车间_损耗报废片数"
        If User.Name = "车间统计" Then
            ctl.ReadOnly = BooleanEnum.False \'允许编辑
        Else
            ctl.ReadOnly = BooleanEnum.True \'禁止编辑
        End If
End Select
可是没有达到目的,出现了这样的问题:有时候仓库统计都能编辑,有时候仓库统计又能编写自己该编写的列。车间统计有时候也是这样。请教各位老师给预指点

--  作者:有点色
--  发布时间:2017/1/17 15:58:00
--  

这段代码删除

 

If User.name = "车间统计" Then
    DataTables("日立产品进出明细表").AllowEdit = True
Else
    DataTables("日立产品进出明细表").AllowEdit = False
End If
If User.name = "仓库统计" Then
    DataTables("日立产品进出明细表").AllowEdit = True
Else
    DataTables("日立产品进出明细表").AllowEdit = False
End If

--  作者:huaqing8828
--  发布时间:2017/1/17 16:09:00
--  
删除过的,除了这两个用户可以编辑,其他用户也可以编辑了,表用的是主窗口。而且出现一个只能编写自己的列,另一个都能编写
--  作者:有点色
--  发布时间:2017/1/17 16:10:00
--  

改成

 

If User.name = "车间统计" OrElse User.name = "仓库统计" Then
    DataTables("日立产品进出明细表").AllowEdit = True
Else
    DataTables("日立产品进出明细表").AllowEdit = False
End If

--  作者:huaqing8828
--  发布时间:2017/1/17 17:05:00
--  
老师,改了以后除了这两个用户能够编辑外其它用户不能编辑了。但是这两个用户编写的列不能分开,整个表的列都能编写,怎么解决呢
--  作者:有点色
--  发布时间:2017/1/17 17:47:00
--  
以下是引用huaqing8828在2017/1/17 17:05:00的发言:
老师,改了以后除了这两个用户能够编辑外其它用户不能编辑了。但是这两个用户编写的列不能分开,整个表的列都能编写,怎么解决呢

 

控件里面,肯定不能修改。

 

如果你要控制表格的,你还要去startEdit或者prepareEdit事件写代码控制 http://www.foxtable.com/webhelp/scr/0615.htm

 

 

 


--  作者:huaqing8828
--  发布时间:2017/1/18 13:56:00
--  
终于解决了