以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]筛选问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=63682)

--  作者:青鸟
--  发布时间: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
--  发布时间:2015/1/26 15:02:00
--  
flt = "项目代码 = \'"& e.DataRow("项目代码") & "\' And 合同代码 = \'"& e.DataRow("合同代码") & "\' And 签约日期 = #" & e.DataRow("签约日期") & "# And  [_Identify] <> " & e.DataRow("_Identify") 
--  作者:青鸟
--  发布时间:2015/1/26 16:23:00
--  
谢谢,代码不在报错,但始终只执行 If Else 的Else后面的 idx = 1 语句,在Max = 语句后面设了个:msgbox(max),显示出来的Box值是空的,什么原因?输入结果如图:图片点击可在新窗口打开查看
--  作者:有点甜
--  发布时间:2015/1/26 16:27:00
--  

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


--  作者:青鸟
--  发布时间:2015/1/26 17:11:00
--  
谢谢两位老师,问题解决了,我知道了设置msgbox()查问题,出在判断条件上,非常感谢。