Foxtable(狐表)用户栏目专家坐堂 → 数据的自动流转之二的一点疑惑


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

主题:数据的自动流转之二的一点疑惑

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


加好友 发短信
等级:幼狐 帖子:182 积分:1968 威望:0 精华:0 注册:2012/7/2 9:35:00
数据的自动流转之二的一点疑惑  发帖心情 Post By:2012/7/22 17:30:00 [显示全部帖子]

数据的自动流转之二的一点疑惑   http://www.foxtable.com/help/topics/2274.htm

 

保存 With Tables("表A")
    If .Current IsNot Nothing Then
        .Current.Save()

        Dim jd As String
        Select Case User.Name
            Case "张三"
                jd =
"1B"
            Case "李四"
                jd =
"2B"
            Case "王五"
                jd =
"3B"
            Case Else
                Return '其他用户正常返回
        End Select
        If .Current("进度") = jd Then '如果已经处理完毕
            .Current.
DataRow.Remove() '则移除此行
        End If
    End If
End
With

疑惑为:当对应用户的可操作列的值为空的时候保存的话,以后就不能修改了。

1、张三登陆,如果新增一行,第一列和第二列不填入数据,直接保存时(保存后,进度列的值为“1B”,且已移除了此行)。

    备注:此时张三就不能再看到此行了。如果关闭系统再重新登陆时,张三同样不能看到,只能李四看到。

2、李四、王五登陆,如果可操作列为空值直接保存时,也会出现上述的情况。

3、建议改为如下代码:

   

保存 With Tables("表A").current
    Select Case User.Name
        Case "张三"
            If .Isnull("第一列") = false  andalso .Isnull("第二列")  =false Then
                .("进度") = "1B"
                .save()
                .DataRow.remove()
            End If
        Case "李四"
            If .Isnull("第三列")  = false  andalso .Isnull("第四列") = false Then
                .("进度") = "2B"
                .save()
                .DataRow.remove()
            End If
        Case "王五"
            If .Isnull("第五列") =false andalso .Isnull("第六列") = false  Then
                .("进度") = "3B"
                .save()
                .DataRow.remove()
            End If
        Case Else
            Return '其他用户正常返回
    End Select
End With

       4、实际需求此功能的用户,建议再增加一个回流的功能(增加一个回流的按钮和一个combobox按钮)

 

       不知这里的疑问是否正确,请各位老师鉴定。

 

 

[此贴子已经被作者于2012-7-22 22:27:29编辑过]

 回到顶部