Foxtable(狐表)用户栏目专家坐堂 → [求助]筛选问题


  共有3071人关注过本帖平板打印复制链接

主题:[求助]筛选问题

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


加好友 发短信
等级:幼狐 帖子:151 积分:1110 威望:0 精华:0 注册:2015/1/24 15:26:00
[求助]筛选问题  发帖心情 Post By:2015/1/26 15:00:00 [只看该作者]

本表中有 项目代码 合同代码 签约日期 合同编号 4个字段

合同编号规则是:项目代码-合同代码-签约日期-(顺序号)

希望根据不同的合同编号前缀,自动生成递增的(顺序号)

参考http://www.foxtable.com/help/index.html?n=2403.htm的第四条,在DataColChanged事件修改设置了如下代码,不能实现,提示是筛选语句flt应该是结束的。

请教修改:

Select e.DataCol.Name

    Case "签约日期"

        If 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 bh As String = e.DataRow("项目代码") & "-" & e.DataRow("合同代码") & "-" & Format(d,"yyyyMM") & "-" '生成编号的前缀

            If e.DataRow("合同编号").StartsWith(bh) = False '如果合同编号前缀不符

                Dim max As String

                Dim idx As Integer

                Dim flt As String

                flt = "项目代码 = '"& e.DataRow("项目代码") & "' And "合同代码 = '"& e.DataRow("合同代码") & "' And "签约日期 = '" & e.DataRow("签约日期") & "'And  [_Identify] <> " & e.DataRow("_Identify") & "

                max = e.DataTable.Compute("Max(合同编号)",flt) '相同合同代码的最大合同编号

                If max > "" Then '如果存在最大合同编号

                    Dim ma As Integer

                    ma = max.LastIndexof("-")

                    idx = CInt(max.SubString(ma,3)) + 1

                Else

                    idx = 1

                End If

                e.DataRow("合同编号") = bh & Format(idx,"000")

            End If

        End If


 回到顶部