以文本方式查看主题

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

--  作者:nxqtxwz
--  发布时间:2015/12/24 8:27:00
--  自动编号问题
请老师们帮忙编个根据登录用户和系统日期自动编号的程序。就是“登录用户+系统日期+三位数编码”,三位数编码每增加一行自动加1.谢谢!
--  作者:Hyphen
--  发布时间:2015/12/24 8:35:00
--  

参考http://www.foxtable.com/help/topics/2403.htm

 


--  作者:nxqtxwz
--  发布时间:2015/12/24 8:42:00
--  
老师,这个例子是表中有一列日期列,我要提取系统日期,另外要加上登录用户,我不会做。
--  作者:Hyphen
--  发布时间:2015/12/24 8:59:00
--  
Dim d As Date = Date.Today
Dim max As String
Dim idx As Integer
Dim flt As String
Dim bh As String = User.Name & Format(d,"yyyyMMdd")
flt = "单据编号 like \'" & bh & "%\'"
Output.Show(flt)
max = e.DataTable.Compute("Max(单据编号)",flt)
If max > "" Then \'如果存在最大单据编号
    idx = CInt(max.Substring(max.Length-3,3)) + 1
Else
    idx = 1 \'否则顺序号等于1
End If
e.DataRow("单据编号") = bh & Format(idx,"000")

--  作者:nxqtxwz
--  发布时间:2015/12/24 14:43:00
--  
如何让增加一行编一个号?
--  作者:大红袍
--  发布时间:2015/12/24 14:50:00
--  
4楼的代码,写到DataRowAdded不就是?
--  作者:nxqtxwz
--  发布时间:2015/12/24 15:13:00
--  

老师您好:

显示.NET Framework 版本:2.0.50727.5485
Foxtable 版本:2014.11.11.1
错误所在事件:表,出差记录,DataRowAdded
详细错误信息:
调用的目标发生了异常。
输入字符串的格式不正确。不能在 编号 列中存储 <校长20151224001>。所需类型是 Int32。
输入字符串的格式不正确。
还请您给加个将前面登录者汉字名称变为英文字母的程序,我编程一点不会,请帮忙呀。


--  作者:大红袍
--  发布时间:2015/12/24 15:23:00
--  

1、编号列改成字符列,不要用数值列。

 

2、

 

Dim d As Date = Date.Today
Dim max As String
Dim idx As Integer
Dim flt As String
Dim bh As String = getpy(User.Name,true) & Format(d,"yyyyMMdd")
flt = "单据编号 like \'" & bh & "%\'"
Output.Show(flt)
max = e.DataTable.Compute("Max(单据编号)",flt)
If max > "" Then \'如果存在最大单据编号
    idx = CInt(max.Substring(max.Length-3,3)) + 1
Else
    idx = 1 \'否则顺序号等于1
End If
e.DataRow("单据编号") = bh & Format(idx,"000")