以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 根据时间自动添加编号的问题 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=47544) |
||||
-- 作者:smljc19 -- 发布时间:2014/3/12 10:34: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 = Format(d,"yyyyMM") \'生成借款编号的前6位,4位年,2位月. If e.DataRow("借款编号").StartsWith(bh) = False \'如果借款编号的前6位不符 Dim max As String Dim idx As Integer max = e.DataTable.Compute("Max(借款编号)","添加日期 >= #" & fd & "# And 添加日期 <= #" & ld & "# And [_Identify] <> " & e.DataRow("_Identify")) \'取得该月的最大借款编号 If max > "" Then \'如果存在最大借款编号 idx = CInt(max.Substring(7,3)) + 1 \'获得最大借款编号的后三位顺序号,并加1 Else idx = 1 \'否则顺序号等于1 End If e.DataRow("借款编号") = bh & "-" & Format(idx,"000") End If End If End If 1、上面的代码是根据官方的帮助里面,查找替换了【借款编号】=【编号】,【添加日期】=【日期】两个字段; 2、【添加时间】字段属性默认值为【date()】,然后是否编辑设置为否 3、一开始弄的时候,没什么问题,当时是2013版本的,我新增行之后,【添加日期】字段就会自动添加现在的时间,然后【借款编号】里面自动添加编号,都正常,但是昨天出现错误。 4、错误: .NET Framework 版本:2.0.50727.8000 Foxtable 版本:2014.3.7.1 错误所在事件:表,借款,DataColChanged 详细错误信息: 调用的目标发生了异常。 该字符串未被识别为有效的 DateTime。有一个从索引 9 处开始的未知字。 也不知道是什么原因 新手,顺便求教发图片和发项目的方法,找了半天不知道怎么发
|
||||
-- 作者:Bin -- 发布时间:2014/3/12 10:35:00 -- 你的系统日期格式不是常规的格式,是带有星期几的格式. 只需要在控制面板日期时间里 更改系统日期格式为常规的 不带有 上午 下午 或者星期几中文字样的 日期格式即可. 如果不懂更改,可以百度一下,有详细的图文教程.
|
||||
-- 作者:狐狸爸爸 -- 发布时间:2014/3/12 10:40:00 -- 怎么传文件,参考:
http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=78
文件太大的话,要压缩上传。 [此贴子已经被作者于2014-3-12 10:43:24编辑过]
|
||||
-- 作者:狐狸爸爸 -- 发布时间:2014/3/12 10:43:00 -- 测试没有问题,按bin的说法检查一下:
|
||||
-- 作者:smljc19 -- 发布时间:2014/3/12 10:44:00 -- 修改系统时间格式,重启项目后,确认成功,又学到一点,谢谢BIN,谢谢狐爸爸!! |
||||
-- 作者:supwork -- 发布时间:2014/3/12 12:00:00 -- 最好软件处理时能兼容各种系统日期,既然已经知道了原因,软件应该能自动处理才好. 不要对系统要求太高
|