以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]可否粘贴多行数据? (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=89483) |
-- 作者:pladic -- 发布时间:2016/8/23 8:49:00 -- [求助]可否粘贴多行数据? 能否从EXCEL文档中,复制多行,然后粘贴到同结构的表中?(假定数据完全符合规范) 如果可以,设定的自动编号列能否自动赋值?还是粘贴后,手动添加。
|
-- 作者:大红袍 -- 发布时间:2016/8/23 9:15:00 -- 可以粘贴的啊,自动编号参考
http://www.foxtable.com/webhelp/scr/2403.htm
|
-- 作者:pladic -- 发布时间:2016/8/23 11: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,"000") End If End If End Select 我设计的编号生成格式为 编号+“-”+5位数字。其中编号长度不是固定为两位。所以,我加入一个“-”。先检测“-”的位置,然后从这个位置后截取数字,判断最大值。 返回字符串位置的函数是什么?
|
-- 作者:大红袍 -- 发布时间:2016/8/23 11:39: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(lb.length+1)) + 1 \'获得最大编号的后三位顺序号,并加1 Else idx = 1 \'否则顺序号等于1 End If e.DataRow("编号") = lb & "-" & Format(idx,"00000") End If End If End Select |
-- 作者:pladic -- 发布时间:2016/8/23 15:22:00 -- 类别的长度不定,所以不是简单的Substring(lb.length+1)。 方法一是:先判断“-”字符的位置,然后从这个位置+1处截取后面的字符串。 方法二是:直接从字符串最右边开始,截取5个字符。 类似VB中的,Instr或Rrigh的函数。
[此贴子已经被作者于2016/8/23 15:24:37编辑过]
|
-- 作者:大红袍 -- 发布时间:2016/8/23 15:37:00 -- 看4楼,没问题。如果有问题,上传实例。 |
-- 作者:pladic -- 发布时间:2016/8/24 10:38:00 -- 回复:(大红袍)?看4楼,没问题。如果有问题,上... 是,没问题了。 谢谢专家! 虽然没太明白substring(lb.length+1)的意思
[此贴子已经被作者于2016/8/24 10:39:04编辑过]
|