以文本方式查看主题
- Foxtable(狐表) (http://foxtable.net/bbs/index.asp)
-- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2)
---- 自动编号 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=52420)
|
-- 作者:风声
-- 发布时间:2014/6/15 21:57:00
-- 自动编号
此主题相关图片如下:自动编号.png
老师,我要在"通信信息"表的"企业编号"列自动编号。
|
-- 作者:有点甜
-- 发布时间:2014/6/15 21:58:00
--
参考 示例三
http://www.foxtable.com/help/topics/2403.htm
|
-- 作者:风声
-- 发布时间:2014/6/15 22:30:00
--
Select e.DataCol.Name Case "群组分类" If e.DataRow.IsNull("群组分类") Then e.DataRow("企业编号") = Nothing Else Dim lb As String = e.DataRow("群组分类") If e.DataRow("企业编号").StartsWith(lb) = False \'如果单据编号前缀不符 Dim max As String Dim idx As Integer max = e.DataTable.Compute("Max(企业编号)","群组分类 = \'" & lb & "\' And [_Identify] <> " & e.DataRow("_Identify")) \'取得该类别的最大编号 If max > "" Then \'如果存在最大编号 idx = CInt(max.Substring(2,3)) + 1 \'获得最大编号的顺序号,并加1 Else idx = 1 \'否则顺序号等于1 End If e.DataRow("企业编号") = lb & Format(idx,"00")老师,0的前面我不需要字符。我刚开始学代码看不懂啊 End If End If End Select
|
-- 作者:有点甜
-- 发布时间:2014/6/15 22:37:00
--
如下
Select e.DataCol.Name Case "群组分类" If e.DataRow.IsNull("群组分类") Then e.DataRow("企业编号") = Nothing Else Dim lb As String = e.DataRow("群组分类") Dim max As Integer Dim idx As Integer max = e.DataTable.Compute("Max(企业编号)","群组分类 = \'" & lb & "\' And [_Identify] <> " & e.DataRow("_Identify")) \'取得该类别的最大编号 If max > "" Then \'如果存在最大编号 idx = max + 1 \'获得最大编号的顺序号,并加1 Else idx = 1 \'否则顺序号等于1 End If e.DataRow("企业编号") = idx End If End Select
|
-- 作者:风声
-- 发布时间:2014/6/15 22:51:00
--
NET Framework 版本:2.0.50727.3655 Foxtable 版本:2014.5.12.1 错误所在事件:表,通信,DataColChanged 详细错误信息: Exception has been thrown by the target of an invocation. Conversion from string "" to type \'Double\' is not valid. Input string was not in a correct format.
老师,有错误提示
|
-- 作者:有点甜
-- 发布时间:2014/6/15 23:18:00
--
回复5楼,你的 企业编号 要清空,然后改成 数值列,不要用字符列
|
-- 作者:风声
-- 发布时间:2014/6/16 8:42:00
--
老师,没有用还是这个错误提示.NET Framework 版本:2.0.50727.3655 Foxtable 版本:2014.5.12.1 错误所在事件:表,通信,DataColChanged 详细错误信息: Exception has been thrown by the target of an invocation. Conversion from string "" to type \'Double\' is not valid. Input string was not in a correct format.
|
-- 作者:Bin
-- 发布时间:2014/6/16 8:44:00
--
看代码不应该有地方出现这个错误,
建议您用这个方法: http://www.foxtable.com/help/topics/1485.htm
先找出是哪一行出错,然后分析原因,搞不定,贴出代码,并告诉我们运行到哪一行出错,或者上例子.
|
-- 作者:有点甜
-- 发布时间:2014/6/16 9:03:00
--
呵呵,要这样改。
Select e.DataCol.Name Case "群组分类" If e.DataRow.IsNull("群组分类") Then e.DataRow("企业编号") = Nothing Else Dim lb As String = e.DataRow("群组分类") Dim idx As Integer idx = e.DataTable.Compute("Max(企业编号)","群组分类 = \'" & lb & "\' And [_Identify] <> " & e.DataRow("_Identify")) \'取得该类别的最大编号 e.DataRow("企业编号") = idx + 1 End If End Select
|
-- 作者:风声
-- 发布时间:2014/6/16 10:56:00
--
好了
|