Foxtable(狐表)用户栏目专家坐堂 → [求助]在表属性能用,在项目属性里不管用


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

主题:[求助]在表属性能用,在项目属性里不管用

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/7/14 9:15:00 [显示全部帖子]

 你没有开启对应的全局表事件?看2楼。

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/7/14 9:22:00 [显示全部帖子]

If e.DataTable.Name = "AAA" Then
    Select e.DataCol.Name
        Case "第一次收益时间","人员姓名"
            If e.DataRow.IsNull("第一次收益时间") OrElse e.DataRow.IsNull("人员姓名") Then
                e.DataRow("人员编号") = Nothing
            Else
                Dim d As Date = e.DataRow("第一次收益时间")
                Dim y As Integer = d.Year
                Dim m As Integer = d.Month
                Dim Days As Integer = Date.DaysInMonth(y,m)
                Dim fd As Date = New Date(y,m,1) '获得该月的第一天
                Dim ld As Date = New Date(y,m,Days) '获得该月的最后一天
                Dim bh As String = e.DataRow("人员姓名") & "-" & Format(d,"yyMMdd") & "-"
               
                If e.DataRow("人员编号").StartsWith(bh) = False
                    Dim max As String
                    Dim idx As Integer
                    Dim flt As String
                    flt = "人员姓名 = '"& e.DataRow("人员姓名") & "' And 第一次收益时间 >= #" & fd & "# And 第一次收益时间 <= #" & ld & "# And [_Identify] <> " & e.DataRow("_Identify")
                    max = e.DataTable.Compute("Max(人员编号)",flt)
                   
                    If max > "" Then '如果存在最大单据编号
                        idx = CInt(max.Substring(bh.length)) + 1
                    Else
                        idx = 1
                    End If
                    e.DataRow("人员编号") = bh & Format(idx,"0000")
                End If
            End If
    End Select
end if

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/7/14 9:28:00 [显示全部帖子]

1、全局表事件,肯定要先判断表名;

 

2、关键是这句代码 idx = CInt(max.Substring(bh.length)) + 1


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/7/14 9:37:00 [显示全部帖子]

If e.DataTable.Name = "AAA" Then
    Select e.DataCol.Name
        Case "第一次收益时间","人员姓名"
            If e.DataRow.IsNull("第一次收益时间") OrElse e.DataRow.IsNull("人员姓名") Then
                e.DataRow("人员编号") = Nothing
            Else
                Dim d As Date = e.DataRow("第一次收益时间")
                Dim fd As Date = d
                Dim ld As Date = fd.AddDays(1)
                Dim bh As String = e.DataRow("人员姓名") & "-" & Format(d,"yyMMdd") & "-"
               
                If e.DataRow("人员编号").StartsWith(bh) = False
                    Dim max As String
                    Dim idx As Integer
                    Dim flt As String
                    flt = "人员姓名 = '"& e.DataRow("人员姓名") & "' And 第一次收益时间 >= #" & fd & "# And 第一次收益时间 < #" & ld & "# And [_Identify] <> " & e.DataRow("_Identify")
                    max = e.DataTable.Compute("Max(人员编号)",flt)
                   
                    If max > "" Then '如果存在最大单据编号
                        idx = CInt(max.Substring(bh.length)) + 1
                    Else
                        idx = 1
                    End If
                    e.DataRow("人员编号") = bh & Format(idx,"0000")
                End If
            End If
    End Select
End If

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/7/14 10:00:00 [显示全部帖子]

判断表名,就是屏蔽表了啊


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/7/14 10:50:00 [显示全部帖子]

If e.DataTable.Name <> "表A" AndAlso e.DataTable.Name <> "表B" Then

 回到顶部