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


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

主题:[求助]筛选问题

帅哥哟,离线,有人找我吗?
青鸟
  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


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


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

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

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


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

谢谢,代码不在报错,但始终只执行 If Else 的Else后面的 idx = 1 语句,在Max = 语句后面设了个:msgbox(max),显示出来的Box值是空的,什么原因?输入结果如图:图片点击可在新窗口打开查看

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2015/1/26 16:27:00 [只看该作者]

 呃,你是用2楼的代码么?如果是,就不应该有问题。


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


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

谢谢两位老师,问题解决了,我知道了设置msgbox()查问题,出在判断条件上,非常感谢。

 回到顶部