Foxtable(狐表)用户栏目专家坐堂 → 帮忙写代码


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

主题:帮忙写代码

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


加好友 发短信
等级:三尾狐 帖子:759 积分:7038 威望:0 精华:1 注册:2008/9/2 20:04:00
帮忙写代码  发帖心情 Post By:2009/5/12 11:05:00 [只看该作者]

只有主任、副主任用户组可以操作“审核”,其它用户组不能操作“审核”,当审核为TRUE时,“工作人员”表实图中除7个字段外,其它字段不能被“工作人员”用户组修改,7个字段为:开piao形式、piao据号码、fa piao日期、已交财务、联系人、文书、照片。这7个字段当“工作人员”用户组操作后不为空后,下次再进入程序又被锁定,不能修改,只有非“工作人员”用户组权限进入后,把“审核”变为False后,才能由非“工作人员”用户组修改所有被锁定的行。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:认证中心信息管理.table


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


加好友 发短信
等级:管理员 帖子:47448 积分:251060 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2009/5/12 12:19:00 [只看该作者]

1、只有主任、副主任用户组可以操作“审核”,其它用户组不能操作“审核”,

BeforeLockDataRow

锁定某行(通过审核)之前执行,可以在此处进行权限和逻辑验证,决定是否允许即将进行的锁定行操作。

e参数属性: 

DataTable:返回要锁定行的数据表。
DataRow:  返回要锁定的数据行。
Cancel:    逻辑型,设为True,取消即将进行的锁定行操作。

示例

假定只允许经理级别的用户锁定行,可以设置BeforeLockDataRow事件代码为:

If User.Group <> "经理" Then
    e.Cancel =
True
End
If


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


加好友 发短信
等级:管理员 帖子:47448 积分:251060 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2009/5/12 12:23:00 [只看该作者]

2、工作人员”表实图中除7个字段外,其它字段不能被“工作人员”用户组修改,7个字段为:开piao形式、piao据号码、fa piao日期、已交财务、联系人、文书、照片

PrepareEdit

准备编辑单元格的时候执行。

e参数属性:

Table:       准备编辑的表
Row:         准备编辑的行
Col:         准备编辑的列
IsFocusCell: 逻辑型,是否是焦点单元格   
Cancel:      逻辑型,默认为False,设为True取消编辑。



if user.Group = "工作人员"
    Select Case e.Col.Name
        case "开piao形式","piao据号码","fa piao日期","已交财务","联系人","文书","照片","审核"
        e.Cancel = true
    end Select
End IF

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


加好友 发短信
等级:管理员 帖子:47448 积分:251060 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2009/5/12 12:26:00 [只看该作者]

3、这7个字段当“工作人员”用户组操作后不为空后,下次再进入程序又被锁定,不能修改,只有非“工作人员”用户组权限进入后,把“审核”变为False后,才能由非“工作人员”用户组修改所有被锁定的行。

PrepareEdit

准备编辑单元格的时候执行。

e参数属性:

Table:       准备编辑的表
Row:         准备编辑的行
Col:         准备编辑的列
IsFocusCell: 逻辑型,是否是焦点单元格   
Cancel:      逻辑型,默认为False,设为True取消编辑。


    Select Case e.Col.Name
        case "审核"
             if user.Group = "工作人员"
                e.Cancel = True
             end if
        case "开piao形式","piao据号码","fa piao日期","已交财务","联系人","文书","照片"

            if user.Group = "工作人员" AndAlso e.Row("审核") = False
                 e.Cancel = true
            end if
    end Select

[此贴子已经被作者于2009-5-12 12:34:11编辑过]

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


加好友 发短信
等级:管理员 帖子:47448 积分:251060 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2009/5/12 12:35:00 [只看该作者]

另BeforeSaveDataRow中的代码,可以这样写,因为判断空值影坛该用IsNull:

Dim d As DataRow = e.DataRow
Dim ColNames() AS String = "文号,项目名称,委托类别,委托单位,来源单位,标的物,标的额".Split(",")
For Each ColName AS String In ColNames
    if d.IsNull(ColName) Then
        MessageBox.Show("请详细完整地填写所有资料","存盘失败",MessageBoxButtons.OK,MessageBoxIcon.Exclamation) '提示用户
        Dim Index As Integer
        Index = Tables("收入").FindRow(e.DataRow) '找出此行在收入数据Table中的位置
        If Index > -1 Then '如果找到此行
            Tables("收入").Position = Index '将焦点定位到此行
        End If
        Maintable = Tables("收入") '选择收入数据表作为主表.
        e.Cancel = True '取消存盘
        exit for
    End If
Next
[此贴子已经被作者于2009-5-12 12:40:08编辑过]

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


加好友 发短信
等级:三尾狐 帖子:759 积分:7038 威望:0 精华:1 注册:2008/9/2 20:04:00
  发帖心情 Post By:2009/5/23 10:20:00 [只看该作者]

Dim ColNames() AS String = "文号,项目名称,委托类别,委托单位,来源单位,标的物,标的额".Split(",")
For Each ColName AS String In ColNames

我记得你在帮助中讲:

集合

集合类似于数组,但是比数组更为灵活,定义集合的语法是:

Dim 集合名称 As New List(Of 数据类型)


For Each 语句

For Each 语句用来访问一个现有的集合 ,语法为:

For Each 循环变量 In 集合
    代码

Next


数组的定义方式之一为:

可以在定义数组的时候,直接给数组元素赋值,例如:

Dim Values() As Integer = {1,3,5}

你定义的Dim ColNames() AS String = "文号,项目名称,委托类别,委托单位,来源单位,标的物,标的额".Split(",")  是一个数组还是集合,如果是数组又用For Each来访问,如果是组合又不符合集合的定义语法,请狐爸给讲讲

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:858 积分:6071 威望:0 精华:19 注册:2008/9/1 9:13:00
  发帖心情 Post By:2009/5/23 12:55:00 [只看该作者]

以下是引用shixia在2009-5-23 10:20:00的发言:

我记得你在帮助中讲:

集合

集合类似于数组,但是比数组更为灵活,定义集合的语法是:

Dim 集合名称 As New List(Of 数据类型)


For Each 语句

For Each 语句用来访问一个现有的集合 ,语法为:

For Each 循环变量 In 集合
    代码

Next


数组的定义方式之一为:

可以在定义数组的时候,直接给数组元素赋值,例如:

Dim Values() As Integer = {1,3,5}

你定义的Dim ColNames() AS String = "文号,项目名称,委托类别,委托单位,来源单位,标的物,标的额".Split(",")  是一个数组还是集合,如果是数组又用For Each来访问,如果是组合又不符合集合的定义语法,请狐爸给讲讲


估计狐爸过周末去了,我代劳了吧:
String.Split 返回的是数组。
数组也可以用For Each  来访问。
帮助文件里面也没说数组不能用For Each,对吧:)
Dim s() As String = {"A","B"}
For Each str As String in s
    Output.Show(str)
Next


[此贴子已经被作者于2009-5-23 12:58:33编辑过]

 回到顶部