以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  自动编号代码问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=60644)

--  作者:seal51
--  发布时间:2014/11/28 11:27:00
--  自动编号代码问题

\'---------发票编号自动根据客户编号年份生成--------------------------------
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 bh As String = "SMXS-" & e.DataRow("客户编号") & "" & Format(d,"yy") & "" \'生成编号的前缀
           
            Dim max As String
            Dim idx As Integer
            Dim flt As String
            flt = "发票编号 like \'" & bh & "%\' And [_Identify] <> " & e.DataRow("_Identify")
            max = e.DataTable.Compute("Max(发票编号)",flt) \'取得该年的相同客户编号的最大发票编号
            If max > "" Then \'如果存在最大发票编号
                idx = CInt(max.Substring(bh.Length,2)) + 1 \'获得最大发票编号的后两位顺序号,并加1
            Else
                idx = 1 \'否则顺序号等于1
            End If
            e.DataRow("发票编号") = bh & Format(idx,"00")
        End If
End Select
\'---------发票编号自动根据客户编号年份生成--------------------------------

 

上段代码使用中有个问题, 发票编号已经自动生成, 当你更改日期后, 发票编号就改变了, 怎么搞成发票编号一旦生成就不能更改呢?


--  作者:Bin
--  发布时间:2014/11/28 11:29:00
--  
加入判断 

if e.dataorw.isnull("编号")  then  \' 编号是空的,才执行编号生成代码.

--  作者:seal51
--  发布时间:2014/11/28 11:35:00
--  
加到那里呢
--  作者:Bin
--  发布时间:2014/11/28 11:54:00
--  
 Case "发票日期","客户编号" 
if

end if