以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  请版主指教  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=10340)

--  作者:zdk0915
--  发布时间:2011/5/31 19:23:00
--  请版主指教
“表B”有:“产品编号”,“产品类型"等列,要求“产品编号”能根据“产品类型"和‘日期’自动生成,型号构成要求为:“产品类型”&‘日期的“MMdd”’&‘同月,同类型的次序号’。请指导代码该如何写。谢谢!
--  作者:mr725
--  发布时间:2011/5/31 20:20:00
--  
你给个例子就能获得更快的答复了。
--  作者:zdk0915
--  发布时间:2011/5/31 22:46:00
--  
例如:在表“B”中,“产品类型”列录有内容:‘AB,AD,CB,CD’等多行,需要在“产品编号”列自动按照AB,AD,CB,CD和录入日期(按月)进行分类编号,编号的格式为:‘类型+月+日+次序号’,如:AB0531001,AB0531002,AD0531001,AD0531002,CB0531001,CB0531002,......
--  作者:zdk0915
--  发布时间:2011/5/31 22:49:00
--  

要求次序号必须是按月重新从001开始编制。请版主或高手指导,谢谢!


--  作者:blackzhu
--  发布时间:2011/6/1 7:47:00
--  
If e.DataCol.Name = "录入日期" Then
    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 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,"MMdd")
        Dim drs As List(of DataRow) = e.DataTable.Select("录入日期 >= #" & fd & "# And 录入日期 <= #" & ld & "#")
        For i As Integer = 0 To drs.Count - 1
            drs(i)("产品编号")  = bh & format(i+1,"000")
        Next
    End If
End If

现成的例子,自己修改一下吧.

--  作者:狐狸爸爸
--  发布时间:2011/6/1 7:50:00
--  
要获得快的答复和立即就能用的答复,应该自己设计好表,并输入一些测试数据,随问题一起传上来