Foxtable(狐表)用户栏目专家坐堂 → [求助]窗口功能


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

主题:[求助]窗口功能

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


加好友 发短信
等级:小狐 帖子:390 积分:3168 威望:0 精华:0 注册:2008/8/31 20:44:00
[求助]窗口功能  发帖心情 Post By:2015/5/27 6:59:00 [只看该作者]

要求:
1、当确认列不为空,锁定行,只有角色是“电梯审核“,且审核列为空时,可以编辑审核退回意见,只有是角色是批准,且审核列不为空时,可以编辑审批退回意见。

2、当确认列为空,除了审核退回意见列和审批退回意见列,不能编辑。其他列可以编辑。
在prepareEdit写入代码:
Select Case e.Col.name
    Case "审核退回意见", "批准退回意见"
        If e.Row.IsNull("确认") = False Then
            If e.Col.Name = "审核退回意见" Then
                If User.Isrole("电梯审核") = False Or  e.Row.IsNull("审核") = False   Then
                    e.Cancel = True
                End If
            Else If e.Col.Name = "批准退回意见"  Then
                If User.Isrole("审批") = False  Or e.Row.IsNull("审核") = True  Then
                    e.Cancel = True
                End If
            End If
        Else
            e.cancel = True
        End If
    Case Else
        If e.Row.IsNull("确认") = False Then
            e.cancel = True
        End If
End Select

窗口的全局事件Enter事件中设置的代码
Dim ctl As WinForm.Control = e.Sender
If ctl.Name <> "单位查找" AndAlso ctl.Name <> "出厂编号查找" Then
    If Tables("表A").Current.DataRow.SQLGetValue("确认").Gettype.Name = "DBNull" Then  '确认是空值
        ctl.ReadOnly = BooleanEnum.False '可以编辑
    Else
        ctl.ReadOnly = BooleanEnum.True '禁止编辑
    End If
End If

现在我把退回意见的两个列放到窗口中。怎样窗口的全局事件Enter事件中设置的代码结合一起:


[此贴子已经被作者于2015/5/27 7:16:24编辑过]

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2015/5/27 8:34:00 [只看该作者]

代码是一样的. 把 e.row 改为 tables("表名").current

e.col.name 改为 e.sender.name 

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/5/27 9:13:00 [只看该作者]

 或者,你可以在datacolchanging事件写代码,代码和prepareEdit的事件基本一致col换成DataCol,row换成DataRow

 回到顶部