以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  如何实现下列编号  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=24400)

--  作者:lyfxybc
--  发布时间:2012/10/12 19:07:00
--  如何实现下列编号

请帮助解决:

      如何实现下列编号:编号、日期、序号3列,编号为日期+序号。

      如:日期为2012-05-08,序号为1,  编号为201205080001。

           日期为2012-05-11,序号为11,编号为201205080011。

           日期为2012-12-08,序号为100,编号为201212080100.

 

我用的下列代码月和日前的“0”去掉了,出现201258。“5”、“8”前面的0去掉了。

 

SubString(Convert([日期],\'System.String\'),1,4)

+SubString(Convert([日期],\'System.String\'),6,IIF(SubString(Convert([日期],\'System.String\'),7,1)  In (\'-\',\'/\'),1,2))

+SubString(Convert([日期],\'System.String\'),IIF(SubString(Convert([日期],\'System.String\'),7,1) In (\'-\',\'/\'),8,9

 

 

编号就是日期+序号。日期把中间的“-”去掉,序号由四位组成,假设输入序号时只输入1,编号后四位是0001,输入序号时只输10,编号后四位是0010,

[此贴子已经被作者于2012-10-12 20:05:45编辑过]

--  作者:程兴刚
--  发布时间:2012/10/12 19:17:00
--  
看不明白您的规律!
--  作者:lyfxybc
--  发布时间:2012/10/12 19:27:00
--  

编号就是日期+序号。日期把中间的“-”去掉,序号由四位组成,

假设“日期”列输入2012-05-08,输入“序号”列时只输入1,编号为201205080001,编号后四位是0001,

“日期”列输入2012-12-08,输入“序号”列时只输入10,编号为201212080010,编号后四位是0010,


--  作者:程兴刚
--  发布时间:2012/10/12 19:41:00
--  
关键是我没看明白一楼的15月!
--  作者:程兴刚
--  发布时间:2012/10/12 19:43:00
--  

参考这个:

 

http://www.foxtable.com/bbs/dispbbs.asp?BoardID=5&ID=96&replyID=&skin=1


--  作者:lyfxybc
--  发布时间:2012/10/12 20:10:00
--  
对不起,15月是我输入的错误,可以是任意一个月。
--  作者:eric_kim
--  发布时间:2012/10/12 21:56:00
--  回复:(lyfxybc)编号就是日期+序号。日期把中间的“...
http://www.foxtable.com/help/index.html?n=2374.htm
--  作者:lyfxybc
--  发布时间:2012/10/13 6:30:00
--  

谢谢给我帮助的各位老师。我用的编号为日期+序号+顺序号。日期8位,序号3位,顺序号3位。

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:坯布输入.table

[此贴子已经被作者于2012-10-13 6:32:55编辑过]

--  作者:小猪鑫鑫
--  发布时间:2012/10/13 9:22:00
--  

楼主:您的序号列的数据类型需要改一下,统一改为整数型,然后在列属性的整数位数项设为3,这样比较好处理一点,因为您在序号列中输入的1与001如是字符型的话是不同概念的两个数,其它的代码如下:

Dim dr As DataRow =e.DataRow
Select e.DataCol.Name
    Case "日期","序号"
        If dr.IsNull("日期") OrElse dr.isnull("序号") Then
            dr("编号") = Nothing
        Else
            Dim drs As List(of DataRow) =e.DataTable.Select("日期 =#" & dr("日期") & "# and 序号 =\'" & dr("序号") & "\'" ,"_Identify")
            Dim i As Integer
            For Each tr As DataRow In drs
                Dim d As Date = tr("日期")
                Dim xh As Integer =tr("序号")
                Dim bh As String =  Format(d,"yyyyMMdd")  & format(xh,"000") \'生成编号的前缀
                i =i+1
                tr("编号") = bh & format(i,"000")
            Next
        End If
End Select

 


--  作者:小猪鑫鑫
--  发布时间:2012/10/13 9:24:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:坯布输入.table