以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [原创]菜鸟?请教个批量输入编号的问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=68897) |
-- 作者:ehomecd -- 发布时间:2015/5/27 9:57:00 -- [原创]菜鸟?请教个批量输入编号的问题 请教老师: 做了个人员信息的表, 从excel导入数据到狐表后,个人编号想用命令批量填入,填入的规则是“部门编号+个人编号”;个人编号以部门为单位,循环从001,002,003……; 比如部门办公室的编号是101,办公室人员编号自动填入:101001,101002 业务科的编号是102 ,业务科人员编号自动填入:102001,102002 请教这段代码该如何写
[此贴子已经被作者于2015/5/27 9:58:26编辑过]
|
-- 作者:大红袍 -- 发布时间:2015/5/27 10:01:00 -- 参考 http://www.foxtable.com/help/topics/2403.htm
不会做,就上传例子。 |
-- 作者:ehomecd -- 发布时间:2015/5/27 10:23:00 -- 根据帮助,抄过来改了 代码:但这个代码是一行一行增加编号,如何该一下代码,能够让在命令窗口执行一次,就填入所有的工号? Select DataTables("员工资料").DataCol.Name Case "部门" If DataTables("员工资料").DataRow.IsNull("部门") Then DataTables("员工资料").DataRow("工号") = Nothing Else Dim lb As String = DataTables("员工资料").DataRow("部门编号") If DataTables("员工资料").DataRow("工号").StartsWith(lb) = False \'如果单据编号前缀不符 Dim max As String Dim idx As Integer max = DataTables("员工资料").Compute("Max(工号)","部门编号 = \'" & lb & "\' And [_Identify] <> " & DataTables("员工资料").DataRow("_Identify")) \'取得该类别的最大编号 If max > "" Then \'如果存在最大编号 idx = CInt(max.Substring(2,3)) + 1 \'获得最大编号的后三位顺序号,并加1 Else idx = 1 \'否则顺序号等于1 End If DataTables("员工资料").DataRow("工号") = lb & Format(idx,"000") End If End If End Select |
-- 作者:Bin -- 发布时间:2015/5/27 10:24:00 -- 点击选择部门列, 然后点击菜单上面的重置列按钮 或者执行RaiseDataColChanged http://www.foxtable.com/help/topics/1468.htm
|
-- 作者:ehomecd -- 发布时间:2015/5/27 10:58:00 -- 重置列像不行,好像应该写成循环遍历的 [此贴子已经被作者于2015/5/27 10:58:25编辑过]
|
-- 作者:狐狸爸爸 -- 发布时间:2015/5/27 11:00:00 -- 你代码写错了,你把文件发上来,我们帮你写一下。 |
-- 作者:大红袍 -- 发布时间:2015/5/27 11:01:00 -- idx = CInt(max.Substring(2,3)) + 1 \'获得最大编号的后三位顺序号,并加1
改成
idx = CInt(max.Substring(lb.Length)) + 1 \'获得最大编号的后三位顺序号,并加1 |